Moin! ich hoffe ihr habt die Festtage gut überstanden!
Ich habe mich über die Feiertage ein bisschen um die Alexa integration meines Systems gekümmert, klappt auch alles - bis auf die Thermostate!
Aufgrund des Altbestands an FS20 Stellantrieben und getrennten Temperatursensoren muss ich die Thermostate also als Dummy zusammenfassen.
Über userreadings und setlist habe ich also temperature und die gesetzte targettemperature.
genericDeviceType ist natürlich auf thermostat gesetzt.
Alexa erkennt das ganze nur leider nicht als Thermostat, ich kann zwar die Temperatur abfragen, aber keine setzen.
Kann mir jemand einen Denkanstoß geben?
beste Grüße
Jonny
Poste doch mal ein list von dem Dummy...
Gruß, Joachim
Welche Readings braucht denn das Alexa thermostat device?
In der Dokumentation finde ich das leider nicht eindeutig bebschrieben
hier die List:
NAME Schlafzimmer
NR 108
STATE 21
TYPE dummy
READINGS:
2019-12-27 13:58:28 desiredtemperature 21
2019-12-27 13:58:28 state 21
2019-12-27 13:58:28 temperature 15
Attributes:
alexaName Schlafzimmer
genericDeviceType thermostat
room Alexa
setList :slider,15,0.5,25
userReadings temperature { ReadingsVal("Wohnzimmer","temperature",0) }, desiredtemperature { ReadingsVal("Schlafzimmer","state",0) }
Ein Thermostat braucht und hat:
// Required Characteristics
this.addCharacteristic(Characteristic.CurrentHeatingCoolingState);
this.addCharacteristic(Characteristic.TargetHeatingCoolingState);
this.addCharacteristic(Characteristic.CurrentTemperature);
this.addCharacteristic(Characteristic.TargetTemperature);
this.addCharacteristic(Characteristic.TemperatureDisplayUnits);
// Optional Characteristics
this.addOptionalCharacteristic(Characteristic.CurrentRelativeHumidity);
this.addOptionalCharacteristic(Characteristic.TargetRelativeHumidity);
this.addOptionalCharacteristic(Characteristic.CoolingThresholdTemperature);
this.addOptionalCharacteristic(Characteristic.HeatingThresholdTemperature);
this.addOptionalCharacteristic(Characteristic.Name);
}
Mindestens CurrentTemperature und TargetTemperature
Das Mapping zwischen Readings und Characteristics macht man mit dem attr homeBridgeMapping
Oder du "benennst" die userreadings gleich passend...
Aber bei userreadings beachten: die werden nur "berechnet", wenn beim Device an dem sie definiert sind (passende) Events kommen!!!
Ich denke nicht, dass userreadings beim Dummy funktionieren...
Vermutlich brauchst du notify um die Werte vom tatsächlichen Device zu "übertragen"...
Oder evtl. readingsproxy...
Gruß, Joachim
Ich steig da leider nicht so richtig durch, mit dem homebridgemapping habe ich schon ein bisschen probiert
Laut Alexa unterstützt Kinderzimmer kein Temperatur setzen, lesen kann ich sie noch immer
list Kinderzimmer
Internals:
CFGFN
FUUID 5e061159-f33f-acef-b015-e53588a1647d753c
NAME Kinderzimmer
NR 315
STATE 15
TYPE dummy
READINGS:
2019-12-27 15:54:11 state 15
2019-12-27 15:54:11 temperature 16
Attributes:
alexaName Kinderzimmer
genericDeviceType thermostat
homebridgeMapping state=4.SET_TEMPERATURE::4.SET_TEMPERATURE,,minValue=5,maxValue=30,minStep=0.5,cmd=control,nocache=true temperature=4.ACTUAL_TEMPERATURE
readingList CurrentTemperature TargetTemperature
room Alexa
setList :slider,15,0.5,25
userReadings temperature { ReadingsVal("Wohnzimmer","temperature",0) }
Lösch doch mal das homebridgeMapping!
So ist es kompletter Quatsch!
Ist wohl von einem HMCCU-thermostat "geklaut"...
EDIT: homebridgeMapping muss schon zu deinen Readings und set-Befehlen passen (gibt es beim Dummy in dem Sinne nicht bzw. wird ein "normales" set per setList oder war es readingList auf ein Reading gemappt, ansonsten kannst du halt mit setreading alles setzen was du willst/brauchst... ;)
Mach mal ein:
setreading Kinderzimmer desired-temp 10
Dann gibt es ein Reading welches alexa-fhem reichen sollte...
EDIT: reload etc. nicht vergessen...
Deine readingList passt auch nicht zu deinen Readings (userreadings)...
Und wie kommt dann die per Sprache eingestellte Temperatur "zurück" zum Device was dann steuert!?
Also ich denke das mit dem Dummy ist so nix...
...außer zum Üben... ;)
Schon mal readingsProxy angesehen!?
Und noch mal: wie sollen denn die userreadings "angestoßen" werden!?
Noch mal: userreadings werden nur "berechnet", wenn Events zum Device kommen wo sie definiert sind! (also Events von deinem Dummy, der erzeugt aber einfach so ja keine Events, also wird auch keins deiner userreadings "berechnet", sonst hättest du ja schon Readings mit Namen aus deinen userreadings)
Und bitte lists etc. in "code-Tags", das '#' im "Menü"...
Gruß, Joachim
Okay danke schonmal für die Antowort, ein stückchen klarer ist mir das ganze geworden, readingsproxy werd ich mir mal ansehen!