MAX_Parse: Unknown message WallThermostatState

Begonnen von Meesus, 21 Dezember 2012, 18:16:40

Vorheriges Thema - Nächstes Thema

Matthias Gehre

> eigentlich war die IST-Temp am WT ja 22,9. In FHEM habe ich aber 21,9 gesehen.
Im Paket kam aber sowohl 21,9 als auch 22,9 vor. Der Code interpretiert jetzt die zweite Zahl als gemessene Temperatur.

ne20002


Ich habe eben das update gemacht.

Nachdem der WallThermostatState per CUL gelesen wurde, habe ich in den readings state und desiredTemperature 0.0 stehen. Es sollte aber desiredTemp 14.0 sein (der HeizkörperThermostat hat das auch noch so).
Das reading temperature wurde scheinbar nicht aktualisiert.



Matthias Gehre

Was steht im Log dazu? Am besten nur die relevanten Teile (CUL_MAX_Parse und die Zeilen danach)

ne20002


Und nach einem Neustart erfolgt erst ein poll auf den Cube, welcher richtige Werte liefert.
Nach dem ersten MAXCUL ist folgendes falsch:
STATE 0.0 °C
desiredTemperature 0.0 (statt 14.0)
temperature 172   
valveposition 172 (beide Werte gleich, aber valve sollte nahe 0 sein, war vorher 4)

Und neu week-profile: Die stimmen.

Ich habe leider kein weiteres logging, da ich remote auf die Fritzbox schau.

Matthias Gehre

Das Log sieht man doch sogar im FHEMWEB links im Menü unter "Logfile".

ne20002

Und noch was: ich habe einen Thermostat und einen WallThermostat in dem Zimmer. Die Readings haben Unterschiede (decalcification, state, temperature, valveposition).

CUL:
battery                     ok         2013-01-11 16:22:58
comfortTemperature        21.5       2013-01-11 16:14:51
decalcification           Mon, 20:00 2013-01-11 15:28:54
desiredTemperature        0.0        2013-01-11 16:22:58
displayActualTemperature  1          2013-01-11 16:22:58
ecoTemperature            16         2013-01-11 16:14:51
maximumTemperature        30.5       2013-01-11 16:14:51
measurementOffset         0          2013-01-04 17:30:27
minimumTemperature        4.5        2013-01-11 16:14:51
mode                      temporary  2013-01-11 15:28:54
state                     0.0 °C     2013-01-11 16:22:58
temperature               172        2013-01-11 16:14:51
valveposition             170

MAXLAN:

battery                   ok         2013-01-11 16:22:58
boostDuration             5          2013-01-11 16:14:50
boostValveposition        80         2013-01-11 16:14:50
comfortTemperature        21.5       2013-01-11 16:14:50
decalcification           Sat, 12:00 2013-01-11 16:14:50
desiredTemperature        14.0       2013-01-11 16:22:58
ecoTemperature            16         2013-01-11 16:14:50
maxValveSetting           100        2013-01-11 16:14:50
maximumTemperature        30.5       2013-01-11 16:14:50
measurementOffset         0          2013-01-11 16:14:50
minimumTemperature        4.5        2013-01-11 16:14:50
mode                      temporary  2013-01-11 16:22:58
state                     14.0 °C    2013-01-11 16:22:58
temperature               20.9       2013-01-02 16:34:48
valveOffset               0          2013-01-11 16:14:50
valveposition             0          2013-01-11 16:14:50

Man sieht auch, dass der Thermostat seit 2.1. keine temperature gemeldet hat, da er bisher scheinbar nicht geregelt hat.



ne20002


Ja. Aber ich habe den loglevel noch auf default.

ne20002

Use of uninitialized value $temperature in concatenation (.) or string at /usr/share/fhem/FHEM/10_MAX.pm line 441.
Use of uninitialized value $desiredTemperature in division (/) at /usr/share/fhem/FHEM/10_MAX.pm line 438.
Use of uninitialized value $null1 in numeric ne (!=) at /usr/share/fhem/FHEM/10_MAX.pm line 439.
Use of uninitialized value $null2 in numeric ne (!=) at /usr/share/fhem/FHEM/10_MAX.pm line 439.
Use of uninitialized value $unk in concatenation (.) or string at /usr/share/fhem/FHEM/10_MAX.pm line 441.

Adam

Hallo Matthias,

ich habe nun auch endlich das Update machen können.

Nach dem Neustart von FHEM kann ich folgendes nun erstmal sehen:

Werte meines WT+:

desiredTemperature   23.0   2013-01-11 20:13:03
displayActualTemperature   1   2013-01-11 20:13:03
state                   23.0 °C   2013-01-11 20:13:03
temperature           225   2013-01-11 20:13:03
valveposition       4   2013-01-11 20:13:03

Die IST-Temperatur am WT+ wird auch tatsächlich mit 22.5 angezeigt,
d.h. es würde bis auf den fehlenden Punkt richtig angezeigt.
desiredTemperature und state passen auch!

Der Wert von valveposition 4 verstehe ich nicht. Der WT+ sollte ja wohl keinen haben.
Da stimmt was nicht?

Habe dann auch mal boost gesetzt und gesehen, dass die Temperatur vom WT+
dann auch als
temperature   227   2013-01-11 20:21:39
angezeigt wurde, was auch der aktuelle Wert auf dem WT+ ist.

Also über den Cube scheint dieser Wert nun richtig gesetzt zu werden!

Das normale Thermostat hat zunächst kein temperature Eintrag nach dem Start
in Fhem gehabt, nach dem boost ist auch dort die 22.7 zu sehen.

Die Logmeldungen vom WT+ sehen dabei immer gleich aus:
2013.01.11 20:21:23 5: MAX_Parse MAX,1,WallThermostatState,057fa4,18042e00e000e3
2013.01.11 20:21:23 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 4 %, desiredTemperature 23, unknown: 224, temperature 227

Was 224 sein könnte weiss ich leider nicht.

Das Thermostat wiederholständig folgende Meldung:
2013.01.11 20:21:08 5: MAX_Parse MAX,1,ThermostatState,04c9db,1b502e000000
2013.01.11 20:21:08 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 3, valveposition 80 %, desiredTemperature 23, until , curTemp

bis dann irgendwann folgende kommt:
2013.01.11 20:22:55 5: MAX_Parse MAX,1,ThermostatState,04c9db,1b502e00e300
2013.01.11 20:22:55 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 3, valveposition 80 %, desiredTemperature 23, until , curTemp 22.7
 

Adam

Es sieht jetzt auch so aus, dass die Anzeige in FHEM der temperature des WT+
also Ist Temperatur sofort angepasst wird, wenn sich die Anzeige am WT+ selber auch ändert.
Nur der fehlende Punkt wäre schön ;-)

Matthias Gehre

@Adam:
valveposition wird tatsächlich vom WandThermostat gesendet. Ich nehme an,
dass die Regelung am WandThermostat stattfindet, und es dann die Soll-Valveposition an die HeizkörperThermostate
übermittelt. Diese nehmen dann auch tatsächlich die Valveposition vom WandThermostat ein.

Mit dem nächsten Update wird die temperature auch durch 10 geteilt.

Schön, dass es mit dem Cube klappt.

@ne20002:
Ohne Log mit CUL_MAX_Parse kann ich nichts machen. Ich kann mir im Moment auch nicht vorstellen,
wo der Fehler liegt, da es mit dem Cube anscheinend klappt.

Matthias Gehre

Achja, ist displayActualTemperature auch korrekt?

Das sollte '1' sein, wenn das Wandthermostat so eingestellt ist, dass es die gemessene Temperatur zeigt,
und '0' wenn es die desiredTemperature zeigt. (Vgl. den setter dazu)

Adam

Hi,

ja das passt!!!
Ich kann auch über Fhem den Wert umsetzen und die Anzeige am WT ändert sich dann!
Alles super soweit!

Adam

Hi Matthias,

es kann sein, dass ich einen Hinweis auf die Zahl bei "unknown" gefunden habe.

Ich habe zwei Beispiele gefunden, wo das Thermostat wohl seine CurTemp meldet
und zur gleichen Zeit ändert sich der Wert bei unknown auf genau diesen Wert.
Kann das eventuell der empfangene Wert eines angekoppelten Thermostats sein?
Werde mal weiter loggen und danach schauen!

2013.01.11 21:57:04 5: MAX_Parse MAX,1,WallThermostatState,057fa4,19042a00e700e7
2013.01.11 21:57:04 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 4 %, desiredTemperature 21, unknown: 231, temperature 231
2013.01.11 21:57:04 5: MAX_Parse MAX,1,ThermostatState,04c9db,19002a00e700
2013.01.11 21:57:04 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 0 %, desiredTemperature 21, until , curTemp 23.1


2013.01.11 23:01:05 5: MAX_Parse MAX,1,WallThermostatState,057fa4,18041e00e400e4
2013.01.11 23:01:05 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 4 %, desiredTemperature 15, unknown: 228, temperature 228
2013.01.11 23:01:05 5: MAX_Parse MAX,1,ThermostatState,041ae4,19001e00e400
2013.01.11 23:01:05 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 0 %, desiredTemperature 15, until , curTemp 22.8

Matthias Gehre

Das scheint zu passen. Guter Fund!
Allerdings tendiere ich dazu, den Wert nicht im WandThermostat anzuzeigen,
da er ja sowieso auf der Seite des jeweiligen Heizkörpers steht.

Oder was meinst du?