Actual working way to tts to sonos groups and resume playback

Hi, I have been trying several methods to tts to Sonos groups and none of them seem to be working.

I found this to be working for a while, but after some testing this now only works to one speaker (the master).

  action:
    - service: script.sonos_all_speakers
      data:
        volume: 0.5
        sonos_source: media-source://tts/cloud?message="This is a test."
        delay: 00:00:02

script:
  sonos_all_speakers:  
    alias: Sonos_alle_speakers
    sequence:
    - variables:
        speaker_master: media_player.woonkamer
        speaker_group:
          - media_player.woonkamer
          - media_player.keuken
          - media_player.kantoor
          - media_player.badkamer
    - service: sonos.snapshot
      target:
        entity_id: '{{ speaker_group }}'
    - service: media_player.unjoin
      target:
        entity_id: '{{ speaker_group }}'
    - service: media_player.join
      target:
        entity_id: '{{ speaker_master }}'
      data:
        group_members: '{{ speaker_group }}'
    - service: media_player.volume_set  
      target:
        entity_id: '{{ speaker_group }}'
      data:
        volume_level: '{{ volume }}'
    - service: media_player.play_media 
      target:
        entity_id: '{{ speaker_master }}'
      data:
        media_content_id: '{{ sonos_source }}'
        media_content_type: music
    - delay: '{{ delay }}'
    - service: sonos.restore
      target:
        entity_id: '{{ speaker_group }}'

Could someone please share a working method. Preferably with announcement option?

Cheers,

Michel