Hallo, ich nutze einen AMS-reader um meinen Stromzähler auszulesen. Per MQTT gehen diese Daten an fhem.
Dabei wird ua ein Reading angelegt "cheapest_1hr" mit einem Zeitstempel "2024-11-29T03:00:00Z"
Das selbe auch für die billigsten 3h oder 6h.
Dieses würde ich gern in einem DOIF benutzen, um meine Batterie zu laden. Bekomme aber da den Fehler des falschen Zeitformats.
Internals:
CFGFN
DEF ##wenn AMS-reader billigste Zeit dann dummy an
([[AMS_Reader:cheapest_1hr]])
(set AMS_1h_laden_Dummy on, set AMS_1h_laden_Dummy off)
FUUID 674850b6-f33f-7b6c-5f28-b8fedff03e9d4833
MODEL FHEM
NAME AMS_1h_laden_DOIF
NOTIFYDEV global,AMS_Reader
NR 776354
NTFY_ORDER 50-AMS_1h_laden_DOIF
STATE initialized
TYPE DOIF
VERSION 28546 2024-02-23 20:11:05
eventCount 16
.attraggr:
.attrminint:
READINGS:
2024-11-28 17:55:15 cmd 0
2024-11-28 17:55:15 mode enabled
2024-11-28 17:55:15 state initialized
2024-11-28 17:55:15 timer_01_c01 error: Wrong timespec 2024-11-29T03:00:00Z: either HH:MM:SS or {perlcode}
Regex:
accu:
bar:
barAvg:
collect:
itimer:
AMS_Reader:
itimer:
cheapest_1hr ^AMS_Reader$:^cheapest_1hr:
attr:
cmdState:
wait:
0:
0
3600
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday)
do:
0:
0 set AMS_1h_laden_Dummy on, set AMS_1h_laden_Dummy off
1:
helper:
NOTIFYDEV global,AMS_Reader
globalinit 1
last_timer 1
sleeptimer -1
bm:
DOIF_Notify:
cnt 52
dmx -1000
dtot 0
dtotcnt 0
mTS 28.11. 17:55:20
max 0.000130891799926758
tot 0.00359725952148438
mAr:
HASH(0x560677244f18)
HASH(0x560672c99008)
DOIF_Set:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 28.11. 17:55:15
max 3.50475311279297e-05
tot 6.19888305664062e-05
mAr:
HASH(0x560677244f18)
AMS_1h_laden_DOIF
?
localtime:
time:
0 [AMS_Reader:cheapest_1hr]
timeCond:
0 0
timer:
0 0
timers:
0 0
uiState:
uiTable:
Attributes:
do always
room AMS_reader
wait 0,3600
Kann ich dies mit Perl umgehen oder eventuell mit einem userreading im device AMS_Reader?
Vielen Dank.
DOIF unterstützt das Zeitformat nicht. Du kannst ggf. HH:MM:SS aus dem Reading extrahieren und dann als Zeitpunkt angeben. Die Zeitangabe gilt aber immer für tägliche Triggerung. Datumsangaben werden als Trigger nicht unterstützt.
siehe: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
bei dir sollte das hier funktionieren:
[[AMS_Reader:cheapest_1hr:"(\d\d:\d\d:\d\d)"]]
Danke,
das hilft schon mal viel weiter. Das Reading wird jeden Tag gegen 13Uhr gesetzt, das sollte funktionieren. Da ich ich einen Stundentarif habe, würde ich das halt nutzen wollen um die Laptops etc zu laden. Ist ein Unterschied,
ob man 15ct/kWh oder 40ct/kWh bezahlt.
mvh