Problem mit einer DOIF Definition

Begonnen von maci, 12 Februar 2017, 16:12:21

Vorheriges Thema - Nächstes Thema

maci

Ich habe mit eine DOIF Definition gebastelt.
Doch irgendwie funktioniert diese nicht.

So sieht sie derzeit aus:
Zitatdefine Heizkoerperpumpe_Betrieb DOIF ([Temp_Ausgang_Puffer:temperature] < [Boiler_Temperatur:temperature] \
or [Boiler_Temperatur:temperature] > 50 or [Temp_Ausgang_Puffer:temperature] > 30) \
(set Heizkoerperpumpe on) \
DOELSEIF ([Boiler_Temperatur:temperature] < [Temp_Ausgang_Puffer:temperature] or [Temp_Ausgang_Heizung:temperature] < 30) \
  (set Heizkoerperpumpe off)

Die entsprechenden Definitionen habe ich zuvor natürlich alle angelegt.
Die Pumpe kann über das Dummy problemlos geschaltet werden.
Die derzeitigen Temperatur Werte sind:
Temp_Ausgang_Puffer: 38.0625
Boiler_Temperatur: 58.125

Also müsste die Pumpe ein sein. Ist sie aber nicht.

Hier meine Defintionen bevor ich das DOIF erstellt habe:
Pumpe ein wenn:
Boiler_Temperatur > 50 Grad
Temp_Ausgang_Puffer > 30 Grad
Boilerladepumpe aus

Mit der IF Abfrage: [Temp_Ausgang_Puffer:temperature] < [Boiler_Temperatur:temperature] will ich abfragen, dass die Boilerladepumpe aus ist. Habe es deshalb so gemacht, weil ich die Abfrage ob die Boilerladepumpe läuft nicht hinbekommen habe.

Später will ich das ganze mit der THRESHOLD Funktion noch erweitern, doch das ist mir derzeit noch etwas zu kryptisch.

Könnte mir jemand auf die Sprünge helfen wie ich das lösen könnte?

Danke im Voraus
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

KölnSolar

Verschieben kannst Du selber mit dem Button unten links.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

maci

OK Danke - nicht gesehen.
Ist inzwischen gemacht.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Damian

Zitat von: maci am 12 Februar 2017, 16:42:58
OK Danke - nicht gesehen.
Ist inzwischen gemacht.
Poste mal list von deinem DOIF-Modul.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

KernSani

Poste mal ein "list" des DOIF. 

Edit: Wenn der Chef persönlich sich kümmert bin ich mal still ;-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ellert

Versuch mal das Attribut do auf always zusetzen, das wird häufig vergessen.

Ansonsten wären mehr Infos hilfreich, also ein komplettes zum Problem gehörendes Eventlog usw.
Wie hier beschrieben: https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche



igami

ich hab noch nicht ganz verstanden wann du schalten willst. Vielleicht kannst du ja auch mal beschreiben was die Werte darstellen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

maci

Zitat von: Ellert am 12 Februar 2017, 16:54:44
Versuch mal das Attribut do auf always zusetzen, das wird häufig vergessen.

Ansonsten wären mehr Infos hilfreich, also ein komplettes zum Problem gehörendes Eventlog usw.
Wie hier beschrieben: https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche

Das mit dem Attribut do always war das Problem. :)

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Damian

Zitat von: maci am 12 Februar 2017, 17:11:40
Das mit dem Attribut do always war das Problem. :)

Vorsicht. Du benutzt zyklisch sendende Temperatursensoren. Mit dem Attribut do always wird bei jedem Senden einer Temperatur deine Heizkoerperpumpe geschaltet - das willst du bestimmt nicht.

Ich tippe eher auf ein Verständnisproblem bei der Formulierung logischer Abfragen. Bei der Negation einer Abfrage wird aus einem oder ein und. Dein off-Befehl soll vermutlich weitgehend das Gegenteil der Einschaltbedingung sein.

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

maci

#9
Danke für die Info.

Verständnisproblem: Ich glaube da hast du recht. Es sind ja meine ersten Schritte mit DOIF.
Ich frage mich derzeit, wie ich Temperaturen abgefragte Temperaturen da einbinden kann?
Oder muss sich das Attribut ändern?
Das mit dem Off Befehl ist richtig, da suche ich derzeit auch nach einer Lösung.
Wie gut dass derzeit alles im Test läuft. D.h. die Relais schalten zwar, aber keine Last.
Das wiederholte Klacken habe ich schon gehört.

Eine Verständnisfrage: Wie kann ich ein List posten? Vielleicht stehe ich auf der Leitung. :-[
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

KernSani

list Heizkoerperpumpe_Betriebins Kommandofeld eingeben
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

maci

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

maci

ich habe mich jetzt weiter beschäftigt mit der Geschichte.

Habe zuerst einen anderen Ausgang versucht zu definieren.
Hier meine Definition:
Zitatdefine Schalt_Boilerladepumpe THRESHOLD Boiler_Temperatur Boilerladepumpe
und dann das DOIF
Zitatdefine a_Schalt_Boilerladepumpe DOIF ([Temp_Ausgang_Puffer:temperature] > [Boiler_Temperatur:temperature]) \
(set Schalt_Boilerladepumpe desired 20) \
DOELSE (set Schalt_Boilerladepumpe desired 50)

dazu gebe ich auch dann gleich mein Listening
ZitatInternals:
   DEF        ([Temp_Ausgang_Puffer:temperature] > [Boiler_Temperatur:temperature])
(set Schalt_Boilerladepumpe desired 20)
DOELSE (set Schalt_Boilerladepumpe desired 50)
   NAME       a_Schalt_Boilerladepumpe
   NR         240
   NTFY_ORDER 50-a_Schalt_Boilerladepumpe
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2017-02-12 20:43:10   Device          Boiler_Temperatur
     2017-02-12 20:34:34   cmd             2
     2017-02-12 20:34:34   cmd_event       Temp_Ausgang_Puffer
     2017-02-12 20:34:34   cmd_nr          2
     2017-02-12 20:43:10   e_Boiler_Temperatur_temperature 56.8125
     2017-02-12 20:43:08   e_Temp_Ausgang_Puffer_temperature 42.0625
     2017-02-12 20:34:34   state           cmd_2
   Condition:
     0          ReadingValDoIf($hash,'Temp_Ausgang_Puffer','temperature') > ReadingValDoIf($hash,'Boiler_Temperatur','temperature')
   Devices:
     0           Temp_Ausgang_Puffer Boiler_Temperatur
     all         Temp_Ausgang_Puffer Boiler_Temperatur
   Do:
     0:
       0          set Schalt_Boilerladepumpe desired 20
     1:
       0          set Schalt_Boilerladepumpe desired 50
   Helper:
     event      temperature: 56.8125,alarm: 1
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Boiler_Temperatur
     timerevent temperature: 56.8125,alarm: 1
     triggerDev Boiler_Temperatur
     timerevents:
       temperature: 56.8125
       alarm: 1
     timereventsState:
       temperature: 56.8125
       alarm: 1
     triggerEvents:
       temperature: 56.8125
       alarm: 1
     triggerEventsState:
       temperature: 56.8125
       alarm: 1
   Internals:
   Itimer:
   Readings:
     0           Temp_Ausgang_Puffer:temperature Boiler_Temperatur:temperature
     all         Temp_Ausgang_Puffer:temperature Boiler_Temperatur:temperature
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   room       Heizung_Schalter

Wie es funktioniert weiß ich noch nicht, da ja die Werte nicht gegeben sind.
Ich belasse es mal so und denke, dass ich morgen schon etwas sehen werde.

Bei Fehlern macht mich bitte aufmerksam.
Danke!
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Damian

#13
Zitat von: maci am 12 Februar 2017, 20:48:05
ich habe mich jetzt weiter beschäftigt mit der Geschichte.

Habe zuerst einen anderen Ausgang versucht zu definieren.
Hier meine Definition:und dann das DOIF
dazu gebe ich auch dann gleich mein Listening
Wie es funktioniert weiß ich noch nicht, da ja die Werte nicht gegeben sind.
Ich belasse es mal so und denke, dass ich morgen schon etwas sehen werde.

Bei Fehlern macht mich bitte aufmerksam.
Danke!

Das ist doch schon mal was. Testest du evtl. mit dem Kommando trigger?


Edit: ich sehe gerade: es ist ja alles ok: boiler ist größer als Puffer daher cmd_2
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

maci

Ich teste mit gemessenen Sensorwerten.

Mein System läuft schon an Ort und Stelle, mit angeschlossenen Sensoren.
Nur die Relais schalten noch nicht wirklich.

Die Echtsteuerung macht noch das alte analoge System.

Aber trigger ist ein guter Tipp.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan