10_EnOcean V10816 - 11035 - Erweiterungen und Überarbeitungen

Begonnen von klaus.schauer, 13 Februar 2016, 18:04:39

Vorheriges Thema - Nächstes Thema

klaus.schauer

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

1. Das Profil hvac.01 (Kieback&Peter MD15-FTL-xx u. a.) ist vollständig überarbeitet. Ziel ist es, die Bedienung zu erleichtern, die Readings und Attribute zu vereinheitlichen sowie den Ventilaktor Micropelt iTRV besser zu integrieren.

Eine wesentliche Neuerung des Profils ist der integrierte PID-Regler. Für eine Temperaturregelung bei einem Ventilaktor ohne selfCtrl-Mode wie dem Micropelt iTRV musste bisher das Modul PID20 zusätzlich genutzt werden. Die PID-Funktion im Profil hvac.01 hat u. a. den Vorteil, dass der aktuell gesendete Temperatur-Istwert des Aktors jetzt unverzögert in die Berechnung des Stellwertes einfließt.

Der in Fhem integrierter PID-Regler kann über das Attribut pidCtrl aus- und eingeschaltet werden.

Folgende Readings entfallen bzw. werden ersetzt:
   - measured-temp >> roomTemp
   - actuatorStatus >> actuatorState
   - selfCtl >> selfCtrl
   - serviceOn >> maintenanceMode
   - tempSensor entfällt
   - state x >> state T: x SPT: x SP: x

Folgende set-Befehle entfallen bzw. werden ersetzt:
   - actuator entfällt
   - valveOpen >> valveOpens
   - valveClosed >> valveCloses
   - unattended entfällt

Das Attribut actualTemp entfällt. Die Ist-Temperatur eines Raumthermostaten kann wie bisher über das Attribut temperatureRefDev verknüpft werden.

Bereits vorhandene Fhem-Devices der Ventilaktoren sollten mit einem modify <name> A5-20-01 aktualisiert werden.

Ggf. müssen Konfigurationen insbesondere im Zusammenspiel mit anderen Devices wie einem Raumthermostat angepasst werden. Falls das Modul PID20 verwendet wurde, sollte es durch die im Profil vorhandene PID-Funktion ersetzt werden. Das Attribut event-on-change-reading .* sollte nicht genutzt werden, da der PID-Regler auf regelmäßige Events des Temperaturgebers prüft und beim Ausbleiben einen Alarm generiert!

2. Das neue EEP A5-20-04 (hvac.04) hat ähnliche Funktionen, wie das altbekannte EEP A5-20-01 (hvac.01). Zusätzlich kann die Solltemperatur sowohl in Fhem als auch am Aktor eingestellt werden. Der Aktor (Holter SmartDrive MX) hat ein grafisches Display zur Anzeige des Temperatursollwertes und der Gerätestati. Die internen Sensoren liefern die aktuellen Werte der Vorlauf- und Raumtemperatur. Die Raumtemperatur zeigt nur geringe Abhängigkeit von der Heizkörpertemperatur. M. E. ein gelungenes Gerät.

3. Zusätzliche EEP (Profile): A5-06-04 (lightSensor.04), A5-10-22, A5-10-23 (roomSensorControl.22), A5-11-05 (switch.05) , D2-01-0C, D2-01-0D, D2-01-0E, D2-01-0F, D2-01-12 (actuator.01), D2-50-xx (heatRecovery.00)

4.  PID-Regler in den Profilen hvac.01, hvac.04 mit zusätzlichen Funktionen (Attributen): pidActorCallBeforeSetting, pidIPortionCallBeforeSetting. Weitere Informationen siehe PID20-Modul.

ab V 10864:
5. Profil windowHandle: autocreate erkennt jetzt den subType windowHandle vollständig.

ab V 11035
6. bei den switch Kommandos C0 ... DI wird jetzt das Status-Flag T21 richtig gesetzt

7. sub EnOcean_define geändert

Einzelheiten sind in der commandref zu finden.

Danke für die bisherigen Rückmeldungen und Tests. Ich musste wieder an Änderungen an zentralen Routinen vornehmen. Deshalb bitte ich um gründliche Tests. Für mich ist dies wegen der fehlenden Testobjekte nur sehr begrenzt möglich. Ich hoffe deshalb auf zahlreiche Unterstützer.

Haus-Andi

Hallo Klaus

An was könnte es liegen, dass mein Micropelt nichts mehr macht? Bis ich das Update gemacht und die PID20 Sache gelöscht habe, ging es eigentlich ganz gut.

Soweit ich das beurteilen kann, funktioniert der PID und die Berechnungen der Sollstellung, nur werden die nicht mehr gesendet.
Welche Dateie und Protokolle, muss ich zusammenstellen und senden?

Gruss Andi
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

klaus.schauer

Ich würde die Ventilaktoren neu anlernen. Bitte Device in Fhem vorher löschen. Auch muss das Raumthermostat über das Attribut temperatureRefDev mit dem Fhem-Device verknüpft werden.

Haus-Andi

Also ich habe den Micropelt neu angelernt, fhem hat ihn auch auf Anhiebt erkannt.

Er hat ein "hvac.01" erstellt, ich habe auch den Thermokonfühler eingetragen, soweit ich das beurteilen kann funktioniert der PID auch irgendwie, denn er rechnet so ca alle 2min neu. Aber der Antrieb bewegt sich nicht mehr.

Es steht bei "alarm": "no_response_from_actuator" und beim "pidAlarm": "dead_sensor". Intressanterweise ist aber die Temperatur genau gleich wie die von Thermokon Raumfühler.

Was mache ich da falsch??????????? Ich verstehe das nicht.
Andi
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

klaus.schauer

Keine Ahnung was da falsch läuft. Für die Fehleranalyse wie immer ein list und die logs mit verbose 5.

Bitzer

Hallo Klaus,

nach dem Update von 5.6 auf 5.7 und einem restart habe ich eine Vielzahl der folgenden Fehlermeldung im Log:
Use of uninitialized value $autocreateName in hash element at ./FHEM/10_EnOcean.pm line 691, <$fh> line 157.
Use of uninitialized value $autocreateName in hash element at ./FHEM/10_EnOcean.pm line 691, <$fh> line 173.
Use of uninitialized value $autocreateName in hash element at ./FHEM/10_EnOcean.pm line 691, <$fh> line 189.
Use of uninitialized value $autocreateName in hash element at ./FHEM/10_EnOcean.pm line 691, <$fh> line 205.
...
Die 10_EnOcean.pm ist jetzt auf dem aktuellen Stand (10_EnOcean.pm        10864 2016-02-17 05:53:30Z klaus-schauer)
Hast Du eine Idee wo das Problem liegt?

Danke und viele Grüße,
Oli

klaus.schauer

Tritt der Fehler nach einem weiteren shutdown restart permanent auf?

Haus-Andi

Hallo Klaus

Bei mir geht es unterdessen wieder, wir frieren nicht mehr.
Ich musste wirklich alles löschen, auch die SVG, und danach den Micropelt neu anlernen. Nach dem 3. Versuch hat er es korrekt gemacht, jetzt kann ich auch wieder das Ventil ganz öffnen und schliessen und er macht es dann, wenn er das nächste mal abfragt.
-> soweit ich beurteilen kann alles gut.
Was ich noch nicht ganz verstehe ist die Sache mit dem Fensterkontakt. Da möchte ich eigentlich folgendes haben: Fenster offen -> Antrieb schliesst bei der nächsten Abfrage komplet und bleibt dort bis Fenster wieder geschlossen wird, dann fährt er dann wieder auf den PID-Wert. Wenn ich die Beschreibung richtig verstehe, bleibt er jetzt einfach dort wo er ist?

Jetzt muss ich nur den "Heating Controll" wieder einbauen und schauen das es weiterläuft. Gibt es da Informationen die man umbedingt beachten muss?

Danke
Andi

Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

klaus.schauer

Das Reading "window" wird vom Heizungsaktor gesetzt. Der MD15 schließt das Ventil eigenständig, falls er einen plötzlichen Temperaturabfall durch ein geöffnetes Fenster erkennt. Micropelt unterstützt diese Funktion nicht.

Falls umgekehrt ein Fensterkontakt als Referenz für die Ventilstellung herangezogen werden soll, würde ich dies mit dem Modul DOIF lösen.

Mit dem Modul Heating_Control habe ich keine Erfahrung. Wenn ich die Beschreibung in der commandref richtig interpretiere, wird von diesem set <Name> desired-temp <temp> gesendet. Das sollte also problemlos funktionieren.


Bitzer

Ja, din Fehlermeldung kommt immer nach einem Showdown Restart und zwar zwischen

EnOcean Cryptographic functions are not available.
...
Including ./log/fhem.save

Viele Grüße
Oliver

klaus.schauer

#10
Zitat von: Bitzer am 08 März 2016, 22:08:39
Ja, din Fehlermeldung kommt immer nach einem Showdown Restart und zwar zwischen

EnOcean Cryptographic functions are not available.
...
Including ./log/fhem.save
Bitte mal das vollständige fhem.cfg File zur Verfügung stellen.

Bitte weiterhin mit 10_EnOcean Entwicklerversion testen, siehe Anlage.

Bitzer

Moin Klaus,

mit der Entwicklerversion sind die Fehlermeldungen weg  :) Brauchst Du trotzdem noch die fhem.cfg?
Danke für die schnelle Reaktion!

VG Oliver

klaus.schauer

Zitat von: Bitzer am 09 März 2016, 08:29:16
mit der Entwicklerversion sind die Fehlermeldungen weg  :) Brauchst Du trotzdem noch die fhem.cfg?
nein

Haus-Andi

#13
Hallo Klaus

Ich habe eine kleine Frage, weil ich da jetzt wirklich etwas nicht begreife.
Folgendes habe ich gemacht:

Mein Microplet wird von dem neuen "hvac.01" angesteuert, was soweit eigentlich ganz gut funktioniert, zusätzlich habe ich mit dem "Heating_Control" Betriebszustände für "Tag und "Nacht" definiert. Dieser Heating_Control setzt beim PID den Wert "setpointTemp" auf 22 resp. 17.
Das funktioniert alles wunderbar.
Jetzt habe ich mit einem Enocean Fensterkontakt meine Türe in fhem eingelernt. Mit einem "notify" will ich jetzt bei offner Türe den "setpointTemp" auf 12 heruntersetzten, damit ich nicht unnötig zur Klimaerwärmung beitragen muss.
Das funktioniert jetzt auch, dass Problem ist nun aber das der "Heating_Controll" keine Funktion mehr hat.

Ist es wirklich so, dass ich den "setpointTemp" nur in von einem Software-Baustein aus verändern kann??? Sprich ich kann nur entweder vom Heating_Control oder vom notify den Wert verändern?

Ich verstehe das im Moment nicht.
Andi

Hier noch den Ausschnitt aus der cfg
....
define EnO_FFC38800 EnOcean FFC38800
attr EnO_FFC38800 IODev TCM_ESP3_0
attr EnO_FFC38800 comMode biDir
attr EnO_FFC38800 destinationID unicast
attr EnO_FFC38800 disable 0
attr EnO_FFC38800 eep A5-20-01
attr EnO_FFC38800 manufID 049
attr EnO_FFC38800 pidActorErrorAction errorPos
attr EnO_FFC38800 pidActorErrorPos 20
attr EnO_FFC38800 pidActorLimitLower 18
attr EnO_FFC38800 pidCtrl on
attr EnO_FFC38800 pidFactor_D 0.5
attr EnO_FFC38800 pidFactor_I 0.5
attr EnO_FFC38800 pidFactor_P 0.5
attr EnO_FFC38800 room EnOcean,Wohnen
attr EnO_FFC38800 subDef FFB95686
attr EnO_FFC38800 subType hvac.01
attr EnO_FFC38800 temperatureRefDev EnO_019214AE
attr EnO_FFC38800 wakeUpCycle 480
attr EnO_FFC38800 webCmd setpointTemp
define FileLog_EnO_FFC38800 FileLog ./log/EnO_FFC38800-%Y.log EnO_FFC38800
attr FileLog_EnO_FFC38800 logtype EnO_A5-20-01:Temp/SetpointTemp/Setpoint,EnO_A5-20-01_2:PID,text
attr FileLog_EnO_FFC38800 room EnOcean
define SVG_EnO_FFC38800 SVG FileLog_EnO_FFC38800:SVG_EnO_FFC38800:CURRENT
attr SVG_EnO_FFC38800 room Plots
attr SVG_EnO_FFC38800 title "EnO_FFC38800 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
define SVG_EnO_FFC38800_2 SVG FileLog_EnO_FFC38800:SVG_EnO_FFC38800_2:CURRENT
attr SVG_EnO_FFC38800_2 room Plots
attr SVG_EnO_FFC38800_2 title "EnO_FFC38800 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
define heizung Heating_Control EnO_FFC38800 de 0123456|05:30|22 0123456|21:45|19 0123456|22:30|19
attr heizung disable 0
attr heizung room Wohnen
define TaTuere_offen notify Balkontuere:open.* set EnO_FFC38800 setpointTemp 12
attr TaTuere_offen disable 0
attr TaTuere_offen room Wohnen
define TaTuere_zu notify Balkontuere:closed.* set EnO_FFC38800 setpointTemp 22
attr TaTuere_zu disable 0
attr TaTuere_zu room Wohnen
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

klaus.schauer

Zitat von: Haus-Andi am 14 März 2016, 20:36:15
Ist es wirklich so, dass ich den "setpointTemp" nur in von einem Software-Baustein aus verändern kann??? Sprich ich kann nur entweder vom Heating_Control oder vom notify den Wert verändern?
Nein, natürlich geht z. B. der manuelle Befehl set EnO_FFC38800 setpointTemp 12. Was passiert denn oder auch nicht, wenn man den Befehl eingibt? Oder habe ich da was falsch verstanden?