[gelöst] Notify mit UND Verknüpfung

Begonnen von theotherhalf, 28 Oktober 2021, 09:59:17

Vorheriges Thema - Nächstes Thema

Wernieman

Müste nicht im notify anstelle der ":" ein . stehen?

Bei DOIF bin ich aus raus ...

Sorry Damian, aber ich persönlich finde DOIF komplizierter als notify, aber darüber hatten wir uns schon mal ausgetauscht ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Zitat von: Wernieman am 28 Oktober 2021, 18:52:52
Müste nicht im notify anstelle der ":" ein . stehen?

Bei DOIF bin ich aus raus ...

Sorry Damian, aber ich persönlich finde DOIF komplizierter als notify, aber darüber hatten wir uns schon mal ausgetauscht ;o)

Nicht unbedingt.

Aber Punkt wäre "allgemeiner"...

Wenn man Ausschnite des EventMonitors hätte könnte man es genau sagen...

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)

Wernieman

Also fehlt uns doch ein List von mindestens 1 gerät + Aktuellem Notify List

Ich bin mir aber wirklich mit den ;; unsicher .. braucht man überhaupt an der Stelle ein ;??

Sorry bin aktuell zu müde zum Testen :o( Tag war anstrengend
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Die Strichpunkte (bei der notify-Variante) kann man wohl weglassen (hatte ich ja schon geschrieben ;)  )...
Ist ja nur 1 Befehl, da ist Perl wohl nicht so genau... ;)

Gruß, Joachim

P.S.: vielleicht funktioniert ja das DOIF von Damian... Dann hat sich das eh erledigt...
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)

theotherhalf

Vielen Dank für eure Hilfe soweit.
Anbei sende ich ein List der drei Signale

Internals:
   DEF        bai00.class
   FUUID      5f9e3462-f33f-0f31-5b0d-dc8032106d596115
   IODev      EBUS2_EcoTec196VC3_5
   NAME       Gasventil_Therme
   NR         203
   STATE      Gasventil_Therme off


   TYPE       ECMDDevice
   READINGS:
     2021-10-29 14:59:56   Gasventil_Therme off


     2021-10-29 13:18:54   IODev           EBUS2_EcoTec196VC3_5
     2021-10-29 14:59:56   state           Gasventil_Therme off


   fhem:
     classname  bai00.class
     cache:
       specials:
         %NAME      Gasventil_Therme
         %TYPE      ECMDDevice
Attributes:
   IODev      EBUS2_EcoTec196VC3_5
   group      EcoTec196VC3_5
   room       Vaillant


Internals:
   DEF        bai00.class
   FUUID      5f9e3462-f33f-0f31-2c01-327a4d75bfa18d3d
   IODev      EBUS2_EcoTec196VC3_5
   NAME       Stellung_Umschaltventil
   NR         198
   STATE      Stellung_Umschaltventil 100


   TYPE       ECMDDevice
   READINGS:
     2021-10-29 13:18:54   IODev           EBUS2_EcoTec196VC3_5
     2021-10-29 15:00:34   Stellung_Umschaltventil 100


     2021-10-29 15:00:34   state           Stellung_Umschaltventil 100


   fhem:
     classname  bai00.class
     cache:
       specials:
         %NAME      Stellung_Umschaltventil
         %TYPE      ECMDDevice
Attributes:
   IODev      EBUS2_EcoTec196VC3_5
   group      EcoTec196VC3_5
   room       Vaillant


Internals:
   DEF        bai00.class
   FUUID      5f9e3462-f33f-0f31-2535-24a4ef55d433cbdf
   IODev      EBUS2_EcoTec196VC3_5
   NAME       Umwaelzpumpe_Therme
   NR         194
   STATE      Umwaelzpumpe_Therme off


   TYPE       ECMDDevice
   READINGS:
     2021-10-29 13:18:54   IODev           EBUS2_EcoTec196VC3_5
     2021-10-29 15:01:34   Umwaelzpumpe_Therme off


     2021-10-29 15:01:34   state           Umwaelzpumpe_Therme off


   fhem:
     classname  bai00.class
     cache:
       specials:
         %NAME      Umwaelzpumpe_Therme
         %TYPE      ECMDDevice
Attributes:
   IODev      EBUS2_EcoTec196VC3_5
   group      EcoTec196VC3_5
   room       Vaillant


2021-10-29 15:02:13 ECMDDevice Wasserdruck_Therme Wasserdruck_Therme: 1.319 
2021-10-29 15:02:13 ECMDDevice Wasserdruck_Therme Wasserdruck_Therme 1.319 
2021-10-29 15:02:13 readingsProxy Vorlauftemperatur_Therme_von_Vaillant 35.31 
2021-10-29 15:02:13 ECMDDevice Vorlauftemperatur_Therme Vorlauftemperatur_Therme: 35.31 
2021-10-29 15:02:13 ECMDDevice Vorlauftemperatur_Therme Vorlauftemperatur_Therme 35.31 
2021-10-29 15:02:14 readingsProxy Ruecklauftemperatur_Therme_von_Vaillant 34.38 
2021-10-29 15:02:14 ECMDDevice Ruecklauftemperatur_Therme Ruecklauftemperatur_Therme: 34.38 
2021-10-29 15:02:14 ECMDDevice Ruecklauftemperatur_Therme Ruecklauftemperatur_Therme 34.38   
2021-10-29 15:02:14 ECMDDevice Umwaelzpumpe_Therme Umwaelzpumpe_Therme: off 
2021-10-29 15:02:14 ECMDDevice Umwaelzpumpe_Therme Umwaelzpumpe_Therme off 
2021-10-29 15:02:14 readingsProxy Brauchwasserspeichertemperatur_von_Vaillant 54.75 
2021-10-29 15:02:14 ECMDDevice Brauchwasserspeichertemperatur Brauchwasserspeichertemperatur: 54.75 
2021-10-29 15:02:14 ECMDDevice Brauchwasserspeichertemperatur Brauchwasserspeichertemperatur 54.75 
2021-10-29 15:02:14 readingsProxy Sollwert_Brauchwasserspeicher_von_Vaillant 58.00 
2021-10-29 15:02:14 ECMDDevice Sollwert_Brauchwasserspeicher Sollwert_Brauchwasserspeicher: 58.00 
2021-10-29 15:02:14 ECMDDevice Sollwert_Brauchwasserspeicher Sollwert_Brauchwasserspeicher 58.00 
2021-10-29 15:02:14 readingsProxy Vorlaufsollwert_789_von_Vaillant 0.00 
2021-10-29 15:02:14 ECMDDevice Vorlaufsollwert_789 Vorlaufsollwert_789: 0.00 
2021-10-29 15:02:14 ECMDDevice Vorlaufsollwert_789 Vorlaufsollwert_789 0.00 
2021-10-29 15:02:14 readingsProxy Stellung_Umschaltventil_von_Vaillant Warmwasser 
2021-10-29 15:02:14 ECMDDevice Stellung_Umschaltventil Stellung_Umschaltventil: 100 
2021-10-29 15:02:14 ECMDDevice Stellung_Umschaltventil Stellung_Umschaltventil 100     
2021-10-29 15:02:17 readingsProxy Gasventil_Therme_von_Vaillant Zu 
2021-10-29 15:02:17 ECMDDevice Gasventil_Therme Gasventil_Therme: off 
2021-10-29 15:02:17 ECMDDevice Gasventil_Therme Gasventil_Therme off


Für diese 3 Signale habe ich auch jeweils einen ReadingProxy konfiguriert. Den brauche ich um den Status im Floorplan darzustellen. Den Text formatiere ich dafür.

Ich habe leider gestern keine Möglichkeit gehabt etwas per DOIF ander notify zu testen, wollte euch hier die Lists senden um dann weiter zu machen.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

#20
Habe gerade mal in Joachims notify Vorschlag geschaut und die Abfrage angepasst. Dann sollte es so funktionieren:

define test_Warmwasserbetrieb notify Gasventil_Therme:.*|Stellung_Umschaltventil:.*|Umwaelzpumpe_Therme:.* { if( Value("Gasventil_Therme") eq "Gasventil_Therme on" && Value("Stellung_Umschaltventil") eq "Stellung_Umschaltventil 100"  && Value("Umwaelzpumpe_Therme") eq "Umwaelzpumpe_Therme on" )  {fhem ("set Vaillant_Therme_Warmwasserbetrieb Aktiv") ;; } else {fhem  ("set Vaillant_Therme_Warmwasserbetrieb Inaktiv");;  } }
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

MadMax-FHEM

Wenn man von Value und damit STATE weggeht, wird es "vernünftiger".

Warum in state auch noch der Readingname steht: ?
Gewünscht?
Macht das das Modul so?

Zeige doch mal einen deiner readingsProxy.
Ich bin mir sicher, dass das alles unnötig ist: stateFormat (oder userReadings) können das bestimmt auch...

Daher würde ich das so machen:


define test_Warmwasserbetrieb notify Gasventil_Therme:.*|Stellung_Umschaltventil:.*|Umwaelzpumpe_Therme:.* { if( ReadingsVal("Gasventil_Therme","Gasventil_Therme","off") eq "on" && ReadingsNum("Stellung_Umschaltventil", "Stellung_Umschaltventil", 0) == 100  && ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","off") eq "on" )  {fhem ("set Vaillant_Therme_Warmwasserbetrieb Aktiv") ;; } else {fhem  ("set Vaillant_Therme_Warmwasserbetrieb Inaktiv");;  } }


Fehlt nur noch ein Ausschnitt aus dem Eventmonitor um sicher zu gehen...
Aber wenn es vorher grtriggert hat, dann jetzt erst recht ;)

Und dann bleibt noch: wie oft ändern sich die Werte? -> event-on-change-reading zum "Eindämmen" und "Last aus dem System nehmen". Und v.a. wie oft schwankt der Stellung_Umschaltventil zwischen 100 und !100? -> Hysterese...

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)

theotherhalf

Du hast Recht, mit Value klappt es nicht...

Ja, der Readingname steht durch das Modul so da drin.

Der Reading Proxy vom Gasventil sieht z.B. so aus:
Internals:
   DEF        Gasventil_Therme:state
   DEVICE     Gasventil_Therme
   FUUID      5fc0db4b-f33f-0f31-a48c-49fb0daaf9de48aa
   NAME       Gasventil_Therme_von_Vaillant
   NOTIFYDEV  global,Gasventil_Therme
   NR         262
   NTFY_ORDER 50-Gasventil_Therme_von_Vaillant
   READING    state
   STATE      Zu


   TYPE       readingsProxy
   CONTENT:
     Gasventil_Therme 1
   READINGS:
     2021-10-29 15:52:58   state           Gasventil_Therme off


Attributes:
   eventMap   /Gasventil_Therme on:Auf/Gasventil_Therme off:Zu/
   fp_Haustechnik 429,140,1,Gasventil_Therme_von_Vaillant,


Du verweist hier als Ausdruck auf on bzw. 100, aber der Ausdruck enthält noch zusätzlich das Reading. Muss er nicht deshalb mit da rein?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

MadMax-FHEM

#23
Zitat von: theotherhalf am 29 Oktober 2021, 15:54:24
Du hast Recht, mit Value klappt es nicht...

Ja, der Readingname steht durch das Modul so da drin.


Mit der Value-Variante sollte schon (auch) gehen. Mit der Gefahr, dass eben bei Anwendung von stateFormat (zur Formatierung der "Ansicht") eben Value was liefert was man nicht "erwartet".
Drum ja der Umbau auf ReadingsVal/ReadingsNum

Geht denn meine Variane?

Zitat von: theotherhalf am 29 Oktober 2021, 15:54:24
Du verweist hier als Ausdruck auf on bzw. 100, aber der Ausdruck enthält noch zusätzlich das Reading. Muss er nicht deshalb mit da rein?

Nein!

Musst halt mal lesen wie ReadingsVal/ReadingsNum funktioniert ;)

ReadingsVal("Devicename", "Readingname", "Ersatzwert")

Wenn du dir dein Device anschaust, dann ist doch:

Devicename=Gasventil_Therme
Readingname=Gasventil_Therme (= Devicename, ist zwar eigenartig aber scheint ja so zu sein!?)
Wert=on/off

Warum in state auch noch der Readingname steht hatten wir ja.

Mit einem stateFormat auf z.B. den Readingnamen Gasventil_Therme würde in STATE nur on/off stehen und auch Value() nur on/off liefern...


attr Gasventil_Therme stateFormat Gasventil_Therme


Und was du in deinem readingsProxy machst kannst du auch ganz einfach per stateFormat oder devStateIcon (und wenn wirklich "wilde Sachen" benötigt werden noch userReadings) im SELBEN Device lösen:
https://wiki.fhem.de/wiki/DeviceOverview_anpassen
https://wiki.fhem.de/wiki/DeviceOverview_anpassen#stateFormat
Dort geht Perl, HTML, ...

https://wiki.fhem.de/wiki/DeviceOverview_anpassen#devStateIcon

Bzw. wie immer: commandref... ;)

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)

theotherhalf

Ich habe deine Variante eben getestet, aber leider bleibt der Dummy auf Inaktiv, auch wenn alle 3 Ausdrücke erfüllt sind.
Probiere es gleich noch mal aus und poste den Event Monitor.

define Vaillant_Therme_Brauchwasserbetrieb notify Gasventil_Therme:.*|Stellung_Umschaltventil:.*|Umwaelzpumpe_Therme:.* { if( ReadingsVal("Gasventil_Therme","Gasventil_Therme","off") eq "on" && ReadingsNum("Stellung_Umschaltventil", "Stellung_Umschaltventil", 0) == 100  && ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","off") eq "on" )  {fhem ("set Vaillant_Therme_Warmwasserbetrieb Aktiv") ;; } else {fhem  ("set Vaillant_Therme_Warmwasserbetrieb Inaktiv");;  } }

Das Schreiben auf den Dummy über den else Zweig klappt, ich hatte den mal anders beschrieben, aber er wird zyklisch auf Inaktiv zurück gesetzt.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

2021-10-29 16:38:31 ECMDDevice Umwaelzpumpe_Therme Umwaelzpumpe_Therme: on 
2021-10-29 16:38:31 ECMDDevice Umwaelzpumpe_Therme Umwaelzpumpe_Therme on
2021-10-29 16:38:32 ECMDDevice Stellung_Umschaltventil Stellung_Umschaltventil: 100 
2021-10-29 16:38:32 ECMDDevice Stellung_Umschaltventil Stellung_Umschaltventil 100
2021-10-29 16:38:32 ECMDDevice Gasventil_Therme Gasventil_Therme: on 
2021-10-29 16:38:32 ECMDDevice Gasventil_Therme Gasventil_Therme on 


Das Ventil steht meist auf Stellung "100", dann geht zuerst die Pumpe an und dann ca. 15s später das Gasventil auf. Den rest des Logs habe ich hier mal außen vor gelassen.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

MadMax-FHEM

Wie gibst du den Code denn ein?

Über DEF oder per RawDef?

Bzw. wie machst du es das notify zu posten?
Das ist ja kein list!

Also mal folgendes:

Klicke beim notify auf DEF, dann löschst du alles zwischen den äußeren geschweiften Klammern, dann "modify", das notify sieht dann so aus:


define test_Warmwasserbetrieb notify Gasventil_Therme:.*|Stellung_Umschaltventil:.*|Umwaelzpumpe_Therme:.* {}


Jetzt noch mal auf DEF und das hier anstatt der 2 geschweiften Klammern:


{my $GasventilTherme=ReadingsVal("Gasventil_Therme","Gasventil_Therme","n.a."); my $UmwaelzpunmpeTherme=ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","n.a.");my $StellungUmschaltventil=ReadingsNum("Stellung_Umschaltventil", "Stellung_Umschaltventil", 0); Log3(undef,1,"test_Warmwasserbetrieb StellungUmschaltventil: $StellungUmschaltventil    GasventilTherme: $GasventilTherme   UmwaelzpunmpeTherme: $UmwaelzpunmpeTherme"); if($GasventilTherme eq "on" &&  $StellungUmschaltventil == 100  && $UmwaelzpunmpeTherme eq "on")  {fhem ("set Vaillant_Therme_Warmwasserbetrieb Aktiv")} else {fhem("set Vaillant_Therme_Warmwasserbetrieb Inaktiv")}}


Jetzt wird geloggt was in den Readings steht wenn das notify auslöst...

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)

MadMax-FHEM

Wie häufig kommen denn die Werte?

Wie "stabil" sind diese?

Weil ab und an ja mit Doppelpunkt?

Wichtig ist halt (aber das sehen wir ja mit der "Log-Variante"), dass die Readingwerte auch tatsächlich die Bedingung erfüllen!
Nicht, dass immer wieder mal eines einen anderen Wert hat und dann ist nat. ELSE -> Inaktiv...

Aber das werden wir ja dann im Log sehen...

Und wie geschrieben: Events eindämmen!

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)

theotherhalf

Ich hatte das Notify bisher immer gelöscht und neu angelegt. Kleinere Änderungen habe ich per Def gemacht.
Du hast Recht, ich muss das ganze mal bereinigen und die Events eindämmen, das mache ich im Anschluss wenn es läuft.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

Zitat von: MadMax-FHEM am 29 Oktober 2021, 16:59:01
Wie häufig kommen denn die Werte?

Wie "stabil" sind diese?

Weil ab und an ja mit Doppelpunkt?



Das EBUS Modul liest die Werte alle 15s aus der Therme, das kann man natürlich noch verlängern.
Die Therme selbst springt sehr unregelmäßig an.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung