10_EnOcean V18355 - V18405 Erweiterungen und Überarbeitungen

Begonnen von klaus.schauer, 20 Januar 2019, 17:43:55

Vorheriges Thema - Nächstes Thema

klaus.schauer

In dieser Version sind folgende Ergänzungen, Änderungen und Fehlerbereinigungen enthalten:

1. EEP A5-20-06: Neues Profil hvac.06 für den neuen Heizkörperaktor Micropelt iTRV-005, OPUS Micropelt HOME

2. EEP A5-20-01, A5-20-06: Der von den Heizkörperaktoren detektiere Temperaturabfall bei geöffneten Fenster - reading windowOpen - wird jetzt nicht nur angezeigt, sondern kann sofort das Schließen des Heizkörperventils auslösen. Hierzu ist das Attribut "windowOpenCtrl" auf "enable" zu setzen. Bisher war dies nur über die Funktion "rcvRespAction" des EnOcean-Moduls oder notify bzw. doif abzubilden. Notify und doif haben den Nachteil, dass das Heizkörperventil nur um das Kommunikationsintervall des Aktors verzögert geschlossen werden kann.

ab V18405:
EEP A5-20-06: Anpassungen und Ergänzungen in der Verfahrenslogik

Einzelheiten sind in der commandref zu finden.  Ich musste wieder an Änderungen an zentralen Routinen vornehmen. Deshalb bitte ich um gründliche Tests.

cwagner

Vielen Dank für die wertvolle Arbeit zur Unterstützung des EnOcean-Protokolls in FHEM. Mit zahlreichen unterschiedlichen Modulen habe ich beste Erfahrungen gemacht. Nun bin ich mit einem Modell mal ganz vorne, kaum unterstützt Dein Modul das neue EEP, kann ich es ausprobieren:

Wie empfohlen habe ich einen Micropelt MVA-005 nach dem Update auf diese Version from Scratch neu angelernt und kann für den Betrieb mit FHEM-PID-Controler erwartungsgemäße Funktion bestätigen.

Stelle ich allerdings auf den geräteeigenen Controler um (pidCtrl=off) beobachte ich zwei Dinge:
1. Das reading des temperatureRevDevice wird _nicht_ gelesen. Ich habe mir mit einem DOIF beholfen, dass alle 10 Minuten mit setReading die aktualisierte Temperatur des Raumfühlers schreibt.
2. sowohl mit set setpointTemp wie auch mit set desired-temp gesetzte Sollwerte werden zunächst als setpointTempSet gesetzt (1. Listing) aber mit dem nächsten Funkwechsel wieder überschrieben mit dem Wert in setpointTemp (2. Listing).

Dadurch läuft der Aktor immer im Geöffnet-Zustand.
Listing1 (15° als Vorgabe gesetzt):
Internals:
   DEF        0580FF65
   FUUID      5c4630f2-f33f-e1df-9d5a-6f50aa16493e8ad9
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     7
   NAME       RR_Kueche
   NR         260
   NTFY_ORDER 50-RR_Kueche
   STATE      T: 19.8 SPT: 21.0 SP: 100
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 7
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -82
   TCM_ESP3_0_ReceivingQuality good
   TCM_ESP3_0_RepeatingCounter 0
   TCM_ESP3_0_SubTelNum 3
   TCM_ESP3_0_TIME 2019-01-21 23:06:26
   TYPE       EnOcean
   OLDREADINGS:
   READINGS:
     2019-01-21 23:06:26   actuatorState   ok
     2019-01-21 22:22:26   battery         ok
     2019-01-21 23:06:26   energyInput     enabled
     2019-01-21 23:06:26   energyStorage   charged
     2019-01-21 23:06:26   maintenanceMode off
     2019-01-21 23:06:26   operationMode   setpointTemp
     2019-01-21 23:13:47   pidState        stopped
     2019-01-21 23:06:26   radioComErr     off
     2019-01-21 23:06:26   radioSignalStrength strong
     2019-01-21 23:06:26   roomTemp        20.0
     2019-01-21 23:06:26   setpoint        100
     2019-01-21 23:06:26   setpointTemp    21.0
     2019-01-21 23:13:47   setpointTempSet 15.0
     2019-01-21 23:06:26   state           T: 19.8 SPT: 21.0 SP: 100
     2019-01-21 21:52:02   teach           4BS teach-in accepted EEP A5-20-06 Manufacturer: Jaeger Direkt
     2019-01-21 23:11:55   temperature     19.8
     2019-01-21 23:13:47   waitingCmds     setpointTemp
     2019-01-21 23:06:26   wakeUpCycle     600
     2019-01-21 23:06:26   window          closed
   helper:
     battery    ok
     stopped    1
     calcPID:
       undef
       HASH(0x5701388)
       stop
     timer:
       alarm:
         HASH(0x5701388)
         alarm
         no_response_from_actuator
         1
         3
Attributes:
   IODev      TCM_ESP3_0
   comMode    biDir
   destinationID unicast
   eep        A5-20-06
   manufID    040
   pidCtrl    off
   room       EnOcean
   signOfLife on
   subDef     FF973805
   subType    hvac.06
   teachMethod 4BS
   temperatureRefDev TF.Kueche
   verbose    0
   webCmd     desired-temp
   widgetOverride desired-temp:colorpicker,BRI,15,1,25
   windowOpenCtrl enable   


Listing 2 (nächster Funkwechsel OHNE manuelle Eingabe):
Internals:
   DEF        0580FF65
   FUUID      5c4630f2-f33f-e1df-9d5a-6f50aa16493e8ad9
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     8
   NAME       RR_Kueche
   NR         260
   NTFY_ORDER 50-RR_Kueche
   STATE      T: 19.8 SPT: 21.0 SP: 100
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 8
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -80
   TCM_ESP3_0_ReceivingQuality good
   TCM_ESP3_0_RepeatingCounter 0
   TCM_ESP3_0_SubTelNum 3
   TCM_ESP3_0_TIME 2019-01-21 23:16:26
   TYPE       EnOcean
   OLDREADINGS:
   READINGS:
     2019-01-21 23:16:26   actuatorState   ok
     2019-01-21 22:22:26   battery         ok
     2019-01-21 23:16:26   energyInput     enabled
     2019-01-21 23:16:26   energyStorage   charged
     2019-01-21 23:16:26   maintenanceMode off
     2019-01-21 23:16:26   operationMode   setpointTemp
     2019-01-21 23:16:26   pidState        stopped
     2019-01-21 23:16:26   radioComErr     off
     2019-01-21 23:16:26   radioSignalStrength weak
     2019-01-21 23:16:26   roomTemp        20.0
     2019-01-21 23:16:26   setpoint        100
     2019-01-21 23:16:26   setpointTemp    21.0
     2019-01-21 23:16:26   setpointTempSet 21
     2019-01-21 23:16:26   state           T: 19.8 SPT: 21.0 SP: 100
     2019-01-21 21:52:02   teach           4BS teach-in accepted EEP A5-20-06 Manufacturer: Jaeger Direkt
     2019-01-21 23:11:55   temperature     19.8
     2019-01-21 23:16:26   wakeUpCycle     600
     2019-01-21 23:16:26   window          closed
   helper:
     battery    ok
     stopped    1
     calcPID:
       undef
       HASH(0x5701388)
       stop
     timer:
       alarm:
         HASH(0x5701388)
         alarm
         no_response_from_actuator
         1
         3
Attributes:
   IODev      TCM_ESP3_0
   comMode    biDir
   destinationID unicast
   eep        A5-20-06
   manufID    040
   pidCtrl    off
   room       EnOcean
   signOfLife on
   subDef     FF973805
   subType    hvac.06
   teachMethod 4BS
   temperatureRefDev TF.Kueche
   verbose    0
   webCmd     desired-temp
   widgetOverride desired-temp:colorpicker,BRI,15,1,25
   windowOpenCtrl enable


Was habe ich falsch gemacht, was läuft schief?

---------------------------------------------------
Window-Open habe ich simuliert mit einer gezielten Abkühlung des Device. Es hat innerhalb einer Minute reagiert, aber etwas unerwartet:
(Ausschnitt aus dem Listing)
     2019-01-21 23:28:24   roomTemp        23.0
     2019-01-21 23:28:24   setpoint        100
     2019-01-21 23:28:24   setpointSet     0
     2019-01-21 23:25:14   setpointTemp    26.0
     2019-01-21 23:28:24   setpointTempSet 26
     2019-01-21 23:28:24   state           T: 20.0 SPT: 26.0 SP: 100
     2019-01-21 21:52:02   teach           4BS teach-in accepted EEP A5-20-06 Manufacturer: Jaeger Direkt
     2019-01-21 23:21:55   temperature     20.0
     2019-01-21 23:28:24   waitingCmds     setpointTemp
     2019-01-21 23:28:24   wakeUpCycle     600
     2019-01-21 23:28:24   window          open

SetpointSet 0 wird dann auch mit dem nächsten Funkkontakt korrekt in setpoint 0 umgesetzt.
Wieso wird nun eine Temperatur von 26 Grad als Sollwert angetragen, ich hätte eher das Gegenteil erwartet? Was sagt mir diese Angabe. Vom Wert könnte es eher feedTemp sein (der Vorlauf hatte etwa diesen Wert)

Fenster geschlossen wird auch erkannt.

-------------------

Das im gplot aufgezeigte Reading feedTemp taucht bei mir nicht auf (weder im pidCtr on|off)

-------------------
Ist geplant, die Handverstellung -imho local offset - zu unterstützen?

Christian



Herzliche Grüße

Christian Wagner
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

klaus.schauer

#2
Die Inkonsistenzen in der Verfahrenslogik bei den unterschiedlichen Konstellationen sollten jetzt beseitigt sein.

Vom Aktor wird entweder die roomTemp oder feedTemp übermittelt. Sofern roomTemp bei einem vorhandenen externen Sensor für die Steuerung nicht benötigt wird, kann feedTemp über das Attribut "measurementTypeSelect" ausgewählt werden.

Die Solltemperatur kann auch lokal am Aktor verändert werden, sofern dies nicht mit dem Attribut "blockKey" unterbunden wurde. Sollwertvorgaben in Fhem haben aber Priorität.

cwagner

Funktioniert in allen Punkten - ganz herzlichen Dank für die Anpassungen.

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB