(gelöst) [alexa-fhem] Fantasiewerte wenn widgetOverride gesetzt ist

Begonnen von betateilchen, 01 November 2020, 16:43:05

Vorheriges Thema - Nächstes Thema

betateilchen

Alexa scheint mein Kommando richtig zu verstehen, trotzdem werden am Thermostaten falsche Werte (1° statt 23°, in einem zweiten Fall 19° anstatt 12°) eingestellt.
Nun bin ich mir nicht sicher, ob das ein alexa-fhem oder ein Homematic Problem sein könnte.


[01/11/2020, 16:31:01] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"5420b5c7-3db2-4b71-ac6e-0519938de25e","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"AE.."},"endpointId":"CUL_HM_261B9E02","cookie":{"fuuid":"5c4b4266-f33f-b166-a890-9388fc31dd68cd88","device":"wz_TC_Climate"}},"payload":{"targetSetpoint":{"value":23,"scale":"CELSIUS"}}}}
[01/11/2020, 16:31:01] [FHEM] wz_TC_Climate: executing set cmd for TargetTemperature with value 1
[01/11/2020, 16:31:01] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20wz_TC_Climate%20desired-temp%201&fwcsrf=csrf_265849286328404&XHR=1
[01/11/2020, 16:31:01] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.ThermostatController","name":"targetSetpoint","value":{"value":1,"scale":"CELSIUS"},"timeOfSample":"2020-11-01T15:31:01.726Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"401ace5e-40fa-4856-b229-684b9ea6fbdb","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"AE.."},"endpointId":"CUL_HM_261B9E02"},"payload":{}}}



[01/11/2020, 16:32:14] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"3a015673-c0e2-4277-9d93-dd4c9e93a2bc","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"AE.."},"endpointId":"CUL_HM_261B9E02","cookie":{"fuuid":"5c4b4266-f33f-b166-a890-9388fc31dd68cd88","device":"wz_TC_Climate"}},"payload":{"targetSetpoint":{"value":12,"scale":"CELSIUS"}}}}
[01/11/2020, 16:32:14] [FHEM] wz_TC_Climate: executing set cmd for TargetTemperature with value 19
[01/11/2020, 16:32:14] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20wz_TC_Climate%20desired-temp%2019&fwcsrf=csrf_265849286328404&XHR=1
[01/11/2020, 16:32:14] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.ThermostatController","name":"targetSetpoint","value":{"value":19,"scale":"CELSIUS"},"timeOfSample":"2020-11-01T15:32:14.941Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"82d7c9c1-b21c-4b44-b5b3-97da362b46f6","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"AE.."},"endpointId":"CUL_HM_261B9E02"},"payload":{}}}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

#1
Da bisher niemand geantwortet hat, erlaube ich mir eine Frage: hast Du vielleicht auf wz_TC_Climate ein homeBridgeMapping, mit z.B. einem "scale" Parameter, das vielleicht eine Umwandlung des Werts verusachen könnte?

EDIT: und vielleicht noch eine 2. Frage: wie wird das Device beim Start von alexa-fhem bzw. ein "discover" erkannt?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

Moin, danke, dass sich jemand meines Problems annimmt :)

1. kein homeBridgeMapping (was ist das überhaupt?), und das Ganze hatte in der letzten Heizperiode schon problemlos funktioniert. Deshalb bin ich etwas ratlos, wo ich mit der Fehlersuche anfangen soll.

2. im Log finde ich das hier:


[03/11/2020, 20:31:07] [FHEM] wz_TC_Climate is thermometer
[03/11/2020, 20:31:07] [FHEM] wz_TC_Climate has
[03/11/2020, 20:31:07] [FHEM]   TargetTemperature [desired-temp]
[03/11/2020, 20:31:07] [FHEM]   CurrentTemperature [measured-temp]
[03/11/2020, 20:31:07] [FHEM]   CurrentRelativeHumidity [humidity]
[03/11/2020, 20:31:07] [FHEM] wz_TC_Climate will not send proactive events
[03/11/2020, 20:31:07] [FHEM] wz_TC_Climate uses ID: CUL_HM.26......
  2020-11-03 20:31:07 caching: wz_TC_Climate-desired-temp: 22.0
  2020-11-03 20:31:07 caching: wz_TC_Climate-measured-temp: 22.0
  2020-11-03 20:31:07 caching: wz_TC_Climate-humidity: 49
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 03 November 2020, 20:34:29
1. kein homeBridgeMapping (was ist das überhaupt?)

ok, hab ich grade nachgelesen. Das kannte ich bis heute gar nicht, weil ja alles schon funktioniert hatte.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

#4
Was mich in der Log irritiert:
[03/11/2020, 20:31:07] [FHEM] wz_TC_Climate is thermometer

service_name thermometer gehört nw. nicht einem Thermostat sondern einem reinen Temperatursensor, aber er hat trotzdem eine TargetTemperature Characteristic:
[03/11/2020, 20:31:07] [FHEM]   TargetTemperature [desired-temp]
und er nutzt die laut erstem Post auch.

Wenn er durch die "PossibleSets" ein desired-temp findet, sollte er ein service_name "thermostat" automatisch zuweisen. (siehe https://github.com/justme-1968/alexa-fhem/blob/master/lib/fhem.js 2470)

Es sei denn, Du hast explizit attr genericDeviceType auf "thermometer" gesetzt. Wenn dann, würde ich es löschen. Wenn nicht... bin ich auch etwa ratlos, da es bisher funktioniert hat. Ich würde  evtl. versuchen, attr genericDeviceType auf "thermostat" zu setzen (und ein set alexadevice reload zu machen), in der Hoffnung, dass er damit mit den automatisch kalkulierten Mappings besser durchkommt

Aber warum es so plötzlich nicht mehr funktioniert ist mir ein Rätsel. Hat sich vielleicht durch irgendeine Änderung von CUL_HM das Reading desired-temp oder entspr. set Kommando geändert? Das kann ich selbst nicht sagen, da ich auf Grund Instabilität von CUL_HM schon lange kein update mehr gemacht habe ;)

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

Zitat von: amenomade am 04 November 2020, 01:23:50
Wenn er durch die "PossibleSets" ein desired-temp findet, sollte er ein service_name "thermostat" automatisch zuweisen. (siehe https://github.com/justme-1968/alexa-fhem/blob/master/lib/fhem.js 2470)

Es sei denn, Du hast explizit attr genericDeviceType auf "thermometer" gesetzt. Wenn dann, würde ich es löschen. Wenn nicht... bin ich auch etwa ratlos, da es bisher funktioniert hat. Ich würde  evtl. versuchen, attr genericDeviceType auf "thermostat" zu setzen (und ein set alexadevice reload zu machen), in der Hoffnung, dass er damit mit den automatisch kalkulierten Mappings besser durchkommt

Ob der genericType auf "thermometer" oder auf "thermostat" steht, hat keinen Einfluss auf das Fehlverhalten. Das hatte ich im Vorfeld schon ausprobiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

Danke, werde ich mir mal anschauen.
Kann ich frühestens am Montag testen, wenn ich wieder zuhause bin.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Wie versprochen, habe ich das Logfile (mit -D produziert).
Viel mehr weiterführende Informationen finde ich darin aber auch nicht.

Der Befehl scheint von alexa korrekt empfangen zu werden, trotzdem wird dann versucht, eine desired-temp von 1 zu setzen.


[09/11/2020, 20:48:37] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"56339b01-9e79-4cdc-a99c-f1f17a66ce81","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"...DF9"},"endpointId":"CUL_HM_261B9E02","cookie":{"fuuid":"5c4b4266-f33f-b166-a890-9388fc31dd68cd88","device":"wz_TC_Climate"}},"payload":{"targetSetpoint":{"value":23,"scale":"CELSIUS"}}}}
[09/11/2020, 20:48:37] [FHEM] wz_TC_Climate: executing set cmd for TargetTemperature with value 1


Was hat eigentlich diese "failed" Meldung zu bedeuten?


[09/11/2020, 20:48:12] Starting SSH with -R 1234:127.0.0.1:35449 -oServerAliveInterval=90 -i /opt/fhem/.ssh/id_rsa -p 58824 fhem-va.fhem.de
[09/11/2020, 20:48:12] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

#9
[09/11/2020, 20:48:12] [FHEM] mappings for wz_TC_Climate: { TargetTemperature:
   { reading: 'desired-temp',
     cmd: 'desired-temp',
     delay: true,
     minValue: 19,
     maxValue: 1,
     minStep: -18.5 },

klingt sehr komisch. Da läuft etwas schief. Hast Du ein "list" von wz_TC_Climate?

EDIT: klingt sehr komisch... und erklärt warum bei set 23 => 1 (maxValue) gesetzt wird, und bei set 12 => 19 (minValue)
Die Frage ist, woher dieses Mapping kommt.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen


Internals:
   DEF        261B9E02
   FUUID      5c4b4266-f33f-b166-a890-9388fc31dd68cd88
   NAME       wz_TC_Climate
   NOTIFYDEV  global
   NR         158
   NTFY_ORDER 50-wz_TC_Climate
   STATE      T: 22.7 desired: 20.0
   TYPE       CUL_HM
   chanNo     02
   device     wz_TC
   Helper:
     DBLOG:
       desired-temp:
         fhemDbLog:
           TIME       1604953424.09665
           VALUE      20.0
       humidity:
         fhemDbLog:
           TIME       1604953424.09665
           VALUE      53
       measured-temp:
         fhemDbLog:
           TIME       1604953424.09665
           VALUE      22.7
       state:
         fhemDbLog:
           TIME       1604953424.09665
           VALUE      T: 22.7 desired: 20.0
       temperature:
         fhemDbLog:
           TIME       1604953424.09665
           VALUE      22.7
   READINGS:
     2020-11-09 21:00:11   CommandAccepted yes
     2019-02-07 14:21:36   R-dayTemp       22 C
     2018-07-04 00:14:01   R-daylightSaveTime on
     2018-07-04 00:14:01   R-heatCool      heating
     2018-07-04 00:14:01   R-modePrioManu  all
     2018-07-04 00:14:01   R-modePrioParty all
     2018-07-04 00:14:01   R-nightTemp     20 C
     2018-07-04 00:14:01   R-noMinMax4Manu off
     2018-07-04 00:14:01   R-sendWeatherData on
     2018-07-04 00:14:01   R-showHumidity  temp
     2018-07-04 00:14:01   R-showInfo      time
     2018-07-04 00:14:01   R-showSetTemp   actTemp
     2018-07-04 00:13:57   R-sign          off
     2018-07-04 00:14:01   R-tempOffset    -1.5K
     2018-07-04 00:14:01   R-weekPrgSel    prog1
     2018-07-04 00:14:01   R-winOpnBoost   off
     2020-04-19 23:10:52   R_P1_0_tempListSat 24:00 17.0
     2020-04-19 23:10:52   R_P1_1_tempListSun 24:00 17.0
     2020-04-19 23:10:52   R_P1_2_tempListMon 24:00 17.0
     2020-04-19 23:10:52   R_P1_3_tempListTue 24:00 17.0
     2020-04-19 23:10:52   R_P1_4_tempListWed 24:00 17.0
     2020-04-19 23:10:52   R_P1_5_tempListThu 24:00 17.0
     2020-04-19 23:10:52   R_P1_6_tempListFri 24:00 17.0
     2020-04-19 23:10:52   R_P1_tempList_State verified
     2020-04-19 23:10:56   R_P2_0_tempListSat 24:00 17.0
     2020-04-19 23:10:56   R_P2_1_tempListSun 24:00 17.0
     2020-04-19 23:10:56   R_P2_2_tempListMon 24:00 17.0
     2020-04-19 23:10:56   R_P2_3_tempListTue 24:00 17.0
     2020-04-19 23:10:56   R_P2_4_tempListWed 24:00 17.0
     2020-04-19 23:10:56   R_P2_5_tempListThu 24:00 17.0
     2020-04-19 23:10:56   R_P2_6_tempListFri 24:00 17.0
     2020-04-19 23:10:56   R_P2_tempList_State verified
     2020-04-19 23:11:02   R_P3_0_tempListSat 24:00 17.0
     2020-04-19 23:11:02   R_P3_1_tempListSun 24:00 17.0
     2020-04-19 23:11:02   R_P3_2_tempListMon 24:00 17.0
     2020-04-19 23:11:02   R_P3_3_tempListTue 24:00 17.0
     2020-04-19 23:11:02   R_P3_4_tempListWed 24:00 17.0
     2020-04-19 23:11:02   R_P3_5_tempListThu 24:00 17.0
     2020-04-19 23:11:02   R_P3_6_tempListFri 24:00 17.0
     2020-04-19 23:11:02   R_P3_tempList_State verified
     2020-11-09 21:01:02   boostTime       -
     2020-10-19 13:50:52   cfgState        ok
     2020-11-09 21:01:02   commReporting   off
     2020-11-09 21:01:02   controlMode     manual
     2020-11-09 21:23:44   desired-temp    20.0
     2020-11-09 21:23:44   humidity        53
     2020-11-09 21:23:44   measured-temp   22.7
     2020-11-09 21:00:11   recentStateType ack
     2020-11-09 21:23:44   state           T: 22.7 desired: 20.0
     2020-11-09 21:23:44   temperature     22.7
     2020-04-19 22:14:57   trigLast        fhem:81
     2020-11-09 21:01:02   winOpenReporting off
   helper:
     peerFriend peerRtTc
     peerOpt    p:thermostat
     regLst     1,7,8,9
     cmds:
       TmplKey    :no:1604870088.91727
       TmplTs     1604870088.91727
       cmdKey     1:0:0::wz_TC:00AD:02:
       cmdLst:
         clear      [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
         controlManu (on|off|5.0..30.0;0.5)
         controlMode (auto|manual|boost|day|night)
         controlParty -temp- -startDate- -startTime- -endDate- -endTime-
         desired-temp (on|off|5.0..30.0;0.5)
         getConfig  noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
         inhibit    [(on|{off})]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerChan   -btnNumber- -actChn- [({single})] [({set}|unset)] [(actor|remote|{both})]
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2-...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         sign       [(on|{off})]
         tempListFri [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempListMon [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempListSat [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempListSun [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempListThu [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempListTmpl [({verify}|restore)] [[-file-:]-templateName-]
         tempListTue [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempListWed [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
         tempTmplSet -tempTmpl-
         tplDel     -tplDel-
         tplSet_0   -tplChan-
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        0
       tpl        0
     role:
       chn        1
     shRegR:
       07         00
     shadowReg:
     tmpl:
Attributes:
   alexaName  Heizung Wohnzimmer
   expert     defReg
   group      10 FuBo
   model      HM-TC-IT-WM-W-EU
   peerIDs    00000000,
   room       10 Wohnzimmer
   userReadings temperature:measured-temp.* { ReadingsVal("wz_TC_Climate","measured-temp",0) }
   widgetOverride desired-temp:slider,19,.5,24,1
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Nun habe ich einem anderen TC (im Schlafzimmer) einen AlexaName verpasst, neue Geräte suchen lassen, FHEM neu gestartet - diesen TC kann ich korrekt einstellen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

Meine Vermutung anhand des Codes: widgetOverride. Hast Du auch das gleiche widgetOverride auf dem neuen Thermostat?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

nein, dort gibt es kein widgetOverride.

Mal schauen, was passiert, wenn ich das Attribut lösche - wobei es das Attribut schon länger gibt als die Anbindung des Thermostaten an alexa.
Und es gab ja Zeiten, in denen das schon funktioniert hatte.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: amenomade am 09 November 2020, 21:40:43
Meine Vermutung anhand des Codes: widgetOverride.

Volltreffer.

Ohne widgetOverride funktioniert das Stellen problemlos.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!