Hallo zusammen,
ich bin relativ neu mit openHAB unterwegs und bin gerade mit der Konfiguration beschäftigt.
Ich habe im Haus ca. 30 Shellys verteilt, überwiegend 1er und 2.5er.
Die Shelly kommunizieren via MQTT-Binding mit OH3, das funktioniert auch einwandfrei.
Nun möchte ich bei einem Shellys mit Longpush ein paar andere Shellys schalten. Die Longpush Updates kann ich auch im MQQT Explorer sehen, Kommunikation funktioniert also.
Mein Gedanke zur Umsetzung war, einen Trigger für Longpush zu erstellen und den per Rules abzufragen und dann die anderen Shelly zu schalten.
Ist das so korrekt oder bin ich da schon auf dem Holzweg? Beim Trigger habe ich bei MQTT Trigger Topic shellies/buero-schalter2/longpush/0 eingetragen. Aber ich vermute, dass das schon nicht korrekt ist, denn der Trigger löst nicht aus. Die Simulation der Rule funktioniert aber, also gehe ich davon aus, dass dort das Problem liegt. Ich habe dazu im Internet nichts gefunden. Hat das jemand schon mal gemacht oder kann mir auf die Sprünge helfen?
Danke euch und viele Grüße,
Stefan
OH3 + MQTT + Shelly + Longpush + Trigger
-
- Beiträge: 1
- Registriert: 20. Dez 2022 11:25
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 + MQTT + Shelly + Longpush + Trigger
Herzlich willkommen im Forum!
Wenn Du eine gewöhnliche Rule in openHAB meinst, dann gibt es nur zwei mögliche Trigger (in dem Zusammenhang...), nämlich Channel ... triggered und Item ... received command bzw. received update, je nachdem.
Nehmen wir an, Du hast das Topic shellies/buero-schalter2/longpush/0, auf welchem eine Payload 1 ankommt, wenn der lange Tastendruck erkannt wird. Du brauchst entsprechend ein generic mqtt Thing (man wird gewöhnlich das Thing nutzen, was eh schon vorhanden ist) und dort einen trigger Channel (.thing Schreibweise, nur der Channel):
oder als Code Ansicht (ein Thing):
Sobald diesre Channel im System gespeichert ist, solltest Du im Log bei jedem Auslösen des long press eine Zeile in der Form
erhalten.
Eine passende Rule wäre dann
Wenn Du eine gewöhnliche Rule in openHAB meinst, dann gibt es nur zwei mögliche Trigger (in dem Zusammenhang...), nämlich Channel ... triggered und Item ... received command bzw. received update, je nachdem.
Nehmen wir an, Du hast das Topic shellies/buero-schalter2/longpush/0, auf welchem eine Payload 1 ankommt, wenn der lange Tastendruck erkannt wird. Du brauchst entsprechend ein generic mqtt Thing (man wird gewöhnlich das Thing nutzen, was eh schon vorhanden ist) und dort einen trigger Channel (.thing Schreibweise, nur der Channel):
Code: Alles auswählen
Type trigger : longPress "Long Press" [ stateTopic="shellies/buero-schalter2/longpush/0" ]
Code: Alles auswählen
UID: mqtt:topic:d64559e2b3
label: AAAAA Test
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
- id: ch1
channelTypeUID: mqtt:trigger
label: trigger
description: ""
configuration:
stateTopic: shellies/buero-schalter2/longpush/0
Code: Alles auswählen
2022-12-20 21:01:29.911 [INFO ] [openhab.event.ChannelTriggeredEvent ] - mqtt:topic:d64559e2b3:ch1 triggered 1
Eine passende Rule wäre dann
Code: Alles auswählen
rule "long press"
when
Channel 'mqtt:topic:d64559e2b3:ch1' triggered 1
then
// hier kommen die Befehle zum Schalten hin
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet