Hallo,
ich möchte in meiner Stromstatistik aktuelle Werte mit Vorjahreswerten vergleichen.
Dazu habe ich mir jeweils den Monatswert in ein dummy geschrieben: EM_month_1601 - EM_month_1612
Nun möchte ich jeweils ein dummy EM_vorjahresmonat setzen lassen.
define ermittlung_EM_vorjahresmonat1 at *23:59:30 {if($year==2017 && $month==1 && $mday==1) {\
fhem("set EM_vorjahresmonat ". EM_month_1601);;\
} }
Ich bekomme aber
ERROR evaluating {if($year==2017 && $month==1 && $mday==1) {
fhem("set EM_vorjahresmonat ". EM_month_1601);
} }: Bareword "EM_month_1601" not allowed while "strict subs" in use at (eval 7404363) line 2.
2017.02.24 23:59:36 3: ermittlung_EM_vorjahresmonat1: Bareword "EM_month_1601" not allowed while "strict subs" in use at (eval 7404363) line 2.
Also ist irgendwo die Klammersetzung falsch?
Kann mir da jemend bitte beim define die richtige Klammer setzen.
Danke
Jörg
Wenn Du es mit zusätzlichen Klammern lösen möchtest, versuche es mit set magic.
fhem("set EM_vorjahresmonat [EM_month_1601:state]")
eventuell müsstest Du die Klammern maskieren
fhem("set EM_vorjahresmonat \[EM_month_1601:state\]")
siehe https://fhem.de/commandref_DE.html#set
fhem("set EM_vorjahresmonat ". EM_month_1601)
EM_month_1601 ist Dein Bareword. Was soll das eigentlich sein? Wenn du hier eine Variable nehmen wolltest musst du sie entsprechend deklarieren und auch als Variable kennzeichnen.
fhem("set EM_vorjahresmonat ". Value("EM_month_1601");
Könnte eine Lösung sein.
Zitat von: CoolTux am 25 Februar 2017, 08:06:15
fhem("set EM_vorjahresmonat ". EM_month_1601)
EM_month_1601 ist Dein Bareword. Was soll das eigentlich sein?
Hat er doch gesagt. Es ist ein Dummy. Der erste Vorschlag von Ellert ist meiner Meinung nach schon richtig.
Gruß,
Thorsten
Zitat von: CoolTux am 25 Februar 2017, 08:06:15
EM_month_1601 ist Dein Bareword. Was soll das eigentlich sein?
EM_month_1601 ist der Monatverbrauch (Strom) aus Januar 2016.
Internals:
CFGFN /opt/fhem/FHEM/16_Stromstatistik.cfg
NAME EM_month_1601
NR 1369
STATE 332
TYPE dummy
Readings:
2017-01-15 07:35:02 state 332
Genau den möchte ich nun mit Januar2017 (EM_month_1701) gegenüberstellen. Die meisten Auswertungen beziehen sich immer auf den Vormoat - das ist baer z.B. im März blöd wenn der Stromverbauch zum Vormonat aufgrund Witterung oder Urlaub oder anderer Umstädne abweischt. Interessanter finde ich es zusätzlich eben den VorJAHRESwert zu vergleichen.
Hilft das ?
Jörg
Zitat von: jnewton957 am 25 Februar 2017, 08:23:30Hilft das ?
Lies doch mal alle Beiträge.
Gruß,
Thorsten
Zitat von: Thorsten Pferdekaemper am 25 Februar 2017, 08:21:44
Hat er doch gesagt. Es ist ein Dummy. Der erste Vorschlag von Ellert ist meiner Meinung nach schon richtig.
Gruß,
Thorsten
Mir ging es eher darum das es entweder eine Variable oder der Aufruf einer Funktion sein kann, da es in der Perlumgebung stand. Beides passte aber nicht zu dem was da stand.