Hallo ihr, ich versuche ein Reading eines modbus devices alle 55 Sekunden abzufragen
define Studer485_Gateway_Trigger_Timer_DOIF DOIF ([00:00-23:59,+00:00:55]) (get Studer485_Gateway Message_Count_must_read_first)
das funktioniert einmal, ab dem zweiten Durchlauf bekomme ich einen error
error | get Studer485_Gateway Message_Count_must_read_first: 49
device list
Internals:
CFGFN
DEF ([00:00-23:59,+00:00:55]) (get Studer485_Gateway Message_Count_must_read_first)
FUUID 64898f82-f33f-6bb4-2c4b-1a040e1483949821
MODEL FHEM
NAME Studer485_Gateway_Trigger_Timer_DOIF
NOTIFYDEV global
NR 77692
NTFY_ORDER 50-Studer485_Gateway_Trigger_Timer_DOIF
STATE cmd_1
TYPE DOIF
VERSION 24570 2021-06-02 22:25:40
READINGS:
2023-06-14 12:00:25 cmd 1
2023-06-14 12:00:25 cmd_event timer_3
2023-06-14 12:00:25 cmd_nr 1
2023-06-14 12:00:25 error get Studer485_Gateway Message_Count_must_read_first: 49
2023-06-14 11:59:30 mode enabled
2023-06-14 12:00:25 state cmd_1
2023-06-14 11:59:30 timer_01_c01 15.06.2023 00:00:00
2023-06-14 11:59:30 timer_02_c01 14.06.2023 23:59:00
2023-06-14 12:01:20 timer_03_c01 14.06.2023 12:02:15
Regex:
accu:
collect:
attr:
cmdState:
waitdel:
condition:
0 ::DOIF_time($hash,0,1,$wday,$hms)
days:
do:
0:
0 get Studer485_Gateway Message_Count_must_read_first
1:
helper:
DEVFILTER ^global$
NOTIFYDEV global
event timer_3
globalinit 1
last_timer 3
sleeptimer -1
timerdev
timerevent timer_3
triggerDev
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: timer_3
error: get Studer485_Gateway Message_Count_must_read_first: 49
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_3
error: get Studer485_Gateway Message_Count_must_read_first: 49
state: cmd_1
timerevents:
timer_3
timereventsState:
timer_3
triggerEvents:
timer_3
triggerEventsState:
timer_3
interval:
0 -1
1 0
intervalfunc:
2 ::DOIF_time($hash,0,1,$wday,$hms)
intervaltimer:
0 2
1 2
localtime:
0 1686780000
1 1686779940
2 1686736935
realtime:
0 00:00:00
1 23:59:00
2 12:02:15
time:
0 00:00:00
1 23:59:00
2 +00:00:55
timeCond:
0 0
1 0
2 0
timer:
0 0
1 0
2 0
timers:
0 0 1 2
triggertime:
1686736935:
localtime 1686736935
hash:
1686779940:
localtime 1686779940
hash:
1686780000:
localtime 1686780000
hash:
uiState:
uiTable:
Attributes:
warum mag das DOIF den zweiten Durchlauf (und folgend) nicht mehr? Und warum macht es einen Eintrag im fhem logfile für den ersten Durchgang?
2023.06.14 12:00:25 2: Studer485_Gateway_Trigger_Timer_DOIF: get Studer485_Gateway Message_Count_must_read_first: 49
Diesen Eintrag macht auch ein vorher probiertes AT (was funktioniert, aber ich mag DOIF lieber weil ich die Syntax schneller verstehe/lese). Werden get Befehle generell im fhem log verewigt? Und falls, wie kann man das vermeiden?
error bedeutet in dem Fall, dass der get-Befehl etwas ungleich Null zurückliefert, hier 49. Es ist also kein echte Fehler. Normalweise liefern set/get-Befehle etwas zurück, wenn es ein Fehler ist.
Danke Damian, aber wie bekomme ich das Baby zum Laufen? Falls möglich. Ich kann auch auf das AT zurück, aber da muss ich jedesmal nachlesen um es zu verstehen ;)
Für die fhem Logeinträge sollte ein verbose helfen, gerade eingefallen.
Wenn es in der Kommandozeile funktioniert, dann muss es auch im DOIF funktionieren. Error kannst du ignorieren.
Mmh, in der Kommandozeile geht es, im DOIF nicht. Dewegen war mir der error aufgefallen, resp. dachte ich, das könnte ein Hinweis sein.
Allerdings funktionierte das AT am Anfang auch nicht. Warum auch immer. Werde das DOIF mal genau so nochmals einbauen und schauen.
Danke dir!