Alexa Response für Homematic IP Heizkörperthermostat HmIP-eTRV-C

Hallo zusammen,

bei meinem neuen Homematic IP Heizkörperthermostat HmIP-eTRV-C bestätigt das Alexa-Modul (Sprachausgabe) die gesetzte Temperatur falsch (den alten Wert), im Gerät wird die Temperatur richtig eingestellt. Das beeinträchtigt natürlich den WAF :wink: und ist auch für mich verwirrend.

Im Debug des Moduls sieht man das auch recht schön (es wurde „23 Grad“ gesprochen):
Response | {„context“:{„properties“:[{„namespace“:„Alexa.ThermostatController“,„name“:„targetSetpoint“,„value“:{„value“:22,„scale“:„CELSIUS“}…

Zum Vergleich liefert ein normaler Homematic Heizkörperthermostat die richtige Rückmeldung. Das hängt vermutlich mit den unterschiedlichen Datenpunkt-Namen zusammen: Bei HM-IP ist das SET_POINT_TEMPERATURE, bei HM aber SET_TEMPERATURE.

Hat das auch schon jemand bemerkt? Vermutlich müssen die IPS-Jungs hier helfen… :wink: Danke schon mal!

Viele Grüße!

Kommt laut Debug auch die korrekte 23 als Anfrage an?

Technisch läuft das ganze übrigens so ab, dass das Alexa-Modul die angegebene Variable auf den neuen Wert schaltet. Dann wartet das Modul bis die Variable auf dem neuen Wert ist oder ein paar Sekunden vergangen sind, danach meldet es den aktuellen Wert der Variable zurück.

Ändert sich die Variable denn auf die 23 Grad oder bleibt die auch bei 22 stecken? Wie verhält sich das, wenn du die Einstellung statt über Alexa via WebFront machst? Hat dies die gleichen Probleme oder funktioniert es dort wir vorgesehen?

@doctee Hast du bei den verschiedenen HM Instanzen die Einstellung Status emulieren verglichen?
Beim den ganz alten legacy HM muss es ein sein, da das Gerät sehr lange zum übernehmen des neuen Wertes braucht.
Die neuen legacy HM sind eigentlich sehr schnell, dort kann das Status emulieren aus bleiben.
Bei den HmIP, welche bei dir Probleme machen, habe ich noch keine Erfahrungswerte, aber eigentlich sind die auch sehr schnell.
Oder hast du z.b. einen Aktor als repeater dazwischen? Im Zweifelsfall diese Einstellung einmal Einschalten und testen.
Michael

…danke für Eure Hilfe, aber ich komme noch nicht wirklich weiter :confused:

Laut Alexa-Debug für eine Frage „Heizung auf 24 Grad“:

  • Request sendet 24 Grad (targetSetpoint) -->OK
  • Result 23 Grad -->NOK
  • Response 23 Grad -->NOK

Die Einträge kommen alle in der gleichen Sekunde, also kein großer Delay. Im Objektbaum ist der Zielwert SET_POINT_TEMPERATURE auch sofort richtig eingestellt. Ebenso im Webfront läuft alles normal, die Anzeige springt auch nicht.

Test mit Emulation ein/aus bringen keine Änderung; meine anderen Thermostate sind auch alle auf „ein“. Es gibt keinen Repeater (wobei HMIP das ja eigentlich selbst kann).

Hier noch ein Debug-Beispiel:

02.12.2020, 14:18:58 | Request | {„directive“:{„header“:{„namespace“:„Alexa.ThermostatController“,„name“:„SetTargetTemperature“,„payloadVersion“:„3“,„messageId“:“xxx“,“correlationToken“:“yyy“},“endpoint“:{„scope“:{„type“:„BearerToken“},„endpointId“:„41“,„cookie“:},„payload“:{„targetSetpoint“:{„value“:24,„scale“:„CELSIUS“}}}}
02.12.2020, 14:18:59 | Result | {„properties“:[{„namespace“:„Alexa.ThermostatController“,„name“:„targetSetpoint“,„value“:{„value“:23,„scale“:„CELSIUS“},„timeOfSample“:„2020-12-02T13:18:59Z“,„uncertaintyInMilliseconds“:0},{„namespace“:„Alexa.ThermostatController“,„name“:„thermostatMode“,„value“:„HEAT“,„timeOfSample“:„2020-12-02T13:18:59Z“,„uncertaintyInMilliseconds“:0}],„payload“:{},„eventName“:„Response“,„eventNamespace“:„Alexa“}
02.12.2020, 14:18:59 | Response | {„context“:{„properties“:[{„namespace“:„Alexa.ThermostatController“,„name“:„targetSetpoint“,„value“:{„value“:23,„scale“:„CELSIUS“},„timeOfSample“:„2020-12-02T13:18:59Z“,„uncertaintyInMilliseconds“:0},{„namespace“:„Alexa.ThermostatController“,„name“:„thermostatMode“,„value“:„HEAT“,„timeOfSample“:„2020-12-02T13:18:59Z“,„uncertaintyInMilliseconds“:0}]},„event“:{„header“:{„namespace“:„Alexa“,„name“:„Response“,„payloadVersion“:„3“,„messageId“:“xx“x,“correlationToken“:“yyy“},“endpoint“:{„endpointId“:„41“},„payload“:{}}}

Habt Ihr noch Ideen, was ich testen kann?

Viele Grüße!

Hast du die Variable geloggt? Sonst könntest du ja mal die Werte um den dargestellten Schaltvorgang am 2.12. um 14:18 posten und welcher Wert dort davor stand. Dann kann man noch einmal damit abgleichen. Denn ich vermute ehrlich gesagt, dass dort etwas nicht ganz passt.

Um das Gerät aus der Gleichung zu nehmen, kannst du aber gerne mal „Status emulieren“ bei Alexa aktivieren. Wenn es dann immer noch nicht klappt, dann würde es mich sehr wundern und der Fehler liegt definitiv im Alexa-Modul.

Die Variable war nicht geloggt, ich habe das noch nachgeholt. Hier die Ergebnisse:

Der Sprachbefehle lautet: „Stelle die Arbeitszimmerheizung auf 22 Grad“. Vorher waren 20 Grad eingestellt.

Debug vom HmIP-eTRV-C:
04.12.2020, 13:20:57 | SET_POINT_TEMPERATURE | 22.0
04.12.2020, 13:20:57 | BOOST_TIME | 0
04.12.2020, 13:20:57 | PARTY_MODE | false
04.12.2020, 13:20:57 | LEVEL_STATUS | 0
04.12.2020, 13:20:57 | QUICK_VETO_TIME | 0
04.12.2020, 13:20:57 | FROST_PROTECTION | false
04.12.2020, 13:20:57 | SET_POINT_MODE | 0
04.12.2020, 13:20:57 | LEVEL | 0.14
04.12.2020, 13:20:57 | ACTUAL_TEMPERATURE_STATUS | 0
04.12.2020, 13:20:57 | SWITCH_POINT_OCCURED | false
04.12.2020, 13:20:57 | VALVE_STATE | 4
04.12.2020, 13:20:57 | ACTIVE_PROFILE | 1
04.12.2020, 13:20:57 | WINDOW_STATE | 0
—> sieht für mich ok aus, das Ventil wird hörbar geöffnet.

Im Archiv stehen dann die Werte:
13:20:57 22,0°C
13:20:14 20,0°C
—> sieht für mich ok aus, der untere Werte ist der Startwert des Loggings

Debug vom Alexa-Modul:
04.12.2020, 13:20:56 | Request | {„directive“:{„header“:{„namespace“:„Alexa.ThermostatController“,„name“:„SetTargetTemperature“,„payloadVersion“:„3“,„messageId“:„xxx“,„correlationToken“:„yyy“},„endpoint“:{„scope“:{„type“:„BearerToken“},„endpointId“:„41“,„cookie“:},„payload“:{„targetSetpoint“:{„value“:22,„scale“:„CELSIUS“}}}}

04.12.2020, 13:20:57 | Result | {„properties“:[{„namespace“:„Alexa.ThermostatController“,„name“:„targetSetpoint“,„value“:
{„value“:20,„scale“:„CELSIUS“},„timeOfSample“:„2020-12-04T12:20:57Z“,„uncertaintyInMilliseconds“:0},{„namespace“:„Alexa.ThermostatController“,„name“:„thermostatMode“,„value“:„HEAT“,„timeOfSample“:„2020-12-04T12:20:57Z“,„uncertaintyInMilliseconds“:0}],„payload“:{},„eventName“:„Response“,„eventNamespace“:„Alexa“}

04.12.2020, 13:20:57 | Response | {„context“:{„properties“:[{„namespace“:„Alexa.ThermostatController“,„name“:„targetSetpoint“,„value“:{„value“:20,„scale“:„CELSIUS“},„timeOfSample“:„2020-12-04T12:20:57Z“,„uncertaintyInMilliseconds“:0},{„namespace“:„Alexa.ThermostatController“,„name“:„thermostatMode“,„value“:„HEAT“,„timeOfSample“:„2020-12-04T12:20:57Z“,„uncertaintyInMilliseconds“:0}]},„event“:{„header“:{„namespace“:„Alexa“,„name“:„Response“,„payloadVersion“:„3“,„messageId“:„xxx“,„correlationToken“:„yyy“},„endpoint“:{„endpointId“:„41“},„payload“:{}}}

—> Hier kommt m.E. der Fehler in Result und Response: „value“:{„value“:20,„scale“:„CELSIUS“} statt 22

Die Emulation ist (und war immer) eingeschaltet; ich hatte das auf Nall-chans Hinweis testweise auch mal ausgeschaltet (gleicher Effekt).

Dr.Niels meinte das jetzt aber im Alexa Modul und nicht im HM Device.
Michael

…hab Emulation im Alexa-Modul eingestellt, jetzt kommen die richtigen Werte auch in der Sprachantwort… :slight_smile: Danke!

Die Emulation gilt aber dann für alle Rückmeldungen, richtig? Das wäre natürlich bei meinem Keymatic suboptimal… :confused:

Wenn ich das also richtig verstehe, liefert die Homematic-CCU2 (oder die Instanz?) die falsche Antwort?

Ich vermute, dass der Schaltvorgang ein bisschen länger als eine Sekunde dauert. Daher wartet das Alexa-Modul nicht länger und meldet den vorherigen Wert zurück. Mit Emulieren bestätigt Alexa halt den Wert der reingeht ohne darauf zu warten, dass das Endgerät diesen tatsächlich annimmt und es funktioniert, wie du möchtest.

…ok, danke für die Information. Ich werde damit leben können, und wenn es stört, versuche ich es über ein Skript, damit ich in diesem Fall das Ergebnis emulieren kann.

Noch eine Anregung: Ein Schalter/Option für die Emulation pro Gerät im Alexa-Konfigurator (nicht pauschal für alle wie jetzt) wäre hier die Lösung und könnte generell für alle Geräte mit Timingproblemen eine Lösung bieten (oder sogar einer einstellbarer Timeout). :loveips: