philips hue tap dial switch drehschalter licht An/Aus Dimmen

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28
Answers: 0

philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von ModjoMc06 »

Hallo Ihr lieben Openhabianer,

Ich benötige mal eure Hilfe und oder mitarbeit. Ich hab hier diverse philips hue tap dial switch drehschalter.
die alle auch laufen, per rules.

jedoch die Dimmer funktion nicht daher hab ich mir mal gedacht, ich schreiben eine rules die diese Funktion mitsich bring. Jedoch hänge ich fest
da die Dimmer funktion volgende werte aus gib
Wert für Dunkel

Code: Alles auswählen

2024-03-10 09:52:57.396 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6003

2024-03-10 09:52:57.401 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HueTap1_Button1' changed from 6001 to 6003


Wert für Hell:

Code: Alles auswählen

2024-03-10 09:53:11.674 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5003

2024-03-10 09:53:11.677 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HueTap1_Button1' changed from 5001 to 5003

Daher hab ich die rule auch so angepasst das ich hier An und Aus bei einmal Tastendruck für An und bei einmal Tastendruck für Aus. Die Dimmer Werte hab ich aus dem Openhab Log übernommen.

Hier die Rules. datei:

Code: Alles auswählen

rule "HueTap1_Button1"
when
    Item HueTap1_Button1 received update
then
    if (HueTap1_Button1.state == 3002) {
        // Schalte das Licht ein oder aus
        if (GF_004LivingRoom_Light.state == OFF) {
            GF_004LivingRoom_Light.sendCommand(ON)
        } else {
            GF_004LivingRoom_Light.sendCommand(OFF)
        }
    } else if (GF_LivingRoom_Button.state == 5001) {
        // Heller dimmen
        val currentBrightness = GF_003LivingRoom_Light.state as Number
        val newBrightness = currentBrightness.intValue + 10
        if (newBrightness <= 100) {
            GF_003LivingRoom_Light.sendCommand(newBrightness)
        }
    } else if (GF_LivingRoom_Button.state == 6001) {
        // Dunkler dimmen
        val currentBrightness = GF_003LivingRoom_Light.state as Number
        val newBrightness = currentBrightness.intValue - 10
        if (newBrightness >= 0) {
            GF_003LivingRoom_Light.sendCommand(newBrightness)
        }
    }
end

und die entsprechende Items.datei

Code: Alles auswählen

Dimmer  GF_003LivingRoom_Light         "Wohnzimmerfensterlampe"                         <light>        (GF_LivingRoom, gLight)       {channel="deconz:colortemperaturelight:00212E09BD82:f0d1b80000148fb601:brightness", alexa="Light.PowerState,Light.Brightness,ColorTemperature"}
Switch  GF_004LivingRoom_Light         "Wohnzimmerfensterlampe"                         <light>        (GF_LivingRoom, gLight)       {channel="deconz:colortemperaturelight:00212E09BD82:f0d1b80000148fb601:brightness"}

Kann mir jemand sagen wo ich hier ein fehler gemacht haben. oder eine Anregung geben kann.

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

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von udo1toni »

Da Du in den Logs ein Button Event siehst, wäre es da naheliegendste, auch auf dieses zu triggern. Frage hierzu (ich nutze die Taster nicht selbst). Wie läuft das mit dem Dimmen? Ich kenne dazu folgende Varianten:
1. eine Taste. kurzer Druck: An/Aus (toggelt) langer Druck: Licht wird gedimmt.
1.a) immer in die gleiche Richtung, bis zum Anschlag, dann Richtungsumkehr.
1.b) bei jedem Druck wird die Dimmrichtung umgekehrt.
2. zwei Tasten, die eine schaltet das Licht ein und dimmt bei langem Tastendruck heller, die andere Taste schaltet aus und dimmt bei langem Tastendruck dunkler.
3. vier Tasten, alle Funktionen sind komplett getrennt. Ich hab auch schon eine Variante mit drei Tasten gesehen, ein/aus wird getoggelt...

Jede der Varianten kann über eine Rule abgewickelt werden, sofern die Taster unterschiedliche Events für lang und kurz senden.

Code: Alles auswählen

rule "HueTap1_Button1"
when
    Channel 'deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent' triggered
then
    val Number dimmLevel = (GF_003LivingRoom_Light.state as Number)
    var Number soll = dimmLevel
    switch(receivedEvent) {
        case 5001 : {if(dimmLevel == 0) soll = 100}
        case 6001 : {if(dimmLevel != 0) soll = 0}
        case 5003 : {
            soll = dimmLevel + 5
            if(soll > 100) soll = 100
        }
        case 6003 : {
            soll = dimmLevel - 5
            if(soll < 0) soll = 0
        }
    }
    if(soll != dimmLevel)
        GF_003LivingRoom_Light.sendCommand(soll)
end
Ich gehe hier der Einfachheit halber davon aus, dass 5001 der Code für kurz AN ist und 6001 der Code für kurz AUS. Sollte dafür ein anderer Code zuständig sein, kann man das natürlich auch entsprechend berücksichtigen.

Eventuell ist es auch so, dass die Taste bei langem Tastendruck ein hold-Event sendet und dann beim Loslassen ein Release, dann wäre evtl. .001 der Beginn des Tastendrucks und .003 das Loslassen. In diesem Fall müsste man die Rule etwas anders gestalten, damit der Dimmvorgang kontinuierlich erfolgt, solange die Taste gedrückt ist. Aber auch das ist kein Problem, wichtig ist aber, das exakte Verhalten der Taste zu kennen, incl. aller Event Codes, welche die Taste sendet.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28
Answers: 0

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von ModjoMc06 »

Hallo udo1toni.

Der philips hue tap dial switch drehschalter, ist ein 6 Tasten Switch schalter davon sind 4 taste zum An/Aus, einmal für Kurz und für lang. die anderen Zwei sind für die dimmer funktion dreht man nach Rechts 5003 to 5001 für Hell und dreht man nach Links 6003 to 6001 für Dunkel zumindest kamen diese werte vom log her

Ich hatte dies auch so angepasst bzw. für An und aus
Hier mal die anfangs rule

Code: Alles auswählen

rule "HueTap1_Button1"
when
    Item HueTap1_Button1 received update
then
    // Prüfe, ob der Wandtaster ausgelöst wurde (buttonevent triggered 3002)
    if (HueTap1_Button1.state == 3002) {
        // Prüfe, ob das Licht eingeschaltet ist
        if (GF_32Kitchen_Light.state == ON) {
            // Licht ist an, schalte es aus
            GF_32Kitchen_Light.sendCommand(OFF)
        } else {
            // Licht ist aus, schalte es ein
            GF_32Kitchen_Light.sendCommand(ON)
        }
    }
end
Hier ist für Kurzen Tasten Druck also 3002 für An und Aus also taste 3 dies Funkoniert auch also die lampen lassen sich steuern. jedoch weiter weiß ich leider nicht wie die steuerung diesen philips hue tap dial switch drehschalter sind.

Mfg
Modjo

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

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von udo1toni »

Diese Drehfunktion, ist die kontinuierlich, oder sind das letztlich auch nur zwei Taster, die halt über eine Drehbewegung gedrückt werden? Denn entweder müsste ein Drehgeber kontinuierlich Impulse liefern, oder es müsste ein diskreter Wert gesendet werden - und das ist ja nach Deiner Beschreibung nicht der Fall.
Oder wechselt der gesendete Wert immer zwischen ...1 und ...3 hin und her, solange Du kontinuierlich in eine Richtung drehst?

Das Item ist jedenfalls unnötig, wie schon oben geschrieben. Items werden eingesetzt, um Status zu halten oder Befehle zu senden, hier geht es einzig um Ereignisse, welche ohnehin über den Channel zur Verfügung stehen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28
Answers: 0

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von ModjoMc06 »

Hallo Udo1toni.

Ja die Drehfunktion ist kontinuierlich so wie ich weiß da man den Drehregler Nach recht und licks drehen kann.
Zb. es sind Vier tasten und mit jeder taste kann eine lampe angesteuert werden, und Gedimmt werden.

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

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von udo1toni »

Dann müsste openHAB beim kontinuierlichen Drehen auch kontinuierlich Telegramme vom Drehgeber empfangen. Du musst Dein Log genauer anschauen, sprich: Geht hin und drehe den Drehgeber langsame eine volle Umdrehung in die eine Richtung, danach eine volle Umdrehung in die andere Richtung. Geh anschließend in die Shell und lass Dir alle Logzeilen mit der Thing UID ausgeben, die im passenden Zeitfenster sind (im Zweifel lässt Du einfach alle Zeilen ausgeben und kopierst dann alle Zeilen von unten nach oben im betreffenden Zeitraum, der steht ja dabei)

Code: Alles auswählen

cat /var/log/openhab/events.log | grep "001788010d34be2a01fc00:buttonevent"
Zeig am besten alle betreffenden Logzeilen füpr die beiden Drehbewegungen, damit ich verstehe, wie das Teil tickt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28
Answers: 0

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von ModjoMc06 »

Hallo udo1toni

Hier ist ein Ausdruck alle betreffenden Logzeilen füpr die beiden Drehbewegungen Rechts Links Rechts drehung 5001 links dreheung 6001

Code: Alles auswählen

2024-03-15 08:45:14.189 [WARN ] [.internal.DynamoDBPersistenceService] - Not ready to store (config error?), not storing item HueTap1_Button1.

==> /var/log/openhab/events.log <==

2024-03-15 08:45:14.188 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:14.190 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HueTap1_Button1' changed from 6003 to 5001

2024-03-15 08:45:14.593 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:14.994 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:15.328 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:15.722 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:16.306 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:16.705 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:17.342 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:17.750 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:18.286 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:18.698 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:19.286 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:19.678 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:20.187 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:20.588 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:21.156 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:21.568 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:22.052 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:22.462 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:23.264 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

2024-03-15 08:45:23.665 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 5001

==> /var/log/openhab/openhab.log <==

2024-03-15 08:45:29.306 [WARN ] [.internal.DynamoDBPersistenceService] - Not ready to store (config error?), not storing item HueTap1_Button1.

==> /var/log/openhab/events.log <==

2024-03-15 08:45:29.304 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:29.309 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HueTap1_Button1' changed from 5001 to 6001

2024-03-15 08:45:29.702 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:30.112 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:30.415 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:30.818 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:31.225 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:31.626 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:32.038 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:32.428 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:33.239 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001

2024-03-15 08:45:33.635 [INFO ] [openhab.event.ChannelTriggeredEvent ] - deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent triggered 6001


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

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von udo1toni »

Gut. Das bedeutet also, der Drehgeber sendet immer die gleiche Nachricht, abhängig von der Drehbewegung eben 5001 oder 6001. Bliebe noch zu klären, wo die 6003 bzw. evtl auch 5003 herkommt.

Eine passende Regel sollte dann aber so aussehen:

Code: Alles auswählen

rule "HueTap1 Button und Drehgeber"
when
    Channel 'deconz:switch:00212E09BD82:001788010d34be2a01fc00:buttonevent' triggered // Trigger direkt über den Channel, kein Item verwenden
then
    val Number dimmLevel = (GF_003LivingRoom_Light.state as Number)                   // aktuelle Helligkeit holen
    var Number soll = dimmLevel                                                       // als aktuellen Befehl setzen
    switch(receivedEvent) {                                                           // abhängig vom empfangenen Trigger
        case 3002 : {                                                                 // Taster gedrückt
            if(dimmLevel == 0) soll = 100                                             // falls aktueller Level aus, einschalten auf 100 %
            if(dimmLevel != 0) soll = 0                                               // fals aktueller Level nicht aus, ausschalten
        }
        case 5001 : {                                                                 // Drehgeber Rechtsdrehung
            soll = dimmLevel + 5                                                      // Sollwert erhöhen
            if(soll > 100) soll = 100                                                 // falls Obergrenze überschritten, auf Obergrenze gehen
        }
        case 6001 : {                                                                 // Drehgeber Linksdrehung
            soll = dimmLevel - 5                                                      // Sollwert vermindern
            if(soll < 0) soll = 0                                                     // falls Untergrenze unterschritten, auf Untergrenze gehen
        }
    }
    if(soll != dimmLevel)                                                             // Falls Sollwert von Istwert abweicht
        GF_003LivingRoom_Light.sendCommand(soll)                                      // Sollwert senden
end
Es braucht nur diese eine Rule, sonst nichts (außer natürlich den angegebenen Channel und das zu steuernde Dimmer Item).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28
Answers: 0

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von ModjoMc06 »

Hallo, udo1toni.

Also die 6003 und 5003 da hab ich selber keine ahnung zu welcher bewegung es gehört.

zudem ist mir auch aufgefallen das ich die deconz oberfläche im webbrowser laufen lassen muss, und den philips hue tap dial switch drehschalter laufen lassen muss. und beim geschlossener webbrowser oberfläche gibt es keine infos im log, aber aber nur bei philips hue tap dial switch drehschalter. :roll:

aber bin schon etwas weiter gekommen.

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

Re: philips hue tap dial switch drehschalter licht An/Aus Dimmen

Beitrag von udo1toni »

ModjoMc06 hat geschrieben: 16. Mär 2024 18:39 ...die deconz oberfläche im webbrowser laufen lassen muss, und den philips hue tap dial switch drehschalter laufen lassen muss. und beim geschlossener webbrowser oberfläche gibt es keine infos im log, aber aber nur bei philips hue tap dial switch drehschalter.
Keine Ahnung, was Du damit meinst.

Es ist gut möglich, dass Du die verwendeten Datenpunkte innerhalb des Systems verknüpfen musst, damit deconz das weiterleitet. Da ich das System nicht einsetze, fehlt mir dazu das Hintergrundwissen, ich meine aber, mal etwas in der Richtung aufgeschnappt zu haben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten