HM-CC-RT-DN mit LaCrosse als externer Sensor

Begonnen von gehrt, 03 Dezember 2017, 10:33:41

Vorheriges Thema - Nächstes Thema

gehrt

Liebe FHEMler,

ist hoffe ich bin in diesem Teil des Forums mit meiner Frage richtig aufgehoben. Ich habe insgesamt 5 HM-CC-RT-DN mit 5 LaCrosse TemperaturSensoren (TX-29DTH) verbunden.
Irgendwie ist da der Wurm drin und ich weiß nicht weiter, trotz aller Suche (die eh nicht ganz einfach ist). Ich versuche mal mein Problem zu beschreiben:

Ich habe alle Pairings sauber eingestellt und ich habe keinerlei Fehlermeldungen. Alles scheint sauber zu funktionieren, d.h. die Ausgaben von set hm peerXred und set hm configCheck sind sauber.

Problem: In drei Räumen funktioniert die Regelung sehr gut. Die eingestellte Temperatur wird exakt (mit mehr oder weniger großen Schwankungen abhängig von der Außentemperatur) eingehalten. In einem Raum jedoch ist die Temperatur ca. 5 Grad darunter. Ich habe schon dei HM-CC-RT-DN resetet und neu angelernt. Egal - nichts hilft. Hat jemand eine Idee?

Dummerweise gibt es keine Möglichkeit (ich kenne keine) in FHEM zu prüfen wo es denn haken könnte, d.h. ob der Transfer der LaCrosse-Temperatur tatsächlich im HM-CC-RT-DN ankommt. Der HM-CC-RT-DN zeigt überall nur seine gemessene Temperatur an. Oder hab ich da was falsch verstanden?

Grüße
Gehrt

Hier mal ein Beispiel aus der fhem.cfg
define Bad.VirtTemp CUL_HM BB1CCC
attr Bad.VirtTemp IODev HMLAN1
attr Bad.VirtTemp expert 2_raw
attr Bad.VirtTemp model virtual_1
attr Bad.VirtTemp msgRepeat 0
attr Bad.VirtTemp room Geräte
attr Bad.VirtTemp subType virtual
attr Bad.VirtTemp webCmd virtual
define Bad.VirtTemp_Sensor1 CUL_HM BB1CCC01
attr Bad.VirtTemp_Sensor1 model virtual_1
attr Bad.VirtTemp_Sensor1 peerIDs 34F8AC01,
attr Bad.VirtTemp_Sensor1 room Bad
attr Bad.VirtTemp_Sensor1 webCmd press short:press long
define at_Bad.VirtTemp at +*00:02 { my $T=(ReadingsVal("Bad.Temp","temperature",20.0));; fhem "set Bad.VirtTemp_Sensor1 virtTemp $T" }

Hollo

Zitat von: gehrt am 03 Dezember 2017, 10:33:41
...In einem Raum jedoch ist die Temperatur ca. 5 Grad darunter. Ich habe schon dei HM-CC-RT-DN resetet und neu angelernt. Egal - nichts hilft. Hat jemand eine Idee? ...
Was meinst Du damit?
Passen die Temperaturen nicht, oder ist es einfach kälter als es sein soll, weil die Heizung halt länger braucht und/oder nicht genug Wärme ankommt?
Wenn IST < SOLL und Ventil =100% , dann heizt er halt noch.

Zitat...Dummerweise gibt es keine Möglichkeit (ich kenne keine) in FHEM zu prüfen wo es denn haken könnte, d.h. ob der Transfer der LaCrosse-Temperatur tatsächlich im HM-CC-RT-DN ankommt...
Du kannst doch gucken, ob die Temperaturwerte von LaCrosse-Sensor, virtuellem Sensor und der measured-temp des Thermostaten übereinstimmen!?
IST-Temp muss ja überall identisch sein.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

gehrt

#2
Zitat von: Hollo am 03 Dezember 2017, 12:54:04
Was meinst Du damit?
Passen die Temperaturen nicht, oder ist es einfach kälter als es sein soll, weil die Heizung halt länger braucht und/oder nicht genug Wärme ankommt?
Wenn IST < SOLL und Ventil =100% , dann heizt er halt noch.

Es ist alles wie erwartet, nur pendelt die Temperatur um 16° anstatt um 21°. Der Heizkörper ist immer nur bis 30% offen in den Heizphasen. Stelle ich die Soll-Temperatur auf 24°, so öffnet er auf 100%, also auch da alles in Ordnung. Ich versteh's halt nicht.

Zitat von: Hollo am 03 Dezember 2017, 12:54:04
Du kannst doch gucken, ob die Temperaturwerte von LaCrosse-Sensor, virtuellem Sensor und der measured-temp des Thermostaten übereinstimmen!?
IST-Temp muss ja überall identisch sein.
Bei mir sind nur in einem Fall jeweils diese 3 Temperaturen identisch (mal 0.1 Unterschied).
In allen anderen stimmt es nicht.
Im Bad (da waren die 5° Differenz) regelt der DN scheinbar weder nach der LaCrosse- noch nach der internen Temperatur, d.h. die Temperatur die er hält, stimmt mit beiden nicht überein.
Im Esszimmer z.B. soll er Nachts 18.5° regelt, aber er regelt um 19°. Tagsüber soll er auf 21° regeln, aber er regelt auf 20°.

Macht alles irgendwie keinen Sinn.

Abgesehen davon ist das Regelverhalten eh nicht nachvollziehbar und auf einem sehr wenig intelligenten Nievau mit ständiger Übersteuerung und ständigem Öffnen und Schliessen - fast unabhängig von Raum- und Heizkörpergröße.

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

gehrt

Zitat von: frank am 03 Dezember 2017, 14:35:40
was sagt bei dir "hminfo configCheck"?
Unknown command hminfo, try help.

Du meinst "set hm configCheck"

Dann kommt "configCheck done:" und nix weiter außer dem Hinweis dass die ganzen tempList.cfg fehlen

frank

ZitatDann kommt "configCheck done:" und nix weiter außer dem Hinweis dass die ganzen tempList.cfg fehlen
schon mal top.

hast du vielleicht mal einen plot? am besten mit rt:measured-temp, desired-temp, actuator und lacrosse:temperature.
am rt hast du auch kein temp offset gesetzt?
fhem.log zeigt auch nichts auffälliges?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Hollo

Zitat von: gehrt am 03 Dezember 2017, 14:17:50
...Bei mir sind nur in einem Fall jeweils diese 3 Temperaturen identisch (mal 0.1 Unterschied).
In allen anderen stimmt es nicht...
Dann hast Du das nicht richtig konfiguriert!
Die IST-Temperatur ist ja unabhängig von der Regelung; es ist 1 Wert, den Du mittels externem Sensor misst, und als IST-Temp an den Thermostaten gibst.

Sensor -> per at in virtuellen Sensor -> der ist ein Kanal eines virtuellen Devices -> der ist mit dem Weather-Kanal des Thermostaten gepeert.

Die Regelung vergleicht SOLL und IST (vom Thermostat); wenn der interne Sensor verwendet wird, halt mit entsprechender Ungenauigkeit bzw. Offset.

Blinkt das Antennensymbol?
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

gehrt

#7
@all:
Vielen Dank für die Hilfe!  :D

@frank:

Ich habe mal Plots gemacht wie von Dir vorgeschlagen. Bin ich vorher nicht selber drauf gekommen und ist ganz hilfreich ;-)
Man sieht sehr schön wo es funktioniert und wo nicht. Lustigerweise funktioniert es doch öfter als angenommen, da heute Morgen als ich den ersten Post schrieb, gerade ein Problem bei zweien war (Kinderzimmer und Arbeitzimmer).
Im Wohn-, Kinder und Arbeitszimmmer klappts super.
Im Bad, Esszimmer und Küche gehts völlig in die Hose.

Alle HM-CC-RT-DN sind soweit ich sehe gleich konfiguriert und ich habe nie irgendwelche Offsets gesetzt.

Was bedeutet eigentlich der Actuator-Wert? Ich finde irgendwie nichts Richtiges dazu.

@Hollo:

Das Antennensymbol blinkt nirgendwo.
Die Config bzgl. des Peerings ist identisch für alls DN-LaCrosse-Kombis. Ich habe die Config vom ersten (Wohnzimmer) aus fhem.cfg durch Copy und Paste und Suchen/Ersetzen erzeugt und die CUL_HM-Id sowie die Pairing-Id entsprechend gesetzt (kein Fehler mit set hm peerXref).

Das irgendwo ein Fehler meinerseits liegt, vermute ich auch. Ich finde nur nix.

Ausgabe von set hm peerXref:


Arbeitszimmer.VirtTemp_Sensor1 => RT_Arbeitszimmer_Weather
    Bad.VirtTemp_Sensor1 => RT_Bad_Weather
    Esszimmer.VirtTemp_Sensor1 => RT_Esszimmer_Weather
    Kinderzimmer.VirtTemp_Sensor1 => RT_Kinderzimmer_Weather
    Kueche.VirtTemp_Sensor1 => RT_Kueche_Weather
    RT_Arbeitszimmer_Weather => Arbeitszimmer.VirtTemp_Sensor1
    RT_Bad_Weather => Bad.VirtTemp_Sensor1
    RT_Esszimmer_Weather => Esszimmer.VirtTemp_Sensor1
    RT_Kinderzimmer_Weather => Kinderzimmer.VirtTemp_Sensor1
    RT_Kueche_Weather => Kueche.VirtTemp_Sensor1
    RT_Wohnzimmer_Weather => Wohnzimmer.VirtTemp_Sensor1
    Wohnzimmer.VirtTemp_Sensor1 => RT_Wohnzimmer_Weather


Im Eventmonitor sieht man auch schön für alle Peerings das die Temperatur gesetzt wird im virtuellen Device. Ich habe auch für jedes Peering ein eigenes VCCU gebaut, da es mit mehreren Kanälen in einer VCCU überhaupt nicht funktionierte.

Hier noch alle Einträge aus fhem.cfg wie im 1. Post


define Arbeitszimmer.VirtTemp CUL_HM BB1CC9
attr Arbeitszimmer.VirtTemp IODev HMLAN1
attr Arbeitszimmer.VirtTemp expert 2_raw
attr Arbeitszimmer.VirtTemp model virtual_1
attr Arbeitszimmer.VirtTemp msgRepeat 0
attr Arbeitszimmer.VirtTemp room Geräte
attr Arbeitszimmer.VirtTemp subType virtual
attr Arbeitszimmer.VirtTemp webCmd virtual
define Arbeitszimmer.VirtTemp_Sensor1 CUL_HM BB1CC901
attr Arbeitszimmer.VirtTemp_Sensor1 model virtual_1
attr Arbeitszimmer.VirtTemp_Sensor1 peerIDs 23B99001,
attr Arbeitszimmer.VirtTemp_Sensor1 room Arbeitzimmer
attr Arbeitszimmer.VirtTemp_Sensor1 webCmd press short:press long
define at_Arbeitszimmer.VirtTemp at +*00:02 { my $T=(ReadingsVal("Arbeitszimmer.Temp","temperature",16.0));; fhem "set Arbeitszimmer.VirtTemp_Sensor1 virtTemp $T" }

define Wohnzimmer.VirtTemp CUL_HM BB1CCA
attr Wohnzimmer.VirtTemp IODev HMLAN1
attr Wohnzimmer.VirtTemp expert 2_raw
attr Wohnzimmer.VirtTemp model virtual_1
attr Wohnzimmer.VirtTemp msgRepeat 0
attr Wohnzimmer.VirtTemp room Geräte
attr Wohnzimmer.VirtTemp subType virtual
attr Wohnzimmer.VirtTemp webCmd virtual
define Wohnzimmer.VirtTemp_Sensor1 CUL_HM BB1CCA01
attr Wohnzimmer.VirtTemp_Sensor1 model virtual_1
attr Wohnzimmer.VirtTemp_Sensor1 peerIDs 22B5C501,
attr Wohnzimmer.VirtTemp_Sensor1 room Wohnzimmer
attr Wohnzimmer.VirtTemp_Sensor1 webCmd press short:press long
define at_Wohnzimmer.VirtTemp at +*00:02 { my $T=(ReadingsVal("Wohnzimmer.Temp","temperature",20.0));; fhem "set Wohnzimmer.VirtTemp_Sensor1 virtTemp $T" }

define Kueche.VirtTemp CUL_HM BB1CCB
attr Kueche.VirtTemp IODev HMLAN1
attr Kueche.VirtTemp expert 2_raw
attr Kueche.VirtTemp model virtual_1
attr Kueche.VirtTemp msgRepeat 0
attr Kueche.VirtTemp room Geräte
attr Kueche.VirtTemp subType virtual
attr Kueche.VirtTemp webCmd virtual
define Kueche.VirtTemp_Sensor1 CUL_HM BB1CCB01
attr Kueche.VirtTemp_Sensor1 model virtual_1
attr Kueche.VirtTemp_Sensor1 peerIDs 22B4EC01,
attr Kueche.VirtTemp_Sensor1 room Kueche
attr Kueche.VirtTemp_Sensor1 webCmd press short:press long
define at_Kueche.VirtTemp at +*00:02 { my $T=(ReadingsVal("Kueche.Temp","temperature",20.0));; fhem "set Kueche.VirtTemp_Sensor1 virtTemp $T" }

define Bad.VirtTemp CUL_HM BB1CCC
attr Bad.VirtTemp IODev HMLAN1
attr Bad.VirtTemp expert 2_raw
attr Bad.VirtTemp model virtual_1
attr Bad.VirtTemp msgRepeat 0
attr Bad.VirtTemp room Geräte
attr Bad.VirtTemp subType virtual
attr Bad.VirtTemp webCmd virtual
define Bad.VirtTemp_Sensor1 CUL_HM BB1CCC01
attr Bad.VirtTemp_Sensor1 model virtual_1
attr Bad.VirtTemp_Sensor1 peerIDs 34F8AC01,
attr Bad.VirtTemp_Sensor1 room Bad
attr Bad.VirtTemp_Sensor1 webCmd press short:press long
define at_Bad.VirtTemp at +*00:02 { my $T=(ReadingsVal("Bad.Temp","temperature",20.0));; fhem "set Bad.VirtTemp_Sensor1 virtTemp $T" }

define Esszimmer.VirtTemp CUL_HM BB1CCD
attr Esszimmer.VirtTemp IODev HMLAN1
attr Esszimmer.VirtTemp expert 2_raw
attr Esszimmer.VirtTemp model virtual_1
attr Esszimmer.VirtTemp msgRepeat 0
attr Esszimmer.VirtTemp room Geräte
attr Esszimmer.VirtTemp subType virtual
attr Esszimmer.VirtTemp webCmd virtual
define Esszimmer.VirtTemp_Sensor1 CUL_HM BB1CCD01
attr Esszimmer.VirtTemp_Sensor1 model virtual_1
attr Esszimmer.VirtTemp_Sensor1 peerIDs 22B5D401,
attr Esszimmer.VirtTemp_Sensor1 room Esszimmer
attr Esszimmer.VirtTemp_Sensor1 webCmd press short:press long
define at_Esszimmer.VirtTemp at +*00:02 { my $T=(ReadingsVal("EsszimmerUndOfen.Temp","temperature",20.0));; fhem "set Esszimmer.VirtTemp_Sensor1 virtTemp $T" }

define Kinderzimmer.VirtTemp CUL_HM BB1CC8
attr Kinderzimmer.VirtTemp IODev HMLAN1
attr Kinderzimmer.VirtTemp expert 2_raw
attr Kinderzimmer.VirtTemp model virtual_1
attr Kinderzimmer.VirtTemp msgRepeat 0
attr Kinderzimmer.VirtTemp room Geräte
attr Kinderzimmer.VirtTemp subType virtual
attr Kinderzimmer.VirtTemp webCmd virtual
define Kinderzimmer.VirtTemp_Sensor1 CUL_HM BB1CC801
attr Kinderzimmer.VirtTemp_Sensor1 model virtual_1
attr Kinderzimmer.VirtTemp_Sensor1 peerIDs 24959E01,
attr Kinderzimmer.VirtTemp_Sensor1 room Kinderzimmer
attr Kinderzimmer.VirtTemp_Sensor1 webCmd press short:press long
define at_Kinderzimmer.VirtTemp at +*00:02 { my $T=(ReadingsVal("Kinderzimmer.Temp","temperature",20.0));; fhem "set Kinderzimmer.VirtTemp_Sensor1 virtTemp $T" }

Hollo

Zitat von: gehrt am 03 Dezember 2017, 19:31:25
...Was bedeutet eigentlich der Actuator-Wert? Ich finde irgendwie nichts Richtiges dazu...
Das ist die Ventilöffnung in Prozent.

Config mit Copy & Paste ist bei Pairing/Peering ganz schlecht.
Die IST-Temperatur von Sensor und Weather-Kanal muss überein stimmen, wenn es funktioniert.

Um sicher zu gehen...
- mach bei Deinen Thermostaten mal ein "get config", ob die Zuordnungen wirklich stimmen
- Hast Du bei den Thermostaten die Adaptierfahrt ordentlich durchgeführt?
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

gehrt

#9
Zitat von: Hollo am 03 Dezember 2017, 20:48:33
Das ist die Ventilöffnung in Prozent.
Also der gleiche Wert für ValvePosition im Clima-Channel? Dann passt das bei einem Thermostat überhaupt nicht. Dort habe ich die Öffnung auf max. 30% begrenzt und die Kurven bei Actuator und ValvePos sind völlig unterschiedlich.

Zitat von: Hollo am 03 Dezember 2017, 20:48:33
Config mit Copy & Paste ist bei Pairing/Peering ganz schlecht.
Wieso? Wenn ich alles entsprechend änder, sollte es keine Probleme geben. Erklär mal genau.

Zitat von: Hollo am 03 Dezember 2017, 20:48:33
- Hast Du bei den Thermostaten die Adaptierfahrt ordentlich durchgeführt?

Die Adaptierfahrt wird doch automatisch gemacht, wenn ich das Thermostat bei FHEM anmelde. Ich habe das dann ordentlich laufen lassen und später nicht mehr wiederholt. Geht das überhaupt?

Zitat von: Hollo am 03 Dezember 2017, 20:48:33
mach bei Deinen Thermostaten mal ein "get config", ob die Zuordnungen wirklich stimmen
Hab ich gemacht. Ändert nix. Was hat das mit den Zuordnungen zu tun? Ich dachte "get config" liest nur interne Parameter des Thermostats (Zeitprogramme ...) wieder neu ein?

Edit: Ups, hab gerade nochmal set hm configCheck abgesetzt und siehe da:


peer not verified. Check that peer is set on both sides
    Bad.VirtTemp_Sensor1 p:RT_Bad_Weather
    Esszimmer.VirtTemp_Sensor1 p:RT_Esszimmer_Weather
    Kueche.VirtTemp_Sensor1 p:RT_Kueche_Weather


und nach rereadcfg kommt plötzlich:


PairedTo missing/unknown
    Arbeitszimmer.VirtTemp
    Bad.VirtTemp
    Esszimmer.VirtTemp
    Kinderzimmer.VirtTemp
    Kueche.VirtTemp
    Wohnzimmer.VirtTemp


Und dann nach einem shutdown restart ist wieder alles fehlerfrei ... komisch.

Hollo

Zitat von: gehrt am 03 Dezember 2017, 20:57:21
...
Wieso? Wenn ich alles entsprechend änder, sollte es keine Probleme geben. Erklär mal genau.
...
Hab ich gemacht. Ändert nix. Was hat das mit den Zuordnungen zu tun? Ich dachte "get config" liest nur interne Parameter des Thermostats...
...
Und dann nach einem shutdown restart ist wieder alles fehlerfrei ... komisch.
In Deiner config stehen nur define und attr , daher startet Dein System erstmal "fehlerfrei".

Hast Du die erforderlichen Peerings korrekt ausgeführt?
Das geht nur mit set-Befehlen in der Kommandozeile.
Sieht so aus, als wenn das nicht der Fall wäre und Zuordnungen fehlen oder fehlerhaft sind.

FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

gehrt

Zitat von: Hollo am 03 Dezember 2017, 21:49:38
Sieht so aus, als wenn das nicht der Fall wäre und Zuordnungen fehlen oder fehlerhaft sind.

Du hast Recht. Ich habs selbst schon gemerkt und bin gerade dabei das zu richten. Einmal hats schon geklappt.
Ich habe völlig vergessen, dass die reinen Definitionen in der .cfg nicht reichen, sondern dass die entsprechenden Befehle bei der Einrichtung entsprechende Parameter in den Thermostaten setzen, was natürlich fehlt, führt man die Befehle nicht aus!

Danke!