FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: John am 08 Februar 2013, 00:03:32

Titel: Fehler bei Berechnung von measuredTemperature ?
Beitrag von: John am 08 Februar 2013, 00:03:32
Ich verwende Max-Thermostate ohne Wandthermostat.

Bei dem Versuch die Temperatur des Thermostats via measurementOffset
 an einen Referenzfühler (HMS100TF) anzugleichen, bin ich zunächst gescheitert,
 da es einfach nicht gelingen wollte.

Ich meine der Fehler liegt in folgender Zeile im Modul 10_MAX.pm.


sub
MAX_Parse($$)
{
..
$measuredTemperature -= $measOffset if($measuredTemperature ne "" and $measOffset ne "");
..
}


Nachdem ich diese auskommentierte passt alles bestens, ich konnte die Temperatur angleichen.

Ich habe Folgendes festgestellt:

- der Thermostat übernimmt measuredTemperature und addiert diesen zum physikalisch gemessenen Wert.
- es kommt als der korrekte bereits vom Thermostat korrigierte Wert beim CUL/COC an.
- die erneute Korrektur des Wertes innerhalb von FHEM ist unnötig

Folgender Log-Auszug

# offset 0
2013.02.07 23:02:32 3: measuredTemperature: 17.4 (john A)

# offset auf 1 gestellt  
2013.02.07 23:04:32 3: measuredTemperature: 18.4 (john A)  # vom Sensor korrigierter Wert passt
2013.02.07 23:04:32 3: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 15 %, desiredTemperature 18, until , curTemp 18.4
2013.02.07 23:04:32 3: measuredTemperature: 17.4 offset: 1.0    # durch den Fehler wird die Korrektur des Sensor rückgängig gemacht

# offset auf -1 gestellt, da ändert sich nix
2013.02.07 23:10:32 3: measuredTemperature: 16.4     # vom Sensor korrigierter Wert passt
2013.02.07 23:10:32 3: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 75 %, desiredTemperature 19.5, until , curTemp 16.4
2013.02.07 23:10:32 3: measuredTemperature: 17.4 offset: -1.0 (john B)   # durch den Fehler wird die Korrektur des Sensor rückgängig gemacht


Titel: Aw: Fehler bei Berechnung von measuredTemperature ?
Beitrag von: Matthias Gehre am 08 Februar 2013, 03:32:05
Danke für die Untersuchung, vorbildlich!
Ich habs eben so committed.
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 21 Oktober 2013, 22:55:38
Guten Abend,
ich versuche schon seit längere Zeit eine Lösung für das Problem in meiner FHEM Installation zu finden. Das Problem ist folgendes,
meine gemessenen Temperaturen die angeziegt werden, sind die aktuelle Temp. + Offset. Wie kann ich das so lösen, dass im FHEM die korrekten Werte angezeigt werden? Ich verwende die Max Thermostate über den Cube an der FB. Danke!
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: Matthias Gehre am 24 Oktober 2013, 10:39:04
@maplemaple: benutzt du HeatingThermostat oder HeatingThermostatPlus Geräte?

Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 24 Oktober 2013, 11:20:12
Hallo Matthias,
ich nutze die HeatingThermostat als Geräte.
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: Matthias Gehre am 24 Oktober 2013, 13:35:53
Deine Beobachtung scheint der Beobachtung vom Threadersteller zu widersprechen. Kannst du das daher etwas detaillierter ausführen:
1. Hast du ein anderes Gerät als Referenz für die Temperatur? Was zeigt das an?
2. Was zeigt FHEM zur gleichen Zeit im "temperature" READING?
3. Was ist das eingestellte Offset?
4. Wie verändert sich das "temperature" READING, wenn du das Offset änderst?

Am besten sehr ausführlich oder mit Tabelle o.ä..
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 24 Oktober 2013, 18:51:15
Hallo Matthias,

ich habe jetzt mal einen Versuch gestartet und folgende Werte aufgenommen.
Referenztemperatur ist ein direkt neben dem Heizkörper stehendes normales Raumthermometer und der Wert beträgt 22,7°C.

Ich hoffe du kannst den Fehler nachvollziehen. Danke!
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: John am 24 Oktober 2013, 20:59:39
Hallo maplemaple,

das sieht alles richtig aus.


Das Thermostat liefert ohne Offset 21,5.
Nimmst du den Offset auf 1 Grad geht die Temperatur auf 22.5
Bei Offset 2 Grad bekommen wir ca 23.5.

Allgemein : gesendete Temperatur v. Thermostat = (gemessene Temperatur am Thermostat + Offset)

Genau das würde ich erwarten.

Haben wir dein Problem noch nicht verstanden ?

John
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 24 Oktober 2013, 21:43:03
Guten Abend John,

vielleicht habe ich mich nicht ganz korrekt ausgedrückt. Bei einem Offset von 1, entspricht die gemessene Temp. genau der gesendeten direkt am Thermostat. Nun Sitze ich nicht direkt am Heizkörper, und ermittele die Differenz zu diesem Ort. Dass soll mein Offset sein, in meinem Fall 2°C.
Soweit bin ich doch sicherlich richtig?! Nun stelle ich als desiredtemperature z.B. 22°C ein. Dann liefert mir doch mein Thermostat die gemessene + Offset als temperature. Das ist doch dann aber nicht die Gleiche wie die desiredtemperature?! Oder verstehe ich da was falsch?

MapleMaple
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: John am 24 Oktober 2013, 22:00:51
Zitatei einem Offset von 1, entspricht die gemessene Temp. genau der gesendeten direkt am Thermostat.
Misst du den noch mit einem anderen Fühler ?

Zunächst ein paar Grundlagen:
desiredTemperature

temperature

Meine Vorgehensweise, wenn ich measurementOffset ermitteln will.

John

Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 24 Oktober 2013, 22:26:44
Danke für die Erläuterungen. Also stimmen dann desiredTemperature und temperature niemals überein?
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: Matthias Gehre am 24 Oktober 2013, 22:35:53
Theoretisch sollte der Thermostat durch das Heizen die Raumtemperatur so regeln, dass temperature == desiredTemperature wird.
Tatsächlich wird es aber imme eine Regelabweichung geben, insbesondere da die Heizung nur heizen und nicht kühlen kann. Wie ist denn das Verhalten auf lange Zeit? Bleibt eine Konstante Differenz zwischen temperature und desiredTemperature? Oder schwankt das?
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 24 Oktober 2013, 22:38:01
Diese Differenz ist in der Heizphase meist genau das Offset.
Wenn ich als desiredTemperature den Wert der gemessenen temperature einstelle, sollte ja das Ventil zu bleiben. Aber das tut es nicht, es geht auf heizt bis es genau das Offset drüber liegt.
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 28 Oktober 2013, 21:37:05
Guten Abend,

ich habe jetzt nochmal einige Versuche gestartet und einen Vergleich mit Maxbuddy angestellt. Dort werden die Temperaturen korrekt angezeigt. Welche Möglichkeit habe ich denn von der angezeigten temp das offset abzuziehen?(nur für die Darstellung der Kurven) Kenne mich leider in Perl noch nicht so gut aus. Vielleicht kann mir ja jemand einen Tipp geben. Vielen Dank!

Mathias
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: Matthias Gehre am 28 Oktober 2013, 22:31:53
Bei mir ist das Reading "temperature" die tatsächliche Temperatur. Ich habe das measurementOffset auf 0.5 gestellt, da vorher "temperature" 0.5 Grad zu wenig anzeigte. Wenn ich desiredTemperature auf z.B. 21 Grad stelle, dann wird es im Raum auf 21 Grad geheizt
und "temperature" zeigt auch 21 Grad an. (Natürlich kann es zu Überschwingern kommen, je nach Raum, Heizkörper, Vorlauftemperatur usw. Auf lange Sicht ist bei mir aber "temperature" == "desiredTemperature")

Ich sehe da also bisher keinen Fehler. Kannst du mal einen Plot anhängen, wo man die dauerhafter Regelabweichung sieht?
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: maplemaple am 28 Oktober 2013, 22:43:28
Hallo,

anbei mal ein Plot, in dem es gut zu erkennen ist. Aber ich denke ich habe eine Lösung für mein Problem.
in 10_MAX.pm in der Zeile 623,

$measuredTemperature -= $measOffset if($measuredTemperature ne "" and $measOffset ne "" and $shash->{type} =~ /HeatingThermostatPlus/ and $hash->{TYPE} eq "MAXLAN");

müsste das "and" nach /HeatingThermostatPlus/ ein "or" sein. Habe das bei mir jetzt mal geändert und es sieht sehr gut aus. Ich denke das ist genau das, was ich suche.

Was sagt der Fachmann dazu?? Liege ich an der Stelle richtig?
Titel: Antw:Fehler bei Berechnung von measuredTemperature ?
Beitrag von: Matthias Gehre am 28 Oktober 2013, 23:04:53
In deinem Plot treffen sich doch desiredTemperature und temperature am Ende, oder? So wie es sein soll?
Ansonsten ist das etwas zu kurz, um das Regelverhalten beurteilen zu können.
Dafür müsstest du eine desiredTemperature für ca. 8 Stunden fest einstellen und dann schauen, wie sich "temperature" dazu bewegt.
Ich vermute, dass "temperature" nach einer gewissen Zeit gleich "desiredTemperature" wird. Kleine Regelabweichungen von +/- ein paar Grad zu Beginn sind bei einer Heizung zu erwarten.
Die Frage ist ja, ob sich auf lange Zeit eine Differenz einstellt, weil das Thermostat möglicherweise falsch mit dem measurementOffset umgeht.

Deine Änderung der Code-Zeile kann ich so nicht einbauen. Der Ausdruck wurde genau so gebaut, nachdem verschiedene andere Leute den getestet und für richtig befunden haben. Sonst würden wir es für diese Leute kaputt machen. Wir müssen daher schauen, unter welchen genauen Umständen es bei dir nicht funktioniert. Bisher habe ich allerdings noch nichts gesehen, was mich davon überzeugt, dass es bei dir nicht richtig funktioniert.

Ich hoffe, dass der oben vorgeschlagenen Plot etwas Licht ins Dunkel bringen kann.

Um das deutlich zu sagen: measurementOffset kann nur dazu benutzt werden, dass das Thermostat die richtige Temperatur an der Heizung anzeigt. Es bringt nichts, measurementOffset auf -2 zu setzten, damit das Thermostat die Temperatur am anderen Ende des Raums "anzeigt". Der Temperaturunterschied an der Heizung und am anderen Ende des Raums ist nämlich nie konstant. So handelt man sich nur Fehler in der Regelung ein.