WandThermostat Boost an FHEM senden

Begonnen von gero, 21 Februar 2014, 22:33:04

Vorheriges Thema - Nächstes Thema

gero

Hallo,

nach einer umfangreichen Neukonfiguration meiner MAX-Komponenten ist mir aufgefallen, dass das Drücken der Boost-Taste auf dem Wandthermostat nicht korrekt von FHEM verarbeitet wird.

Hier das Log:

start boost
===============================================================
2014.02.21 22:04:42 5: CUL/RAW: /Z0B9B054005D62912345600E202

2014.02.21 22:04:42 4: CUL_Parse: CUL_0 Z0B9B054005D62912345600E202 -73
2014.02.21 22:04:42 5: CUL_0 dispatch Z0B9B054005D62912345600E2
2014.02.21 22:04:42 3: CUL_MAX_Parse: len 11, msgcnt 9B, msgflag 05, msgTypeRaw SetTemperature, src 05d629, dst 123456, groupid 0, payload E2
2014.02.21 22:04:42 3: Unhandled message SetTemperature


stop boost
===============================================================
2014.02.21 22:04:55 5: CUL/RAW: /Z0B9D000212345605D629000000
Z0B9D054005D62912345600220B

2014.02.21 22:04:55 4: CUL_Parse: CUL_0 Z0B9D000212345605D629000000 -74
2014.02.21 22:04:55 5: CUL_0 dispatch Z0B9D000212345605D6290000
2014.02.21 22:04:55 3: CUL_MAX_Parse: len 11, msgcnt 9D, msgflag 00, msgTypeRaw Ack, src 123456, dst 05d629, groupid 0, payload 00
2014.02.21 22:04:55 4: CUL_Parse: CUL_0 Z0B9D054005D62912345600220B -68.5
2014.02.21 22:04:55 5: CUL_0 dispatch Z0B9D054005D6291234560022
2014.02.21 22:04:55 3: CUL_MAX_Parse: len 11, msgcnt 9D, msgflag 05, msgTypeRaw SetTemperature, src 05d629, dst 123456, groupid 0, payload 22
2014.02.21 22:04:55 3: Unhandled message SetTemperature


Es wird also vom Wandthermostat ein SetTemperature mit CtrlMode Boost geschickt. Leider ist dieser Befehl nicht implementiert.
Anwendung:

Ich betreibe die MAX-Komponenten nur über FHEM, d.h. sie sind nicht untereinander gepaired oder assoziiert. Gesteuert werden die Heizköperthermostate über das PID20 Modul und das Wandthermostat dient als einfaches Steuergerät im Raum. Bis auf die Boostfunktionalität läuft soweit alles perfekt. Es wäre also schon, wenn diese letzte Kleinigkeit auch noch klappen würde.

Ich könnte auch selbst versuchen die notwendigen Änderungen an 14_CUL_MAX.pm und 10_MAX.pm vorzunehmen. Aber dann möchte ich nicht garantieren, dass ich nicht irgendwelche Randbedingungen vergessen habe.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Matthias Gehre

Du könntest Änderungen an 14_CUL_MAX.pm und 10_MAX.pm vorschlagen, und ich check sie dann.

gero

Hallo Matthias,

anbei zwei Patches:
001_add_SetTemperature_from_WT_MAX.patch
Fügt das Empfangen eines SetTemperature Befehls vom Wandthermostat hinzu. Der Befehl wird vom Wandthermostat z.B. bei Betätigung der Boost-Taste gesendet. Der Payload von SetTemperature enthält den mode (auto, eco, boost) und die desiredTemperature.

002_add_retry_on_missing_ack_MAX.patch
Dieser Patch enthält eine Änderung, die ich bei mir schon länger erfolgreich am Laufen habe:
Beim Versenden von Nachrichten kommt es immer mal wieder vor, dass eine Nachricht von einer MAX-Komponente nicht empfangen wurde und daher kein ACK geschickt wird. Leider bekommt die "obere" Ebene nichts davon mit, kann also auch nicht darauf regieren. Als Workaround habe ich in 14_CUL_MAX.pm Retries bei einem missing ACK eingeführt (maximal 3). Dies hat bei mir zu einer massiven Verbesserung der missing ACK Problematik geführt.
Ob diese Änderung fhem-konform ist, kann ich nicht beurteilen und es bleibt natürlich dir überlassen, ob du sie einpflegen magst.

Gruß und vielen Dank,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Matthias Gehre