Dimmer und Rollo über Harmony Hub steuern

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

Antworten
Quautiputzli
Beiträge: 317
Registriert: 29. Okt 2020 19:53
Answers: 2

Dimmer und Rollo über Harmony Hub steuern

Beitrag von Quautiputzli »

Hallo miteinander

Mein Name ist Raimund, und ich betreibe seit kurzem Openhab auf einer Synology NAS.

Ich möchte Lichter und Rolläden über meine Fernbedienung mit dem Logitech Harmony Hub steuern. Dazu habe ich das Harmony binding und das HUE emulation bindiing installiert, denn mit dem Harmony Hub kann man HUE Lampen und Steckdosen einbinden. Leider sendet das Harmony HUB für einen Dimmer immer nur "OFF" oder Werte von 0-100. Ich brauche jedoch "ON,OFF, INCREASE, DECREASE" bzw. "UP, DOWN, STOPP" für den Rollo. Wenn man mit der Logitech Fernbedieung einschaltet, wird der Wert gesetzt, mit der die "Lampe" zuletzt an war, bei kurzem Druck auf die "+" oder "-" Tasten wird der Wert in 10er Schritten geändert. Ich habe mir deshalb zusätzliche Items für die 4 Tasten angelegt, die die Signale über rules "umsetzten" sollen.

Das ganze sieht so aus:
*.items

Code: Alles auswählen

Switch GF_Harmony1 "Taste 1" <slider> ["Switchable"]  
Switch GF_Harmony2 "Taste 2" <slider> ["Switchable"]  
Switch GF_Harmony3 "Taste 3" <slider> ["Lighting"]
Switch GF_Harmony4 "Taste 4" <slider> ["Lighting"]  

Dimmer          GF_LivingDining_Light_1   "Licht West"       <light>              (GF_LivingDining, gLight)  ["Lighting", "Switchable"]  {http=">[ON:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=11&z=0.1] >[OFF:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=10&z=0.1] >[INCREASE:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=11&z=1] >[DECREASE:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=10&z=1]"}
Dimmer          GF_LivingDining_Light_2   "Licht Couch"      <light>              (GF_LivingDining, gLight)  ["Lighting", "Switchable"]  {http=">[ON:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=21&z=0.1] >[OFF:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=20&z=0.1] >[INCREASE:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=21&z=1] >[DECREASE:POST:http://192.168.2.200/addapp/gpio_t.php?g=C&n=20&z=1]"}

Rollershutter   GF_LivingDining_Shutter_1 "Rollo West"       <rollershutter>      (GF_LivingDining, gShutter)   ["Rollershutter"]          {http=">[UP:POST:http://192.168.2.200/addapp/gpio_t.php?g=D&n=11&z=0.5] >[DOWN:POST:http://192.168.2.200/addapp/gpio_t.php?g=D&n=10&z=0.5] >[STOP:POST:http://192.168.2.200/addapp/gpio_t.php?g=D&n=11&z=0.1]"}
Rollershutter   GF_LivingDining_Shutter_2 "Rollo Couch"      <rollershutter>      (GF_LivingDining, gShutter)   ["Rollershutter"]          {http=">[UP:POST:http://192.168.2.200/addapp/gpio_t.php?g=D&n=21&z=0.5] >[DOWN:POST:http://192.168.2.200/addapp/gpio_t.php?g=D&n=20&z=0.5] >[STOP:POST:http://192.168.2.200/addapp/gpio_t.php?g=D&n=21&z=0.1]"}
*.rules

Code: Alles auswählen

rule "Harmony Taste 1"
when
   Item GF_Harmony1 received command
then
    if(receivedCommand == ON)
        GF_LivingDining_Light_1.sendCommand(ON)
    if(receivedCommand == OFF)
        GF_LivingDining_Light_1.sendCommand(OFF)
end

rule "Harmony Taste 2"
when
   Item GF_Harmony2 received command
then
    if(receivedCommand == ON)
        GF_LivingDining_Light_2.sendCommand(ON)
    if(receivedCommand == OFF)
        GF_LivingDining_Light_2.sendCommand(OFF)
end

rule "Harmony Taste 3"
when
   Item GF_Harmony3 received command
then
    if(receivedCommand instanceof Number) {
        if(receivedCommand > 50)
            GF_LivingDining_Shutter_1.sendCommand(UP)
        if(receivedCommand < 51)
            GF_LivingDining_Shutter_1.sendCommand(DOWN) 
    }
    if(receivedCommand == OFF)
        GF_LivingDining_Shutter_1.sendCommand(STOP)
end

rule "Harmony Taste 4"
when
   Item GF_Harmony4 received command
then
    if(receivedCommand instanceof Number) {
        if(receivedCommand > 50)
            GF_LivingDining_Shutter_2.sendCommand(UP)
        if(receivedCommand < 51)
            GF_LivingDining_Shutter_2.sendCommand(DOWN) 
    }
    if(receivedCommand == OFF)
        GF_LivingDining_Shutter_2.sendCommand(STOP)
end
Grundsätzlich funktioniert das schon, aber ich würde gerne das Licht auch dimmen können, nicht nur ein und ausschalten, und auch die Rollo "richtig" fahren können. Es klappt zwar, aber wenn man öfter auf Plus auf der Fernbedienung drückt, entfernt man sich immer mehr von der Mitte mit dem Wert 50.

Deslhalb wollte ich soetwas in der Richtung probieren:
*.rules

Code: Alles auswählen

rule "Harmony Taste 3"
when
   Item GF_Harmony3 received command
then
    if(receivedCommand == 50)
        GF_LivingDining_Light_1.sendCommand(ON)
    if(receivedCommand > 50)
        GF_LivingDining_Light_1.sendCommand(INCREASE)
    if(receivedCommand < 50)
        GF_LivingDining_Light_1.sendCommand(DECREASE)
    if(receivedCommand == OFF)
        GF_LivingDining_Light_1.sendCommand(OFF)
    GF_Harmony3.sendCommand(50)
end
So landet die Rule allerdings in einer Endlosschleife. Gibt es irgendeine Möglichkeit das Ganze umzusetzten?

Servus
Servus

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

Re: Dimmer und Rollo über Harmony Hub steuern

Beitrag von udo1toni »

Benutze einfach postUpdate statt sendCommand. postUpdate wirkt nur auf das Item (bzw. den Status des Items) aber nicht auf gekoppelte Addons.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Quautiputzli
Beiträge: 317
Registriert: 29. Okt 2020 19:53
Answers: 2

Re: Dimmer und Rollo über Harmony Hub steuern

Beitrag von Quautiputzli »

Vielen Dank,
das scheint schonmal zu funktionieren. Muss ich ma eine Zeit lang testen, ob es stabil läuft.
Servus

Antworten