Verbindung Shelly pluis I4 mit Shelly plus2PM

Geflasht oder ungeflasht ...

Moderator: seppy

Antworten
Benutzeravatar
binderj1
Beiträge: 27
Registriert: 11. Dez 2021 09:43
Answers: 0
Wohnort: Windigsteig

Verbindung Shelly pluis I4 mit Shelly plus2PM

Beitrag von binderj1 »

Hallo, Wie verknüpfe ich das [ShellyPlus I4] mit dem [ShellyPlus 2pm] (Rollershutter Modus)
I4_Ch1 ... Rollershutter auf
I4_Ch2 ... Rollershutter zu

Ich verwende OpenHAB 4.2.1 mit der aktuellen Shelly-Binding.
openHAB 4.2.0 auf einem Raspberry Pi 4 Model B+

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Verbindung Shelly pluis I4 mit Shelly plus2PM

Beitrag von udo1toni »

Die Frage ist, was sinnvoll ist :)

Möglichkeit 1: Du definierst die beiden Geräte als Things in openHAB. Anschließend legst Du eine Rule an, die auf die verschiedenen Tastendrücke reagiert. Die Rule sendet dann den jeweils passenden Befehl an den Shelly im Rollershutter Modus.
Denke auch daran, dass Du vermutlich auch Stop als Kommando haben willst, also z.B. I4_Ch1 Während STOP -> UP, I4_Ch1 während UP oder DOWN -> STOP (und das gleiche für I4_Ch2, nur entsprechend mit DOWN/STOP als Befehl).

Möglichkeit 2: Du lässt openHAB für die Auswertung der Tasten außen vor und nutzt die eingebaute Scripting Fähigkeit, d.h. letztendlich sendet der I4 die Steuerbefehle dann direkt an den 2PM.

Vorteil von Möglichkeit 2: Funktioniert auch, wenn openHAB mal nicht läuft (so unwahrscheinlich Dir das auch erscheinen mag).
Nachteil: Du musst Dich zusätzlich mit Shelly auseinandersetzen, über die Anbindung in openHAB hinaus.

Für die Möglichkeit 1 brauchst Du mutmaßlich ein Rollershutter Item, welches mit dem 2pm rollershutter Channel verlinkt ist. Weiterhin benötigst Du die Namen der Channel, welche die Tastendrücke der beiden zu nutzenden Tasten als Events an den Bus melden. Weiterhin musst Du wissen, welches Event beim (kurzen?) Drücken der Taste gemeldet wird, das kannst Du leicht im events.log nachschauen (kurz nacheinander die beiden Tasten drücken und dann das Log nach dem Thing filtern). Eine Rule, welche auf beide Tastendrücke reagiert, sollte reichen, Du kannst innerhalb der Rule über die implizite Variable triggeringChannel erfahren, welcher der beiden Channel die Rule getriggert hat, das sieht z.B. so aus:

Code: Alles auswählen

var Boolean bShutterStop = true

rule "Taster für Shutter"
when
    Channel 'shelly:i4:input1#button' triggered SHORT_PRESSED or
    Channel 'shelly:i4:input2#button' triggered SHORT_PRESSED
then
    if(bShutterStop) {
        if(triggeringChannel.contains("input1")) // UP
           myShutter.sendCommand(UP)
        if(triggeringChannel.contains("input2")) // DOWN
            myShutter.sendCommand(DOWN)
        bShutterStop = false
    } else {
        myShutter.sendCommand(STOP)
        bShutterStop = true
    }
end

rule "Shutter Rückmeldung"
when
    Item myShutter changed
then
    bShutterStop = true
end
Da man keine Information darüber hat, ob der Laden gerade fährt oder nicht, muss die Rule diese Information selbst speichern. Die zweite Rule wertet das Erreichen eine Position als Rückmeldung, dass der Rollladen gestoppt hat (ich kenne das Shelly Binding nicht, gehe aber davon aus, dass sich das Binding in dieser Beziehung so verhält wie etliche andere Bindings auch, Positionsmeldung am Ende der Fahrt).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten