Roomba, Sonos, HomeAssistant

Geil­geil­geil. Ich weiß nur noch nicht, obs funktioniert 🙂
Soll­te aber, mit einem Trig­ger “Licht aus” funk­tio­niert es jedenfalls.

Ziel: Wenn der Staub­sauger (wir nen­nen ihn Ade­le) ein Pro­blem hat, soll er das bit­te mel­den. Pro­ble­me könn­ten zwei sein: Dreck­be­häl­ter voll und festgefahren

- alias: Adele voll
  trigger:
    platform: template
    value_template: "{%if is_state_attr('vacuum.adele', 'bin_full', true) %}true{%endif%}"
  action:
    - service: notify.ios_loopback
      data:
        message: 'Bitte Adele entleeren!'
    - service: script.sonos_say
      data:
        sonos_entity: media_player.arbeitszimmer
        volume: 0.3
        message: 'Adele hat die Windeln voll.'
        delay: '00:00:03'

- alias: Adele festgefahren
  trigger:
    platform: template
    value_template: "{%if is_state_attr('vacuum.adele', 'Stuck', true) %}true{%endif%}"
  action:
    - service: notify.ios_loopback
      data:
        message: 'Bitte Adele befreien.'
    - service: script.sonos_say
      data:
        sonos_entity: media_player.arbeitszimmer
        volume: 0.3
        message: 'Adele hat sich festgefahren.'
        delay: '00:00:03'

Und dazu noch das Skript:

sonos_say:
  alias: 'Sonos TTS script'
  sequence:
  - service: sonos.snapshot
    data_template:
      entity_id: "{{ sonos_entity }}"
  - service: sonos.unjoin
    data_template:
      entity_id: "{{ sonos_entity }}"
  - service: media_player.volume_set
    data_template:
      entity_id: "{{ sonos_entity }}"
      volume_level: "{{ volume }}"
  - service: tts.google_say
    data_template:
      entity_id: "{{ sonos_entity }}"
      message: "{{ message }}"
  - delay: "{{ delay }}"
  - service: sonos.restore
    data_template:
      entity_id: "{{ sonos_entity }}"

Geil sind dabei die zwei Funk­tio­nen sonos.snapshot und sonos.restore — die machen genau das: Sta­tus (Grup­pen, aktu­el­les Abspiel­ob­jekt) vor der Sprach­aus­ga­be sichern und danach den Aus­gangs­zu­stand wiederherstellen.

Mal mor­gen sehen, ob das auch wirk­lich so funktioniert.
Auf dem Reiß­brett jeden­falls sieht es gut aus 🙂

1 Comment

Add a Comment

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert