Hallo zusammen,
ich suche nun schon seit Wochen im Internet nach Lösungsansätze. Ich habe folgendes Verhalten:
Mehrere Shelly 2 PM gen 4 als BLU Gateway im Einsatz. Werden die Tastendrücke meines 4-fach Wallswitches (SBBT-004CEU) immer nur kurz nach der Reinstallation des Shelly Bindings oder manchmal nach einem Neustart des Shellys. Die Logs im Shelly zeigen, dass der Tastendruck dort ankommt und auch vom Script wohl bearbeitet wird, jedoch nicht an das Openhab übertragen wird.
Das Openhab läuft auf einem Raspberry PI mit Openhabian auf bookworm Basis und ich verwende Openhab 5.1.3 mit dem offiziellen Shelly Binding und die Shellys verwenden die Firmwareversion 1.7.4 bzw. seit 2 Tagen auch teilweise die 1.7.5.
Kennt jemand das Problem und kann mir weiterhelfen oder hat mir eine Idee, wie ich das Thema angehen könnte?
Shelly Binding BLU - Kommunikationsprobleme
-
mike285
- Beiträge: 5
- Registriert: 24. Nov 2019 20:52
-
nw378
- Beiträge: 367
- Registriert: 22. Sep 2018 10:38
Re: Shelly Binding BLU - Kommunikationsprobleme
Ich weiß nicht, wie stabil das Skript auf den Shellys inzwischen läuft. Als ich die ersten BLU Geräte installiert hatte (ist schon ein paar Jahre her), hatte ich immer mal wieder Ausfälle durch das Skript. Weil es aus unterschiedlichen Gründen immer mal wieder gestoppt wurde.
Ich habe dann alles auf MQTT umgestellt, und seither läuft es unglaublich zuverlässig.
Vielleicht wäre das für Dich auch ein Lösungsweg.
Ich habe dann alles auf MQTT umgestellt, und seither läuft es unglaublich zuverlässig.
Vielleicht wäre das für Dich auch ein Lösungsweg.
openHAB 5.1.3 @ RPi 5 / M.2 SSD - openhabian/Debian 13.3 (trixie) - InfluxDB2 und Grafana @ Synology Docker - KNX, Viessmann vcontrol, u.v.m.
-
mike285
- Beiträge: 5
- Registriert: 24. Nov 2019 20:52
Re: Shelly Binding BLU - Kommunikationsprobleme
Nur für mich zum Verständnis, nur die BLU über MQTT oder alles von Shelly über MQTT?
Und gibt es da eine gute Anleitung oder ähnliches?
Und gibt es da eine gute Anleitung oder ähnliches?
-
nw378
- Beiträge: 367
- Registriert: 22. Sep 2018 10:38
Re: Shelly Binding BLU - Kommunikationsprobleme
Letztendlich kannst Du alles über MQTT machen, allerdings ist der Aufwand nicht ohne.
Ich lasse nur die BLU Geräte über MQTT laufen, den Rest der Shellys über das Binding.
Zur Anleitung: ich gehe davon aus, dass Du einen MQTT Broker laufen hast.
Diesen gibst Du unter Einstellungen/MQTT in der Shelly App für das Gerät ein, dass als Schnittstelle zum BLU Gerät fungiert (roter Kasten):
Dann suchst Du ebenfalls in der Shelly App die MAC Adresse des BLU Geräts:
Ob Shelly ordnungsgemäß MQTT Nachrichten sendet, kannst Du bspw. mit dem MQTT Explorer https://mqtt-explorer.com/ prüfen.
In openHAB bindest Du das BLU Gerät dann so ein:
mqtt.things
wobei d8:...:c0 die MAC Adresse des BLUs ist.
shelly.items
Das Beispiel ist ein Fensterkontakt. Andere Geräte gehen entsprechend:
Ich lasse nur die BLU Geräte über MQTT laufen, den Rest der Shellys über das Binding.
Zur Anleitung: ich gehe davon aus, dass Du einen MQTT Broker laufen hast.
Diesen gibst Du unter Einstellungen/MQTT in der Shelly App für das Gerät ein, dass als Schnittstelle zum BLU Gerät fungiert (roter Kasten):
Dann suchst Du ebenfalls in der Shelly App die MAC Adresse des BLU Geräts:
Ob Shelly ordnungsgemäß MQTT Nachrichten sendet, kannst Du bspw. mit dem MQTT Explorer https://mqtt-explorer.com/ prüfen.
In openHAB bindest Du das BLU Gerät dann so ein:
mqtt.things
Code: Alles auswählen
Thing mqtt:topic:mosquitto:mqtt_Shelly "MQTT Shelly" (mqtt:broker:mosquitto) {
Channels:
Type contact : cTerrasse "Terrassentür" [ stateTopic="shelly/events/rpc", transformationPattern="REGEX:(.*d8:7a:XX:XX:72:c0.*)∩JSONPATH:$.params.events[0].data.Window", off="0" , on="1" ]
}
shelly.items
Code: Alles auswählen
Contact Fkontakt_Erker_links "Erker Tür links {channel="mqtt:topic:mosquitto:mqtt_Shelly:cTerrasse"}
Code: Alles auswählen
Type number : HWR_Temp "Shelly HWR Temp" [ stateTopic="shelly/events/rpc", transformationPattern="REGEX:(.*7c:c6:xx:xx:86:a0.*)∩JSONPATH:$.params.events[0].data.Temperature" ]
Type number : HWR_Humidity "Shelly HWR Feuchte" [ stateTopic="shelly/events/rpc", transformationPattern="REGEX:(.*7c:c6:xx:xx:86:a0.*)∩JSONPATH:$.params.events[0].data.Humidity" ]
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 5.1.3 @ RPi 5 / M.2 SSD - openhabian/Debian 13.3 (trixie) - InfluxDB2 und Grafana @ Synology Docker - KNX, Viessmann vcontrol, u.v.m.
-
mike285
- Beiträge: 5
- Registriert: 24. Nov 2019 20:52
Re: Shelly Binding BLU - Kommunikationsprobleme
Hi,
also nach langem hin uns her und einem Werksreset der für BLU verwendeten Shellys habe ich es nun seit 4 Tagen über MQTT am laufen.
Für den Wallswitch 4 ist das Thing möglichst nah an dem Aufbau des Shelly-Bindings so:
Dazu braucht es noch das MAP-File "wall_switch.map":
Ich habe die BLU Geräte nun alle trotzdem über das Binding registriert, k.A. ob das nötig war oder nicht.
Überlege mir noch ein eigenes "Binding" zu schreiben, indem ich die ganzen Shelly BLU Devices so integrieren kann, noch fehlt mir aber der Einstig ins Bindingprogrammieren.
Danke @nw378 für den Einstieg!
also nach langem hin uns her und einem Werksreset der für BLU verwendeten Shellys habe ich es nun seit 4 Tagen über MQTT am laufen.
Für den Wallswitch 4 ist das Thing möglichst nah an dem Aufbau des Shelly-Bindings so:
Code: Alles auswählen
Thing mqtt:topic:MYBROKER:SHELLY_BLU_GATEWAY_OH_ID "NAMENAME" (mqtt:broker:MYBROKER) {
Channels:
// ----------------------------------------------------
// DEVICE GROUP
// ----------------------------------------------------
Type trigger : device#alarm "Alarm" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.method",
event="NotifyEvent=ALARM"
]
Type number : device#wifiSignal "Signalstärke" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.rssi"
]
Type string : device#firmware "Gerätefirmware" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.src"
]
Type string : device#gatewayDevice "Gateway Gerät" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.dst"
]
Type string : device#heartBeat "Letzte Aktivität" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.ts"
]
// ----------------------------------------------------
// BATTERY GROUP
// ----------------------------------------------------
Type number : battery#batteryLevel "Batterie" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Battery"
]
Type switch : battery#lowBattery "Low Battery" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Battery",
on="0..19",
off="20..100"
]
// ----------------------------------------------------
// SENSORS GROUP
// ----------------------------------------------------
Type string : sensors#lastUpdate "Letzte Aktualisierung" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.ts"
]
// ----------------------------------------------------
// BUTTON 1 GROUP
// ----------------------------------------------------
Type trigger : status1#button "Ereignisauslöser 1" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[0]∩MAP:wall_switch.map"
]
Type string : status1#lastEvent "Letztes Ereignis 1" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[0]∩MAP:wall_switch.map"
]
Type number : status1#eventCount "Ereignis-Anzahl 1"
// ----------------------------------------------------
// BUTTON 2 GROUP
// ----------------------------------------------------
Type trigger : status2#button "Ereignisauslöser 2" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[1]∩MAP:wall_switch.map"
]
Type string : status2#lastEvent "Letztes Ereignis 2" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[1]∩MAP:wall_switch.map"
]
Type number : status2#eventCount "Ereignis-Anzahl 2"
// ----------------------------------------------------
// BUTTON 3 GROUP
// ----------------------------------------------------
Type trigger : status3#button "Ereignisauslöser 3" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[2]∩MAP:wall_switch.map"
]
Type string : status3#lastEvent "Letztes Ereignis 3" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[2]∩MAP:wall_switch.map"
]
Type number : status3#eventCount "Ereignis-Anzahl 3"
// ----------------------------------------------------
// BUTTON 4 GROUP
// ----------------------------------------------------
Type trigger : status4#button "Ereignisauslöser 4" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[3]∩MAP:wall_switch.map"
]
Type string : status4#lastEvent "Letztes Ereignis 4" [
stateTopic="SHELLY_BLU_GATEWAY_MQTT_NAME/events/rpc",
transformationPattern="REGEX:(.*\"addr\":\"aa:bb:cc:dd:11:22\".*)∩JSONPATH:$.params.events[0].data.Button[3]∩MAP:wall_switch.map"
]
Type number : status4#eventCount "Ereignis-Anzahl 4"
}
Code: Alles auswählen
1=SHORT_PRESSED
2=DOUBLE_PRESSED
3=TRIPLE_PRESSED
4=LONG_PRESSED
128=HOLD
Überlege mir noch ein eigenes "Binding" zu schreiben, indem ich die ganzen Shelly BLU Devices so integrieren kann, noch fehlt mir aber der Einstig ins Bindingprogrammieren.
Danke @nw378 für den Einstieg!
-
nw378
- Beiträge: 367
- Registriert: 22. Sep 2018 10:38
Re: Shelly Binding BLU - Kommunikationsprobleme
Schön, dass es klappt und dass du hier ein Feedback gibst.
Hinweis: die Registrierung über das eigentliche Shelly Binding ist nicht notwendig.
Viel Erfolg mit dem eigenen Binding!
Hinweis: die Registrierung über das eigentliche Shelly Binding ist nicht notwendig.
Viel Erfolg mit dem eigenen Binding!
openHAB 5.1.3 @ RPi 5 / M.2 SSD - openhabian/Debian 13.3 (trixie) - InfluxDB2 und Grafana @ Synology Docker - KNX, Viessmann vcontrol, u.v.m.