[gelöst] Diverse kleine Problemchen mit Tradfri

Begonnen von cb2sela, 16 Februar 2021, 10:27:11

Vorheriges Thema - Nächstes Thema

cb2sela

Guten Morgen,

ich hätte da gerne mal ein paar kleinere Problemchen mit Tradfri und freue mich auf Eure Hilfe.

Es geht um die Kombo Tradfri Remote Conrol (mit den 5 Tastern) und der 1000 lumen Birne. Ich fahre die neuste Conbee Stable Version 2.07.01 / 8.12.2020 und habe eine relativ neue Tradfri mit der Beschriftung Type E1810.

1. Leider ist es in Phoscon nicht möglich, auf die Pfeiltasten eine Änderung der Farbtemperatur zu legen. Ich kann nur durch Szenen toggeln, aber dadurch ändert sich auch jeweils die Helligkeit und das will ich nicht. Telefonisch konnte man mir bei Dresden Elektronik nicht weiterhelfen, außer, dass es schon ähnliche Anfragen gibt und man das in der Pipeline hätte. Diverse Threads auf github habe ich durch und alle erfolglos ausprobiert außer dem Ansatz direkt in der REST-Api was zu fummeln. Hat jemand noch sachdienliche Hinweise, wie man das ggf. direkt in Phoscon hinbekommt?

2. Die dazugehörige 1000lm Birne von IKEA welche man nicht nur dimmen sondern auch im Weißspektrum ändern kann sieht bei mir in FHEM so aus wie im beigefügten Bild. D.h. es gibt für die Birne nur einen Slider für die Farbtemperatur und keinen für die Helligkeit. Ist das normal so und kann man das irgendwie anpassen?

3. Ich würde die Änderung der Farbtemperatur dann alternativ über FHEM fahren, aber habe noch ein Syntaxproblem bei einem potentiellen notify. Ggf. gibt es auch eine viel einfachere Lösung und wenn ja: Her damit! Ansonsten wäre mein Ansatz, dass er bis zu einer bestimmten Grenze einfach die Farbtemperatur nach Tastendruck um 50 erhöht.

{ReadingsVal("HUEDevice1", "ct", "")} liefert etwas in dieser Art: 454 (2202K)
d.h. ich muss erstmal den ersten Wert rausparsen:
Das mache ich mit:
{(split " ", ReadingsVal("HUEDevice1","ct",0))[0]} und bekomme dann 454

Das hier funktioniert schonmal soweit. Allerdings macht er dabei den Zielwert ja noch fest:
IF ({(split " ", ReadingsVal("HUEDevice1","ct",0))[0] <= 300}) (set HUEDevice1 ct 200)


Wenn ich das dann allerdings dynamisch machen will klappts nicht:
IF ({(split " ", ReadingsVal("HUEDevice1","ct",0))[0] <= 300}) (set HUEDevice1 ct {(split " ", ReadingsVal("HUEDevice1","ct",0))[0] + 50})
=> IF: no right bracket: {(split " "






Otto123

Hi,

ich fange hinten an: Bei set magic muss der Perlausdruck in zusätzliche Klammern ()
(set HUEDevice1 ct {((split " ", ReadingsVal("HUEDevice1","ct",0))[0] + 50)})

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cb2sela

Danke Otto,

Punkt 3 ist damit schonmal hiermit gelöst:

IF ({(split " ", ReadingsVal("HUEDevice1","ct",0))[0] <= 300}) ((set HUEDevice1 ct {((split " ", ReadingsVal("HUEDevice1","ct",0))[0] + 50)}))


Ist es state of the art, das so zu lösen oder gibt es da noch bessere Lösungsansätze die sich eher wie ein Dimmer verhalten?

Für die anderen beiden Punkte bin ich gerne noch an Rückmeldungen / Erfahrungen interessiert.


Otto123

Naja ich habe einen einfache Hue Taster für Zigbee der kann theoretisch auf und ab im toggle Modus dimmen.
Dieser liefern bei gedrückt laufenden Events 1001 - die könnte man fortlaufend auch im notify auswerten.
Ich weiß nicht welchen Event Du im notify auswertest.
Der Taster muss es halt können. Ich habe einen zweiten Taster der liefert nur bei press und release - keine fortlaufenden. Am Ende kann man die sogar umprogrammieren? Soweit bin ich aber noch nicht vorgedrungen, ich kratze da nur an der Oberfläche.

Mit Deinem Slider: ich meine das geht so simpel nicht mit webcmd. Du kannst webcmd natürlich auf bri ändern.  Mit anderen Konstrukten bekommt man sicher mehrere Slider übereinander hin.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cb2sela

Falls sich nochmal jemand auf diesen Thread hier hin verirrt: Es funktionierte doch noch nicht ganz so, wie es sollte.

Umsetzung war:
DEF        Tradfri_WZ:5002 IF ({(split " ", ReadingsVal("HUEDevice1","ct",0))[0] < 450}) ((set HUEDevice1 ct {((split " ", ReadingsVal("HUEDevice1","ct",0))[0] + 50)}))

Zwar hat er höher geschaltet, aber
a) die Grenzen nicht respektiert, d.h. ging auch über 450, 500 etc. hinaus und 
b) das log hiermit vollgeschrieben:

2021.02.17 10:19:57 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 409102) line 1.
2021.02.17 10:19:57 3: eval: my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{if({(split " ", ReadingsVal("HUEDevice1","ct",0))[0] < 450}){fhem('set HUEDevice1 ct 504')}}


Ich habe es dann mit reiner Perl-Syntax in einem Notify so gelöst und bin damit nun glücklich.
Tradfri_WZ:5002 { my $currentVal = (split " ", ReadingsVal("HUEDevice1","ct",0))[0]; if ($currentVal <= 400) { fhem "set HUEDevice1 ct " . ($currentVal + 50 ) ; } }

Zur Sicherheit frage ich nochmal nach:
Es ist ECHT nicht ohne Klimmzüge möglich über die GUI eine Birne sowohl in der Helligkeit als auch der Farbe zu ändern? Das geht also bei dem ganzen HUE-Kram auch nicht in FHEM per GUI?

Otto123

Du hattest gesagt es funktioniert: mir kamen diese Klammern "komisch" vor:

({(split " ", ReadingsVal("HUEDevice1","ct",0))[0] < 450})

ich hätte sei einfach weggelassen :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz