DOIF mit setzen/abfragen von Readings

Begonnen von Soc, 08 März 2018, 08:56:18

Vorheriges Thema - Nächstes Thema

Soc

Hallo Zusammen,

ich habe folgendes DOIF:


([HMLANGW:state] ne "opened")
(set $DEVICE open)
({sendAdminNotification("Gateway wird wieder geöffnet - max 10 mal.","FHEM (T) - HM Gateway $DEVICE wurde unerwartet geschlossen (STATE: [$DEVICE:state])")})
DOELSE
({sendNotification("Gateway ist wieder geöffnet.","FHEM (T) - HM Gateway $DEVICE ist [$DEVICE:state]")})


Und würde es gerne mit folgenden Code im DO Zweig erweitern:

my $todayDisc=ReadingsVal("du_SYS_HMStatus","$DEVICE_Disconnect_today",0)
$todayDisc = $todayDisc+1
fhem ("setreading du_SYS_HMStatus $DEVICE_Disconnect_today $todayDisc")


Aussehen sollte es dann so:


([HMLANGW:state] ne "opened")
(set $DEVICE open)
my $todayDisc=ReadingsVal("du_SYS_HMStatus","$DEVICE_Disconnect_today",0)
$todayDisc = $todayDisc+1
fhem ("setreading du_SYS_HMStatus $DEVICE_Disconnect_today $todayDisc")
({sendAdminNotification("Gateway wird wieder geöffnet - max 10 mal.","FHEM (T) - HM Gateway $DEVICE wurde unerwartet geschlossen (STATE: [$DEVICE:state])")})
DOELSE
({sendNotification("Gateway ist wieder geöffnet.","FHEM (T) - HM Gateway $DEVICE ist [$DEVICE:state]")})


Egal wie ich es versuche, es kommen immer Fehler.

Kann jemand helfen?

Otto123

#1
Hi,

einen dummy wert mit einer Zahl im state kann man mit folgendem einfachen Befehl aufwärts zählen:
set wert {([wert:state] +1)}

also aus my $todayDisc=ReadingsVal("du_SYS_HMStatus","$DEVICE_Disconnect_today",0)
$todayDisc = $todayDisc+1
fhem ("setreading du_SYS_HMStatus $DEVICE_Disconnect_today $todayDisc")
wird

setreading du_SYS_HMStatus $DEVICE_Disconnect_today {([du_SYS_HMStatus:$DEVICE_Disconnect_today] +1)}

Gruß Otto

P.S. Bevor ich auf die Idee kommen würde die disconnects meines HMLAN zu zählen, würde ich Ursachen Forschung betreiben.
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

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Soc

Zitat von: Otto123 am 08 März 2018, 09:44:32

P.S. Bevor ich auf die Idee kommen würde die disconnects meines HMLAN zu zählen, würde ich Ursachen Forschung betreiben.

Bin aktuell auch dabei. Versuche mich gerade mit apptime.
Das komische ist blos, dass die beiden HMLANGWs vieleicht 1 mal pro Tag auf Disconnect gehen (somit setzt das DOIF die GWs wieder auf open), aber x-mal ein reopen gemacht wird.
Mir ist noch nicht klar woher der Delay kommt und versuche mühsam dem Problem Herr zu werden.

Auf jeden Fall Danke für deinen Tipp.

Soc

Hat soweit super funktioniert.
Nun würde ich gerne noch den Timestamp im Dummy speichert.


(setreading du_SYS_HMStatus $DEVICE_Disconnect_last {(ReadingsTimestamp($DEVICE,"state","0"))})


Hier bekomme ich aber folgenden Fehler:

Bareword "HMLANGW" not allowed while "strict subs" in use at (eval 4614243) line 1.

Geht das generell nicht?

Damian

(setreading du_SYS_HMStatus $DEVICE_Disconnect_last {(ReadingsTimestamp("$DEVICE","state","0"))})
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Soc

Was so kleine Hochkomma ausmachen. 😩
Danke, hat super geklappt.