Hallo, habe eine Kreuzschaltung mit Shelly 2.5 und Openhab umgesetzt.
die Verkabelung sieht ähnlich aus wie in dem unten beschriebenen Post, nur auf Shelly Eingänge übersetzt:
https://l.facebook.com/l.php?u=https%…QavZrtElmKJbGts
Nun zu der "Rule". Diese ist in drei Teile unterteilt.
1. die Vorbereitung, dass sich der Shelly als Kreuzschalter schalten lässt. Dabei muss ein Switch Immer auf "aus" und einer auf an stehen: "//Kreuzschalter für ON/OFF vorbereiten ein Schalter immer an"
2. Mit der oben beschriebenen Vorbereitung ist der physische Status der Lampe über die eine APP nicht sehbar; ob die Lampe brennt oder nicht. Dieses wird mit dem zweiten Teil der Rule erledigt, in dem an einen virtuellen Schalter in diesem Fall C_Stairwell_Light anlegt, der nachher der Schalter für die Lampe in der APP wird:" //Kreuzschalter virtueller Status"
3. Zuletzt soll der "virtuelle" Schalter in der "APP" (C_Stairwell_Light) der IO Schalter werden, die direkte Verknüpfung zum Shelly wird nicht mehr dargestellt: "// Schalten mit virtuellen Kreuzschalter"
Unten stehen neben den "rules" auch die "Items" und die "sitemap", die Ihr für Euren OpenHab braucht, natürlich mit Eurer eigenen Namenskonvention:
rules:
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
//Kreuzschalter für ON/OFF vorbereiten ein Schalter immer an
rule "Kreuzschaltung physisch 1"
when Item C_Stairwell_Light1 changed
then
if ((C_Stairwell_Light1.state==ON)) {
sendCommand(C_Stairwell_Light2, OFF)
postUpdate(C_Stairwell_Light2, OFF)}
else if ((C_Stairwell_Light1.state==OFF)){
sendCommand(C_Stairwell_Light2, ON)
postUpdate(C_Stairwell_Light2, ON)}
end
rule "Kreuzschaltung physisch 2"
when Item C_Stairwell_Light2 changed
then
if ((C_Stairwell_Light2.state==ON)) {
sendCommand(C_Stairwell_Light1, OFF)
postUpdate(C_Stairwell_Light1, OFF)}
else if ((C_Stairwell_Light2.state==OFF)){
sendCommand(C_Stairwell_Light1, ON)
postUpdate(C_Stairwell_Light1, ON)}
end
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
//Kreuzschalter virtueller Status
rule "Kreuzschaltung-Status virtuell an"
when Item C_Stairwell_Light1_Watt changed or
Item C_Stairwell_Light2_Watt changed
then
if (C_Stairwell_Light1_Watt.state >=2.0 && C_Stairwell_Light2_Watt.state <=2.0)
(C_Stairwell_Light1_Watt.state <=2.0 && C_Stairwell_Light2_Watt.state >=2.0)
postUpdate (C_Stairwell_Light, ON)
end
rule "Kreuzschaltung-Status virtuell aus"
when Item C_Stairwell_Light1_Watt changed or
Item C_Stairwell_Light2_Watt changed
then
if (C_Stairwell_Light1_Watt.state <=2.0 && C_Stairwell_Light2_Watt.state <=2.0)
postUpdate (C_Stairwell_Light, OFF)
end
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// Schalten mit virtuellen Kreuzschalter
rule "virtueller Kreuzschalter an"
when Item C_Stairwell_Light received command ON
then if (C_Stairwell_Light1.state == ON)
C_Stairwell_Light1.sendCommand(OFF)
if (C_Stairwell_Light1.state == OFF)
C_Stairwell_Light1.sendCommand(ON)
end
rule "virtueller Kreuzschalter aus"
when Item C_Stairwell_Light received command OFF
then if (C_Stairwell_Light1.state == ON)
C_Stairwell_Light1.sendCommand(OFF)
if (C_Stairwell_Light1.state == OFF)
C_Stairwell_Light1.sendCommand(ON)
end
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
Items:
Switch C_Stairwell_Light1 "Kellertreppe physisch1" <light> (C_Stairwell) ["Switch", "Switchable"] {channel="shelly:shelly25-relay:XXXXXX:relay1#output"}
Switch C_Stairwell_Light2 "Kellertreppe physisch2" <light> (C_Stairwell ["Switch", "Switchable"] {channel="shelly:shelly25-XXXXXX:relay2#output"}
Number C_Stairwell_Light1_Watt "Kellertreppe" <switch> (gLightStair_Watt) {channel="shelly:shelly25-relay:XXXXXX:meter1#currentWatts"}
Number C_Stairwell_Light2_Watt "Kellertreppe" <switch> (gLightStair_Watt) {channel="shelly:shelly25-relay:XXXXX:meter2#currentWatts"}
Switch C_Stairwell_Light "Kellertreppe" <light> (C_Stairwell, gLight, gStairwell)
Sitemap:
Default item=C_Stairwell_Light