Dummy Thermostat mit Fhem Alexa Connector steuern

Begonnen von J0nny12, 27 Dezember 2019, 13:41:21

Vorheriges Thema - Nächstes Thema

J0nny12

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

MadMax-FHEM

Poste doch mal ein list von dem Dummy...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

J0nny12

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) }

amenomade

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


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

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

J0nny12

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) }

MadMax-FHEM

#6
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

J0nny12

Okay danke schonmal für die Antowort, ein stückchen klarer ist mir das ganze geworden, readingsproxy werd ich mir mal ansehen!