Hallo,
ich bin zwar offenbar der einzige, der dieses MP3-Modul in HA einbauen will, aber sei es drum: Hier noch eine Lösung, wie man mit wenig YAML HA Alerts über das MP3-Modul ausgeben kann. Vielleicht kann es ja doch jemand brauchen.
Das HM-MP3-Modul kann von HA aus mit folgender Aktion ausgelöst werden – in diesem Beispiel spielt es File 041 ab:
Code: Alles auswählen
action:
- service: homematicip_local.set_device_value
data:
device_id: aeeb53fc183252e70f8c7e533457844e
channel: 1
parameter: SUBMIT
value_type: string
value: 1,1,108000,1,41
(Bei device_id gehört hier und im Folgenden die eures HM-MP3-Moduls hin, nicht meine.)
Das funktioniert in Skripten und Automatisierungen. Um aber das Modul von HA Alerts aus ansprechen zu können – zum Beispiel um nach x Minuten eines Zustands (z.B. Kühlschrank offen) zyklisch eine Warnungen auszugeben, bis der Zustand sich geändert hat (Kühlschrank zu), sind ein paar Vorbereitungen nötig. HA Alerts können nämlich leider keine beliebigen Aktionen auslösen, sondern nur notifcations.
Daher muss man folgendes einrichten (Grundlagen siehe
https://community.home-assistant.io/t/a ... ice/152984)
1
In notify.yaml eine leere Benachrichtigungsgruppe mit nur einem Element:
Code: Alles auswählen
# Für HM MP3-Modul HM-OU-CM-PCB: empty notifier group
- name: hm_mp3
platform: group
services: []
2
In automations.yaml eine Automatisierung, die ausgelöst wird, wenn die notify-Gruppe in (1) aufgerufen wird:
Code: Alles auswählen
- id: "1655637104174"
alias: Alert Notify (MP3)
description: ""
trigger:
- platform: event
event_type: call_service
event_data:
domain: notify
service: hm_mp3
condition: []
action:
- service: homematicip_local.set_device_value
data:
device_id: aeeb53fc183252e70f8c7e533457844e
channel: 1
parameter: SUBMIT
value_type: string
value: "{{ trigger.event.data.service_data.data.mp3 }}"
mode: single
(device_id: siehe oben. Sonst kann alles so bleiben.)
3
Damit gibt es die Grundlagen, die für alle Alerts mit dem MP3_Modul dienen.
In alerts.yaml ist jetzt für jede Alarmierung ein Eintrag wie dieser vorzusehen:
Code: Alles auswählen
kuehlschranktuer_alert:
name: "kuehlschranktuer_MP3_Repeat_Msg"
entity_id: binary_sensor.ks12_6_11_r22_tk_kuehlschrank_sensor
message: "Kühlschrank offen"
data:
mp3: "1,1,108000,1,41"
state: "off"
repeat:
- 1
- 2
- 10
skip_first: true
can_acknowledge: false
notifiers:
- hm_mp3
Der Eintrag bei "data.mp3" ist der String, den das Homematic-MP3-Modul erwartet, und der dann mit 'trigger.event.data.service_data.data.mp3' an die Automatisierung in (2) übergeben wird. Hier wird z.B. das File "041 xxx.mp3" des MP3-Moduls nach 1, 2 und dann alle 10 Minuten abgespielt.
Bei "message:" kann eine Textnachricht angegeben werden, die ggf. auf anderen notify-Kanälen gezeigt wird, die unter "notifiers:" zu ergänzen wären.
Grüße, Eckart
PS. Beim Restart von HA werden leider alle MP3-Nachrichten ausgegeben, ganz unabhängig vom Status der überwachten Zustände. Das lässt sich leicht verhindern: 1. Die Integration "Uptime" (
https://www.home-assistant.io/integrations/uptime/) einrichten. 2. In der Automatisierung hier unter Punkt (2) eine Bedingung einbauen wie uptime_sensor > 5 Min, z.B. mit dem Template
{{ ((as_timestamp(now()) - as_timestamp(states('sensor.uptime')))/60 ) | int > 5}}
Dann ertönen alle MP3-Alerts erst ab 5 Min nach einem Restart von hass.io. Der Übersichtlichkeit halber ist das oben nicht eingebaut.
PPS. Eleganter als dieser Workaround wäre natürlich, wenn es für die hahm-Integration einen blueprint für die diversen HM-MP3-Geräte gäbe. Das übersteigt aber meine Fähigkeiten.