Notify IF Anweisung

Begonnen von sepultura30, 14 März 2022, 17:58:43

Vorheriges Thema - Nächstes Thema

sepultura30

Hallo,

ich verstehe nicht, warum das IF in dem Notify nicht funktioniert.
Tage ist ein Dummy wo aktuell im state 73 steht. Und ich möchte nur Tage vergleich, mehr nicht. Ohne den IF Block funktioniert alles.


Gartenteich_Technik_Pwr:energyCalc:.*
IF ([Tage] = 73)
set Gartenteich_Technik_Verbrauch_Tag_1 {(ReadingsVal('Gartenteich_Technik_Pwr','energyCalc',''))}


Grüße

Sandro

MadMax-FHEM

Also mindestens schon mal:

= -> Zuweisung, also setze die Variable links auf den Wert rechts

== -> Vergleich, also ist links das gleiche wie rechts

Wichtig: == usw. bei Zahlen, ansonsten eq usw.

Ob der Rest dann noch passt: keine Ahnung...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

sepultura30

Hallo,

habe ich geändert in == und geht auch nicht.

Grüße

Sandro

Zitat von: MadMax-FHEM am 14 März 2022, 18:12:55
Also mindestens schon mal:

= -> Zuweisung, also setze die Variable links auf den Wert rechts

== -> Vergleich, also ist links das gleiche wie rechts

Wichtig: == usw. bei Zahlen, ansonsten eq usw.

Ob der Rest dann noch passt: keine Ahnung...

Gruß, Joachim

MadMax-FHEM

Zitat von: sepultura30 am 14 März 2022, 18:15:55
habe ich geändert in == und geht auch nicht.

Hilft halt auch nicht.

Wie wäre es denn (wie üblich) mit lists der beteiligten Devices?
Und zwar komplett...
...statt nur Ausschnitte.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

sepultura30

Hi,

wie gewünscht der komplette Auszug.


defmod Gartenteich_Technik_Verbrauch_Tag_1_notify notify Gartenteich_Technik_Pwr:energyCalc:.* {\
if (ReadingsVal('Tage','state','') == '73'){\
set Gartenteich_Technik_Verbrauch_Tag_1 {(ReadingsVal('Gartenteich_Technik_Pwr','energyCalc',''))}\
}\
}
attr Gartenteich_Technik_Verbrauch_Tag_1_notify room Stromverbrauch

defmod Gartenteich_Technik_Pwr CUL_HM 5ECDFC02
attr Gartenteich_Technik_Pwr DbLogExclude energyCalc,Verbraucht1
attr Gartenteich_Technik_Pwr alias Gartenteich_Technik_Pwr
attr Gartenteich_Technik_Pwr event-on-change-reading .*
attr Gartenteich_Technik_Pwr icon measure_power
attr Gartenteich_Technik_Pwr model HM-ES-PMSW1-PL
attr Gartenteich_Technik_Pwr peerIDs peerUnread
attr Gartenteich_Technik_Pwr room Gartenteich,Vogelvoliere
attr Gartenteich_Technik_Pwr sortby 1
attr Gartenteich_Technik_Pwr stateFormat {sprintf("Gesamt %.2f kWh - pro Tag %.2f kWh - Watt %.1f - € %.1f",\
ReadingsVal("Gartenteich_Technik_Pwr","Verbraucht1",0) / 10000,\
ReadingsVal("Gartenteich_Technik_Pwr","Verbraucht",0) / ReadingsVal('Tage','Tag','0'),\
ReadingsVal("Gartenteich_Technik_Pwr","power",0),\
ReadingsVal("Gartenteich_Technik_Pwr","Verbraucht",0)* ReadingsVal("Strompreis","state",0))}
attr Gartenteich_Technik_Pwr userReadings Verbraucht1 {ReadingsVal("Gartenteich_Technik_Pwr","energyCalc",0) - ReadingsVal('Gartenteich_Technik_Verbrauch_Tag_1','state','0')},\
Verbraucht {ReadingsVal("Gartenteich_Technik_Pwr","Verbraucht1",0) / 10000},\
EinzelVerbrauch {ReadingsVal("Gartenteich_Technik_Pwr","Verbraucht",0) / ReadingsVal('Tage','Tag','0')}

defmod Gartenteich_Technik_Verbrauch_Tag_1 dummy
attr Gartenteich_Technik_Verbrauch_Tag_1 room Stromverbrauch

defmod Tage dummy
attr Tage alias Tage
attr Tage icon day_night
attr Tage room Stromverbrauch
attr Tage stateFormat Tag

setstate Gartenteich_Technik_Pwr Gesamt 7.39 kWh - pro Tag 0.10 kWh - Watt 67.1 - € 1.9
setstate Gartenteich_Technik_Pwr 2022-03-14 12:08:25 .associatedWith Gartenteich_Technik,Gartenteich_Technik_Pwr,Gartenteich_Technik_SenF,Gartenteich_Technik_SenI,Gartenteich_Technik_SenPwr,Gartenteich_Technik_SenU,Gartenteich_Technik_Sw,Gartenteich_Technik
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 EinzelVerbrauch 0.101241232876712
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-averaging 1 s
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-sign off
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-txMinDly 8 s
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-txThrCur 100 mA
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-txThrFrq 1 Hz
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-txThrPwr 100 W
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 R-txThrVlt 10 V
setstate Gartenteich_Technik_Pwr 2022-01-01 15:56:31 RegL_01. 00:00 08:00 7A:01 7B:08 7C:00 7D:27 7E:10 7F:00 80:64 81:00 82:64 83:64
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 Verbraucht 7.39061
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 Verbraucht1 73906.1
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 boot off
setstate Gartenteich_Technik_Pwr 2022-01-01 15:57:31 cfgState ok
setstate Gartenteich_Technik_Pwr 2022-03-14 12:08:53 commState CMDs_done
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 current 327
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 eState E: 73907.1 P: 67.06 I: 327 U: 229.2 f: 49.98
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 energy 73907.1
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 energyCalc 73907.1
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 frequency 49.98
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 power 67.06
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 state 73907.1
setstate Gartenteich_Technik_Pwr 2022-03-14 18:45:01 voltage 229.2

setstate Gartenteich_Technik_Verbrauch_Tag_1 1
setstate Gartenteich_Technik_Verbrauch_Tag_1 2022-03-14 17:06:42 state 1

setstate Gartenteich_Technik_Verbrauch_Tag_1_notify 2022-03-14 18:45:01
setstate Gartenteich_Technik_Verbrauch_Tag_1_notify 2022-03-14 18:44:58 state active
setstate Gartenteich_Technik_Verbrauch_Tag_1_notify 2022-03-14 18:45:01 triggeredByDev Gartenteich_Technik_Pwr
setstate Gartenteich_Technik_Verbrauch_Tag_1_notify 2022-03-14 18:45:01 triggeredByEvent energyCalc: 73907.1

setstate Tage 73
setstate Tage 2022-03-14 00:01:00 Tag 73




Zitat von: MadMax-FHEM am 14 März 2022, 18:38:52
Hilft halt auch nicht.

Wie wäre es denn (wie üblich) mit lists der beteiligten Devices?
Und zwar komplett...
...statt nur Ausschnitte.

Gruß, Joachim

LuckyDay

IF ([Tage:Tag] == 73)

da du im dummy das reading Tag hast

STATE variante könntest auch  probieren,
state variante haste kein reading

schau dir die Beispiele genau an!

ZitatIF Statusabfrage des Devices "outdoor" in der Bedingung:

define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)

entspricht mit Angabe des Internals mit &:

define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)

Wenn der Reading "state" abgefragt werden soll, dann wird der Readingname ohne & angegeben:

define check at +00:10 IF ([outdoor:state] eq "open") (set switch1 on)

sepultura30

Hi,

das habe ich auch schon probiert, leider geht das auch nicht.

Zitat von: fhem-hm-knecht am 14 März 2022, 19:10:21
IF ([Tage:Tag] == 73)

da du im dummy das reading Tag hast

STATE variante könntest auch  probieren,
state variante haste kein reading

schau dir die Beispiele genau an!

sepultura30

So funktionierts es jetzt, nur am Tag 365 soll das Reading geschrieben werden.



Gartenteich_Technik_Pwr:energyCalc:.*
{fhem ("set Gartenteich_Technik_Verbrauch_Tag_1 {(ReadingsVal('Gartenteich_Technik_Pwr','energyCalc',''))};") if (ReadingsVal("Tage","Tag","") == 365)}



Zitat von: sepultura30 am 14 März 2022, 19:26:42
Hi,

das habe ich auch schon probiert, leider geht das auch nicht.

Damian

Das bedeutet, dass du das ganze Jahr über dein System mit jedem Event von Gartenteich_Technik_Pwr:energyCalc belastest, um einmal im Jahr ein Reading zu schreiben - über diese Konstruktion ich noch mal nachdenken.

Zeittrigger wäre hier besser angebracht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

sepultura30

Hallo Damian,

wie geht es besser, über Vorschläge bin ich nicht abgeneigt.

Grüße

Sandro

Zitat von: Damian am 14 März 2022, 19:57:54
Das bedeutet, dass du das ganze Jahr über dein System mit jedem Event von Gartenteich_Technik_Pwr:energyCalc belastest, um einmal im Jahr ein Reading zu schreiben - über diese Konstruktion ich noch mal nachdenken.

Zeittrigger wäre hier besser angebracht.

Damian

Die erste Frage ist: Wie oft wird Gartenteich_Technik_Pwr:energyCalc mit einem event aktualisiert?

Dann kann man weiter überlegen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DetlefR

Hallo Sandro,

wenn man versucht aus den Name auf die Funktion zu schliessen, kann man manchmal ganz schön daneben liegen.Darum meine Frage, was bezweckst du mit dem Notify?
Das hilft dann schon weiter.

Ansonsten sollte das helfen.

Gartenteich_Technik_Pwr:energyCalc:.* {
fhem ("set Gartenteich_Technik_Verbrauch_Tag_1 $EVTPART1") if (ReadingsNum("Tage","Tag",0) == 365);
}

Ich gehe mal davon aus, dass "energyCalc" nur eine Zahl enthält. Dann bietet FHEM im Notify $EVTPART1 das diesen Wert enthält. Und wenn eine Zahl aus einem Reading erwartet wird, ist ReadingsNum günstiger.
Gruß Detlef

Jamo

Warum nicht ein "at"?  Anstelle eines notify, das mit jedem energyCalc event aktualisiert?
Hier beispielhaft ein at was einmal am Tag um 04:00 ausgeführt wird, und dann der check ob es der erste Tag im Jahr ist define set_JahresVerbrauch_at at *04:00:00 {if($yday == 0) {fhem ("set Gartenteich_Technik_Verbrauch_Tag_1 {(ReadingsVal('Gartenteich_Technik_Pwr','energyCalc',''))};")}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

TomLee

An at dacht ich auch beim mitlesen, aber iVm. at_ultimo() und dem Attribut disabledForIntervals.

Sollte so klappen:

defmod set_JahresVerbrauch_at at *{at_ultimo()} set Gartenteich_Technik_Verbrauch_Tag_1 {(ReadingsVal('Gartenteich_Technik_Pwr','energyCalc',0))}
attr set_JahresVerbrauch_at disabledForIntervals {$month <= 11 ? '00' : '24';; }-24