DOIF Auswerten $cmd

Begonnen von EinEinfach, 15 April 2019, 13:08:48

Vorheriges Thema - Nächstes Thema

EinEinfach

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
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.

fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

EinEinfach

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?
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

EinEinfach

ZitatHier sollte man die Readings auswerten, z. B [?$SELF:cmd_nr] == 7

Funktioniert! Vielen Dank!
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP