Reading im Ausführungsteil schalten

Begonnen von Tabularasa, 17 Oktober 2018, 15:57:45

Vorheriges Thema - Nächstes Thema

Damian

In beiden Fällen hast du so etwas eingebaut:

[":^actuator"]>55

Die Ereignisabfrage liefert nur wahr oder falsch aber keinen Wert.

Solche Verallgemeinerungen funktionieren nicht gut, denn auch wenn es funktionieren würde, wenn irgend ein actuator > 55 meldet und der nächste < 55, ist der vorherige vermutlich immer noch > 55. Da musst du dir etwas anderes überlegen.





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

Tabularasa

#31
Zitat von: Damian am 26 Oktober 2018, 11:21:56
In beiden Fällen hast du so etwas eingebaut:

[":^actuator"]>55

Die Ereignisabfrage liefert nur wahr oder falsch aber keinen Wert.

Ah ok, das erklärt es dann schon einigermaßen
Zitat von: Damian am 26 Oktober 2018, 11:21:56
auch wenn es funktionieren würde, wenn irgend ein actuator > 55 meldet und der nächste < 55, ist der vorherige vermutlich immer noch > 55. Da musst du dir etwas anderes überlegen.

das ist eigentlich auch so gewollt, denn wenn einer noch über >55 liegt ist es nicht warm genug und soll weiter geheizt werden. Kann man nicht auf wahr triggern und so den Zweig auslösen? Wäre meine Lieblingslösung ;D
Eine andere Idee hätte ich noch aber da weiß ich nicht wie ich das hin bekomme und ob es auch so zulässig funktioniert... Also den Durchschnitt aus allen 6 actuator Stellungen bilden und dann > zB 55. Ist das möglich? Aslo zB
DOIF_Readings power:([Buderus:Power]==0 and [Buderus:PumpModulation]<46), act:((([EZ:actuator]+[WZ:actuator]+[EZ1:actuator]+[WZ1:actuator]+[EZ2:actuator]+[WZ2:actuator])/6)>55)
Ginge das? Kann ich vor act in den DOIF_Reading ENTER drücken, also ein Zeilenumbruch machen oder muss das so in einer Zeile stehen?

Damian

Zitat von: Tabularasa am 26 Oktober 2018, 11:56:07
Ah ok, das erklärt es dann schon einigermaßendas ist eigentlich auch so gewollt, denn wenn einer noch über >55 liegt ist es nicht warm genug und soll weiter geheizt werden. Kann man nicht auf wahr triggern und so den Zweig auslösen? Wäre meine Lieblingslösung ;D
Eine andere Idee hätte ich noch aber da weiß ich nicht wie ich das hin bekomme und ob es auch so zulässig funktioniert... Also den Durchschnitt aus allen 6 actuator Stellungen bilden und dann > zB 55. Ist das möglich? Aslo zB
DOIF_Readings power:([Buderus:Power]==0 and [Buderus:PumpModulation]<46), act:((([EZ:actuator]+[WZ:actuator]+[EZ1:actuator]+[WZ1:actuator]+[EZ2:actuator]+[WZ2:actuator])/6)>55)
Ginge das?

Das ist trotzdem zu kurzsichtig und der Informationsgehalt geht gegen Null, denn wenn einer >55 meldet und paar Minuten später <55, dann könnte es der selbe sein oder auch ein anderer.

Das kann man elegant mit Aggregationsfunktionen lösen siehe: https://fhem.de/commandref_DE.html#DOIF_aggregation

Dort sind einige Beispiele, die du auf deine Bedürfnisse anpassen kannst.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tabularasa

Alles klar. Danke. Ich werde mich mal dran versuchen und melde mich mit einer Lösung oder Frage ;D