Hallo zusammen,
ich nutze aktuell in einem meiner DOIFs die $cmd Readings. Leider hat es am Anfang nicht so richtig funktioniert, denn laut WIKI
https://wiki.fhem.de/wiki/DOIF/Mehrfachnutzung_eines_Tasters (https://wiki.fhem.de/wiki/DOIF/Mehrfachnutzung_eines_Tasters)
kann das Reading mit einem einfachen "==" Operator abgefragt werden. Wie gesagt, das hat bei mir nicht funktioniert. Erst als "eq" verwendet habe, ging das. Also gehe ich davon aus, dass in $cmd ein String steht. Fehler in der WIKI?
Anyway... Im $cmd steht aber nicht nur die Nummer des ausgeführten DOELSIF, sondern auch nach dem "." die Nummer des ausgeführten Befehls.
Bsp:
DOELSIF (...)
set(...)
set(...)
Hier würde nach der Nummer des ausgeführten DOELSIF die 2 auftauchen, weil ich 2 set's in der Ausführungsfolge habe (Sowas wie 7.2). Diese 2 interessiert mich für mein Anwendungsfall nicht, ich will nur wissen welcher DOELSIF ausgeführt wurde. Diese Information steht in dem cmd_nr Reading. Also zu meiner Frage, gibt es eine Möglichkeit den cmd_nr Reading einfach abzufragen? Es würde die Erweiterung meiner DOIF-Abfrage wesentlich vereinfachen
$cmd_nr
Hat leider nicht funktioniert.
In Perl gibt es keine Datentypisierung.
1.1 ist das Gleiche wie "1.1"
Du kannst, wenn du weißt, dass es sich um eine korrekte Dezimalzahl-Darstellung handelt, diese Information mit == 1.1 oder eq "1.1" vergleichen.
bei cmd 7.2 ist das Reading cmd_nr==7 und das Reading cmd_seqnr==2
Hm... ich bin mir sicher bei ==1.1 hat DOIF nicht funktioniert im eq "1.1" schon.
Gibt es im DOIF eine vereinfachte Schreibweise für cmd_nr ähnlich wie das für cmd mit
$cmd
gemacht wird?
Zitat von: EinEinfach am 15 April 2019, 13:30:10
Hm... ich bin mir sicher bei ==1.1 hat DOIF nicht funktioniert im eq "1.1" schon.
Gibt es im DOIF eine vereinfachte Schreibweise für cmd_nr ähnlich wie das für cmd mit
$cmd
gemacht wird?
Für die Readings cmd_nr, cmd_seqnr gibt es keine vorbelegten Variablen.
Hier sollte man die Readings auswerten, z. B [?$SELF:cmd_nr] == 7
ZitatHier sollte man die Readings auswerten, z. B [?$SELF:cmd_nr] == 7
Funktioniert! Vielen Dank!