FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dirk.k am 01 September 2017, 21:57:56

Titel: [gelöst] Dezimalzahl aus hex-Wert ableiten in Userreadings
Beitrag von: dirk.k am 01 September 2017, 21:57:56
Hallo,
ich habe einen RGB-Wert in der Form AABBCC und benötige 3 einzelne Dezimalwerte
dez1 = AA
dez2 = BB
dez3 = CC

Beispiel:
RGB=AA0BFF
RGB1=170
RGB2=11
RGB3=255

Das ganze soll mittels userreadings passieren, da ESP Easy per MQTT nur Dezimalzahlen erlaubt.
Kann mir da jemand helfen?
Titel: Antw:Dezimalzahl aus hex-Wert ableiten in Userreadings
Beitrag von: JensS am 01 September 2017, 22:21:19
{ my $RGB="AA0BFF";; my $RGB1=hex(substr($RGB,0,2));;my $RGB2=hex(substr($RGB,2,2));;my $RGB3=hex(substr($RGB,4,2)) }
Dazu gibt es diverse Perl-Anleitungen.

Gruß Jens
Titel: Antw:Dezimalzahl aus hex-Wert ableiten in Userreadings
Beitrag von: dirk.k am 02 September 2017, 23:25:01
Danke,
mit den Hinweisen habe ich es hinbekommen.
Mit den perl-Hinweisen bin ich nicht weitergekommen. Ich habe anfangs immer "mid" zum Splitten versucht, substr habe ich dort nicht gefunden. Auch das Setzen der Klammern bereitet mir als Anfänger einige Probleme.
   
Hier meine variante der userreadings:
RGBr {hex(substr(ReadingsVal("WeMos_S3","RGB",0),1,2))},
RGBg {hex(substr(ReadingsVal("WeMos_S3","RGB",0),3,2))},
RGBb {hex(substr(ReadingsVal("WeMos_S3","RGB",0),5,2))},
...
Titel: Antw:[gelöst] Dezimalzahl aus hex-Wert ableiten in Userreadings
Beitrag von: JensS am 03 September 2017, 11:17:45
Wenn dein Wemos-Wert sechs Zeichen umfasst, ist die richtige substr-Zählung 0,2 - 2,2 - 4,2.

Die Klammersetzung ist gar nicht so schwer. Alles (außer eine Wurst) hat ein Anfang und ein Ende. Wenn du irgendwo eine Anfangsklammer setzt, musst du nur die dazugehörige Endklammer setzen.

Gruß Jens