[GELÖST] Homebridge - Subtype und Themostat

Begonnen von SirBen, 10 Juni 2019, 13:58:18

Vorheriges Thema - Nächstes Thema

SirBen

Moin,
ich habe ein Problem mit mehreren characteristics in einem Device.
Mein MYSENSOR Device hat mehrere Thermostate, welche ich gerne zu homebridge mappen möchte.
Als Mapping ist zurzeit folgendes eingetragen:
clear
TargetTemperature=hvacsetpointheat3::hvacsetpointheat3,minValue=18,maxValue=26,minStep=0.5,subtype=AZ,nocache=1
CurrentTemperature=temperature2,subtype=AZ,nocache=1
CurrentRelativeHumidity=humidity1,subtype=AZ,nocache=1
CurrentHeatingCoolingState=status3,values=off:0;;on:1;;cool:2,subtype=AZ,nocache=1
TargetHeatingCoolingState=status3,values=off:0;;on:1;;cool:2,subtype=AZ,nocache=1

TargetTemperature=hvacsetpointheat6::hvacsetpointheat6,minValue=18,maxValue=26,minStep=0.5,subtype=Ella,nocache=1
CurrentTemperature=temperature5,subtype=Ella,nocache=1
CurrentRelativeHumidity=humidity4,subtype=Ella,nocache=1
CurrentHeatingCoolingState=status6,values=off:0;;on:1;;cool:2,subtype=Ella,nocache=1
TargetHeatingCoolingState=status6,values=off:0;;on:1;;cool:2,subtype=Ella,nocache=1


Bei homebridge auf dem raspberry kommt folgende Fehlermeldung:
[2019-6-1 10:49:14] [FHEM] MYSENSOR_0 is thermostat
[2019-6-1 10:49:14] [FHEM] MYSENSOR_0 is NOT a thermostat. set command for target temperature missing:
[2019-6-1 10:49:14] [FHEM] MYSENSOR_0 has
[2019-6-1 10:49:14] [FHEM]   CurrentTemperature [temperature2]
[2019-6-1 10:49:14] [FHEM]   CurrentTemperature [temperature5]
[2019-6-1 10:49:14] [FHEM]   CurrentRelativeHumidity [humidity1]
[2019-6-1 10:49:14] [FHEM]   CurrentRelativeHumidity [humidity4]
[2019-6-1 10:49:14] [FHEM]   CurrentHeatingCoolingState [status3]
[2019-6-1 10:49:14] [FHEM]   CurrentHeatingCoolingState [status6]
[2019-6-1 10:49:14] [FHEM]   TargetHeatingCoolingState [status3]
[2019-6-1 10:49:14] [FHEM]   TargetHeatingCoolingState [status6]


In der Home App werden die Geräte und deren Werte alle richtig angezeigt (bis auf die Solltemperatur, die steht immer bei 10°C), ich kann die einzelnen Geräte aber nicht in verschiedene Räume zuweisen. Sie werden immer alle gleichzeitig verschoben. Klingt für mich nach einem Problem mit subtype.

Trage ich nur die Mappings für einen Subtype ein:
TargetTemperature=hvacsetpointheat3::hvacsetpointheat3,minValue=18,maxValue=26,minStep=0.5,subtype=AZ,nocache=1
CurrentTemperature=temperature2,subtype=AZ,nocache=1
CurrentRelativeHumidity=humidity1,subtype=AZ,nocache=1
CurrentHeatingCoolingState=status3,values=off:0;;on:1;;cool:2,subtype=AZ,nocache=1
TargetHeatingCoolingState=status3,values=off:0;;on:1;;cool:2,subtype=AZ,nocache=1


funktioniert alles ohne Fehler. Auch die Solltemperatur.

Kann mir jemand mit dem Problem helfen? Gibt es vielleicht ein Bug mit subtype?

Danke und Gruß
Ben

P.S.:
├── homebridge@0.4.49
├── homebridge-fhem@0.5.4
├── n@4.1.0
└── npm@6.9.0

SirBen

Hallo nochmal,
ich habe mal versucht aus dem homebridge-fhem Modul schlau zu werden, aber das übersteigt meine Kenntnisse.  :-\
Wenn ich Homebridge im debug Modus starte, erhalte ich diese Ausgabe:
[FHEM] mappings for MYSENSOR_0: { CurrentHeatingCoolingState:
   [ { default: 'HEAT',
       reading: 'status3',
       values: [Array],
       subtype: 'AZ',
       nocache: '1' },
     { reading: 'status6',
       values: [Array],
       subtype: 'Ella',
       nocache: '1' } ],
  TargetTemperature:
   [ { reading: 'hvacsetpointheat3',
       cmd: 'hvacsetpointheat3',
       minValue: 18,
       maxValue: 26,
       minStep: 0.5,
       subtype: 'AZ',
       nocache: '1' },
     { reading: 'hvacsetpointheat6',
       cmd: 'hvacsetpointheat6',
       minValue: 18,
       maxValue: 26,
       minStep: 0.5,
       subtype: 'Ella',
       nocache: '1' }],
  CurrentTemperature:
   [ { reading: 'temperature2', subtype: 'AZ', nocache: '1' },
     { reading: 'temperature5', subtype: 'Ella', nocache: '1' } ],
  CurrentRelativeHumidity:
   [ { reading: 'humidity1', subtype: 'AZ', nocache: '1' },
     { reading: 'humidity4', subtype: 'Ella', nocache: '1' } ],
  TargetHeatingCoolingState:
   [ { reading: 'status3',
       values: [Array],
       subtype: 'AZ',
       nocache: '1' },
     { reading: 'status6',
       values: [Array],
       subtype: 'Ella',
       nocache: '1' } ] }


Das sieht für mich alles richtig aus.
Allerdings kommt weiterhin diese Ausgabe:
[2019-6-13 13:48:21] [FHEM] MYSENSOR_0 is thermostat
[2019-6-13 13:48:21] [FHEM] MYSENSOR_0 is NOT a thermostat. set command for target temperature missing:
[2019-6-13 13:48:21] [FHEM] MYSENSOR_0 has
[2019-6-13 13:48:21] [FHEM]   CurrentHeatingCoolingState [status3]
[2019-6-13 13:48:21] [FHEM]   CurrentHeatingCoolingState [status6]
[2019-6-13 13:48:21] [FHEM]   CurrentHeatingCoolingState [status9]
[2019-6-13 13:48:21] [FHEM]   CurrentTemperature [temperature2]
[2019-6-13 13:48:21] [FHEM]   CurrentTemperature [temperature5]
[2019-6-13 13:48:21] [FHEM]   CurrentTemperature [temperature8]
[2019-6-13 13:48:21] [FHEM]   CurrentRelativeHumidity [humidity1]
[2019-6-13 13:48:21] [FHEM]   CurrentRelativeHumidity [humidity4]
[2019-6-13 13:48:21] [FHEM]   CurrentRelativeHumidity [humidity7]
[2019-6-13 13:48:21] [FHEM]   TargetHeatingCoolingState [status3]
[2019-6-13 13:48:21] [FHEM]   TargetHeatingCoolingState [status6]
[2019-6-13 13:48:21] [FHEM]   TargetHeatingCoolingState [status9]


Wo liegt der Fehler? Kann mir jemand dabei helfen?

Vielen Dank.

Gruß Ben

P.S.: Gibt es die Möglichkeit, einen Raum im Mapping direkt mit anzugeben?

SirBen

#2
Moin,
wieder was Neues!
Ich habe in dem npm Modul (homebridge-fhem) in der index.js die Zeile 1952 auskommentiert ("delete this.mappings.TargetTemperature;") und die Thermostate funktionieren jetzt richtig. Die Solltemperatur kann eingestellt werden. Es ist also definitiv ein Bug in dem Modul.
Allerdings gibt es noch ein Problem:
Alle Thermostate sind immer im selben Raum. Verschiebt man einen, verschieben sich alle.

Gruß Ben

SirBen

So, ich hab's aufgegeben. Habe jetzt für jeden Raum einen dummy Thermostat angelegt und nur ein homebridgemapping+genericDeviceType pro Thermostat gesetzt. Jetzt funktioniert alles wie gewünscht. Allerdings nur, wenn ich wie oben beschrieben, die eine Zeile auskommentiere.
Ich kann mit der Lösung leben. Falls jemand den Fehler / Bug findet, wäre ich sehr interessiert an der Lösung.
Danke trotzdem an alle!

Hier noch meinen Workaround:
define Thermostat_Raum1 dummy

attr Thermostat_Raum1 homebridgemapping TargetTemperature=MYSENSOR_0:hvacsetpointheat3,cmd=hvacsetpointheat3,minValue=18,maxValue=26,minStep=0.5,nocache=1
CurrentTemperature=MYSENSOR_0:temperature2,nocache=1
CurrentRelativeHumidity=MYSENSOR_0:humidity1,nocache=1
CurrentHeatingCoolingState=MYSENSOR_0:status3,values=off:0;;on:1;;cool:2,nocache=1
TargetHeatingCoolingState=MYSENSOR_0:status3,values=off:0;;on:1;;cool:2,nocache=1

attr Thermostat_Raum1 genericDeviceType thermostat

attr Thermostat_Raum1 room Homebridge


Wichtig ist bei TargetTemperature, dass im ersten Teil (das Reading) das device mit angegeben wird und im cmd Teil NICHT mit angegeben wird. Sonst funktioniert das nicht.

Gruß Ben

justme1968

zeig mal bitte ein jsonlist2 vom device. ich vermute da taucht das set commando nicht richtig auf.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

SirBen

Moin,
hier mal das jsonlist2 vom Device:
{
  "Arg":"Thermostat_Badezimmer",
  "Results": [
  {
    "Name":"Thermostat_Badezimmer",
    "PossibleSets":" ",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 disable disabledForIntervals readingList setExtensionsEvent:1,0 setList useSetExtensions event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,IrrigationSystem,Speaker,television,Valve homebridgeMapping:textField-long icon siriName sortby webCmd webCmdLabel:textField-long widgetOverride model userattr",
    "Internals": {
      "FUUID": "5d05cda0-f33f-2b06-a343-e2bb09c58fef870c",
      "NAME": "Thermostat_Badezimmer",
      "NR": "63",
      "STATE": "???",
      "TYPE": "dummy"
    },
    "Readings": {      "state": { "Value":"???", "Time":"2019-08-25 07:51:14" } },
    "Attributes": {
      "genericDeviceType": "thermostat",
      "homebridgeMapping": "TargetTemperature=MYSENSOR_0:hvacsetpointheat15,cmd=hvacsetpointheat15,minValue=18,maxValue=26,minStep=0.5,nocache=1\nCurrentTemperature=MYSENSOR_0:temperature14,nocache=1\nCurrentRelativeHumidity=MYSENSOR_0:humidity13,nocache=1\nCurrentHeatingCoolingState=MYSENSOR_0:status15,values=off:0;;on:1;;cool:2,nocache=1\nTargetHeatingCoolingState=MYSENSOR_0:status15,values=off:0;;on:1;;cool:2,nocache=1",
      "model": "Badezimmer",
      "room": "Homebridge",
      "siriName": "Thermostat",
      "userattr": "model"
    }
  }  ],
  "totalResultsReturned":1
}


Gruß Ben

justme1968

dein device liefert keine sets. d.h. PossibleSets ist leer.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

SirBen

Ich habe jetzt bei den Thermostat Dummy hinzugefügt:
attr Thermostat_Badezimmer setList hvacsetpointheat15

Damit läuft Homebridge nun ohne Fehler.
Ich kann auch mit Homebridge (EVE oder HOME App) die Temperatur einstellen.

Vielen Dank!
Gruß Ben