Hallo,
ich bekomme folgenden Fehler. Finde aber meinen Klammerfehler nicht. 🙈
Error evaluating tuya_local_bf9831c0ace9cc05d9bc6i userReading hue: syntax error at (eval 3409) line 1, at EOF syntax error at (eval 3409) line 1, near ";)"
attr tuya_local_bf9831c0ace9cc05d9bc6i userReadings hue {my $rgb=ReadingsVal($name,"colour_data_v2","0");;($rgb eq "FFFFFF")?"100":{my ($r,$g,$b)=(hex(substr($rgb,0,2)/255.0;;;;substr($rgb,2,2)/255.0;;substr($rgb,4,2)/255.0;;my ($h,$s,$v) = Color::rgb2hsv($r,$g,$b);;my $hue = int($h*100);;)})}
Gruß, Sascha
Schreib das doch mal leserlich auf, dann siehst Du, wo die Probleme liegen.
hue {my $rgb=ReadingsVal($name,"colour_data_v2","0");
($rgb eq "FFFFFF")?"100":
{ my ($r,$g,$b) = (hex(substr($rgb,0,2)/255;substr($rgb,2,2)/255;substr($rgb,4,2)/255;
my ($h,$s,$v) = Color::rgb2hsv($r,$g,$b);
my $hue = int($h*100);
)})}
- die 255.0 habe ich wegen der Lesbarkeit auf 255 gekürzt.
- Am Ende der Zeile "my ($r,$g,$b)" fehlt eine Klammer.
- Dafür sind in der letzten Zeile Klammern zuviel, die da nicht hingehören.
- Ob das mit Deiner hex() Umwandlung so überhaupt funktioniert, weiß ich nicht genau. Du möchtest ja letztlich drei Werte per substr() ermitteln, die eigentlich alle per hex() konvertiert werden müssten. Da Du als Ergebnis ein array mit drei Werten haben möchtest, sollten in der Rückgabe auch drei durch Komma (!) getrennte Werte geliefert werden.
Ich habe es jetzt leserlich geschrieben. In meiner Welt würden am Ende von Zeile 3 sogar zwei Klammern fehlen, die dann am Ende in Zeile 6 zu viel sind. Aber egal was ich versuche, ich bekomme immer einen Error...
defmod tuya_local_bf9831c0ace9cc05d9bc6i dummy
attr tuya_local_bf9831c0ace9cc05d9bc6i userReadings hue:colour_data_v2.* { my $rgb=ReadingsVal($name,"colour_data_v2","0");; return 100 if ($rgb eq "FFFFFF");;;; my ($r,$g,$b) = (hex(substr($rgb,0,2))/255,hex(substr($rgb,2,2))/255,hex(substr($rgb,4,2))/255);;;; my ($h,$s,$v) = Color::rgb2hsv($r,$g,$b);;;; return int($h*100);;;;}
funktioniert bei mir einwandfrei.
setstate tuya_local_bf9831c0ace9cc05d9bc6i 2024-11-20 13:01:18 colour_data_v2 FF00FF
setstate tuya_local_bf9831c0ace9cc05d9bc6i 2024-11-20 13:01:18 hue 83
Zitat von: Cybers am 20 November 2024, 12:12:58In meiner Welt würden am Ende von Zeile 3 sogar zwei Klammern fehlen, die dann am Ende in Zeile 6 zu viel sind. Aber egal was ich versuche, ich bekomme immer einen Error...
Nun wissen wir ja nicht, WIE Du versuchst, den code für Dein userReading in FHEM einzubauen. Aber wenn Du den mit FHEM gelieferten Editor codemirror in dem Attributfeld verwendest, wird Dir doch automatisch angezeigt, wie die eingegebenen Klammern paarweise zusammengehören. Das hilft ungemein bei der Fehlersuche.