Hauptmenü

DOIF mit readingList

Begonnen von Frood42, 13 Oktober 2021, 21:53:57

Vorheriges Thema - Nächstes Thema

Frood42

Eine Frage zu DOIF, irgendwie geht da etwas nicht:

Im Event-Monitor sieht man ein
Zitat
2021-10-13 21:46:56 SD_WS temp_living temperature: 20.8

und dann habe ich da ein:

defmod di_living_tempregler DOIF ([temp_living:temperature] < ([$SELF:desired]-1)) (set HM_7291AA_Clima desired-temp [$SELF:desired]) DOELSEIF ([temp_living:temperature] > ([$SELF:desired])) (set HM_7291AA_Clima desired-temp [$SELF:desired])
attr di_living_tempregler readingList desired
attr di_living_tempregler room 05_LIVING_ROOM,44_TEMPERATURE
attr di_living_tempregler setList desired:17,18,19,20,21,22,23,24
attr di_living_tempregler webCmd desired


Die Logik ist noch nicht fertig, ok - aber da passieren zwei komische Dinge bei der ganzen Geschichte:
1. di_living_tempregler desired verändert sich.
Wenn ich da mal etwas einstelle, dann verändert sich der Wert manchmal, ohne einen manuellen Eingriff
2. HM_7291AA_Clima desired-temp nimmt scheinbar irgendwelche Werte an. Meistens 21 und 17, aber in der Regel nie den Wert, den der di_living_tempregler setzt.

Ist an dem DOIF irgendetwas falsch?

Ach ja, ein
list temp_living
ergibt (Auszug):
   READINGS:
     2021-10-13 21:51:06   batteryState    ok
     2021-10-13 21:51:06   channel         1
     2021-10-13 21:51:06   humidity        54
     2021-10-13 21:51:06   state           T: 20.8 H: 54
     2021-10-13 21:51:06   temperature     20.8
     2021-10-13 21:46:56   tempkorr        20.3
     2021-10-13 21:51:06   type            E0001PA, s014, S522, TCM, TFA 30.3200, TX-EZ6


Viele Grüße, Frood

Damian

Bei mir wird das Reading desired korrekt gesetzt und das DOIF getriggert.

Ohne do always-Attribut wird natürlich der gleiche Zweig nur einmal Mal ausgeführt.

Allerdings erschließt sich mir nicht der Sinn deiner Definition, denn in beiden Zweigen führst du den selben Code aus  ???

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

Frood42

Über dieses do always bin ich ja jetzt schon öfters gestolpert.
Bzgl:
ZitatOhne do always-Attribut wird natürlich der gleiche Zweig nur einmal Mal ausgeführt.

was heisst nur einmal? Einmal pro Tag, pro Stunde oder? Das scheint bei mir öfters "das Problem" zu sein.

Die Logik ist noch nicht fertig - wie gesagt - ich wollte ja im Grunde einen Regler für den Regler einführen, das ist eh bisschen fragwürdig, aber durchaus ausbaubar.
Wenn es warm genug ist, dann stelle ich das desired wahrscheinlich weiter runter.





Damian

Zitat von: Frood42 am 14 Oktober 2021, 16:26:56
Über dieses do always bin ich ja jetzt schon öfters gestolpert.
Bzgl:
was heisst nur einmal? Einmal pro Tag, pro Stunde oder? Das scheint bei mir öfters "das Problem" zu sein.

Die Logik ist noch nicht fertig - wie gesagt - ich wollte ja im Grunde einen Regler für den Regler einführen, das ist eh bisschen fragwürdig, aber durchaus ausbaubar.
Wenn es warm genug ist, dann stelle ich das desired wahrscheinlich weiter runter.

Nur einmal bedeutet nur einmal, dann muss ein anderer Zustand folgen z.B. cmd_2 ... und dann kann erst wieder cmd_1 kommen. Warum das so ist, steht in der Commandref zu DOIF - Thema: zyklisch sendende Sensoren, die sonst jedes mal einen Schaltbefehl auslösen würden
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF