[gelöst] Aqara Temperatursensor als Raumthermostat

Begonnen von Mihca, 04 Februar 2021, 16:52:46

Vorheriges Thema - Nächstes Thema

Mihca

Ich habe einen Aqara Temperatursensor eingebunden und würde ihn gerne als Thermostaten einsetzen. Dazu soll er -ähnlich HomeMatic-Thermostaten- in der Weboberfläche ein Feld für die Solltemperatur "TempSoll" erhalten. Dieses Reading soll dann meine Heizungssteuerung auswerten. Über "widgetOverride" habe ich schon ein Ausklappmenü in der Weboberfläche erzeugt, allerdings kann man damit den "TempSoll" nicht ändern. Das Ändern geht nur "händisch" über "setreading". Hat jemand eine Idee, wie das hinzubekommen ist?

Vielen Dank vorab
Achim

RAW-Definition:

defmod TemperaturFeuchteAqara MQTT2_DEVICE z2t_BDA7
attr TemperaturFeuchteAqara IODev MQTT2Server
attr TemperaturFeuchteAqara comment For forther configuration use e.g. stateFormat attribtue like T: temperature°C | H: humidity% | B: batteryPercent%
attr TemperaturFeuchteAqara icon temperature_humidity
attr TemperaturFeuchteAqara jsonMap Device:0 Battery:0 BatteryPercentage:batteryPercent BatteryVoltage:batteryVoltage Temperature:temperature Humidity:humidity
attr TemperaturFeuchteAqara model tasmota_zigbee2tasmota_generic_battery_sensor
attr TemperaturFeuchteAqara readingList tele/tasmota_D8DE0E/BDA7/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xBDA7.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr TemperaturFeuchteAqara room MQTT2_DEVICE
attr TemperaturFeuchteAqara stateFormat Temp: temperature°C | Feuchte: humidity% | Druck: pressure hPa | Bat: batteryVoltage V SollTemp: TempSoll
attr TemperaturFeuchteAqara userReadings pressure:Pressure.* {(ReadingsVal($name,"PressureScaledValue",10000)/10 + 25)},\
Time:LinkQuality.* {ReadingsTimestamp($name,"LinkQuality","")},\
Wifi_RSSI:LinkQuality.* {ReadingsVal($name,"LinkQuality","")},\
state:temperature.* {ReadingsVal($name,"temperature","0")},\
LWT:LinkQuality.* {ReadingsVal("SonoffZBBridge","LWT","Online")}
attr TemperaturFeuchteAqara webCmd TempSoll
attr TemperaturFeuchteAqara widgetOverride TempSoll:20,20.5,21,21.5,22,22.5,23,23.5,24
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Beta-User

"Tricksen" über die setList sollte klappen:

defmod TemperaturFeuchteAqara MQTT2_DEVICE z2t_BDA7
attr TemperaturFeuchteAqara IODev m2client
attr TemperaturFeuchteAqara icon temperature_humidity
attr TemperaturFeuchteAqara jsonMap Device:0 Battery:0 BatteryPercentage:batteryPercent BatteryVoltage:batteryVoltage Temperature:temperature Humidity:humidity
attr TemperaturFeuchteAqara model tasmota_zigbee2tasmota_generic_battery_sensor
attr TemperaturFeuchteAqara readingList tele/tasmota_D8DE0E/BDA7/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xBDA7.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr TemperaturFeuchteAqara room MQTT2_DEVICE
attr TemperaturFeuchteAqara setList TempSoll:slider,20,0.5,24,1 {fhem("setreading $NAME TempSoll $EVTPART1")}
attr TemperaturFeuchteAqara stateFormat Temp: temperature°C | Feuchte: humidity% | Druck: pressure hPa | Bat: batteryVoltage V
attr TemperaturFeuchteAqara userReadings pressure:Pressure.* {(ReadingsVal($name,"PressureScaledValue",10000)/10 + 25)},\
Time:LinkQuality.* {ReadingsTimestamp($name,"LinkQuality","")},\
Wifi_RSSI:LinkQuality.* {ReadingsVal($name,"LinkQuality","")},\
state:temperature.* {ReadingsVal($name,"temperature","0")},\
LWT:LinkQuality.* {ReadingsVal("SonoffZBBridge","LWT","Online")}
attr TemperaturFeuchteAqara webCmd TempSoll


:o Aber warum ist das ein ZigBee-Thema...?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Mihca

Ja, so geht es! Danke mal wieder Beta-User!!!!!

In Zigbee, weil es ein Zigbee Device ist. Wenn ich es verschieben soll, wohin?

Nochmals Danke
Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Beta-User

Du kannst den Thread ruhig lassen, wo er ist, aber nach ZigBee gehören eigentlich eher Fragen, die mit der Technik an sich oder mit HUEDevice (bzw. HUEBridge) zu tun haben.

Hier war TYPE aber MQTT2_DEVICE, und eigentlich wolltest du was wissen, was mit FHEMWEB zu tun hat (wobei die "Lösung" MQTT2_DEVICE-spezifisch ist). Wobei ich Zweifel habe, ob es eine Lösung ist, denn mit dem Reading an sich fängst du ja nichts an; vermute stark, dass du mit einer readingsGroup dein eigentliches Ziel direkter erreichen könntest...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Mihca

Hab es dann doch verschoben. Inzwischen wurde das Device weiter den HomeMatic Thermostaten angenähert, die es ersetzen soll. In der "readingsGroup" für die HomeMatic-Thermostaten passt das schon ganz gut. Dazu gibt es jetzt auch ein Ausklappmenü für den "controlMode". Den slider für die Solltemperatur habe ich durch eine Liste ersetzt. Wählt man den "controlMode", so bleibt der gewählte Mode auch nach Aktualisierung der Webseite sichtbar, während die Solltemperatur "desired-temp" nicht mehr sichtbar ist, das Feld bleibt leer. Hilfsweise ist sie jetzt im "stateFormat", es wäre aber für die "readingGroup" schöner, wenn sie in dem Feld für das Ausklappmenü zu sehen wäre. Hast Du noch eine Idee, wie man die "desired-temp" dort angezeigt bekommt?

Danke vorab
Achim

RAW Definition:

defmod Thermostat.UG.Keller MQTT2_DEVICE z2t_BDA7
attr Thermostat.UG.Keller IODev MQTT2Server
attr Thermostat.UG.Keller comment For forther configuration use e.g. stateFormat attribtue like T: temperature°C | H: humidity% | B: batteryPercent%
attr Thermostat.UG.Keller icon temperature_humidity
attr Thermostat.UG.Keller jsonMap Device:0 Battery:0 BatteryPercentage:batteryPercent BatteryVoltage:batteryLevel Temperature:measured-temp Humidity:humidity
attr Thermostat.UG.Keller model tasmota_zigbee2tasmota_generic_battery_sensor
attr Thermostat.UG.Keller readingList tele/tasmota_D8DE0E/BDA7/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xBDA7.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr Thermostat.UG.Keller room MQTT2_DEVICE
attr Thermostat.UG.Keller setList desired-temp:10,15,20,21,22,21.5,22,22.5,23,23.2,23.4,23.5,23.7,23.9,24 {fhem("setreading $NAME desired-temp $EVTPART1")}\
controlMode:auto,manual {fhem("setreading $NAME controlMode $EVTPART1")}
attr Thermostat.UG.Keller stateFormat Temp: measured-temp°C | Feuchte: humidity% | Druck: pressure hPa | Bat: batteryLevel V | SollTemp: desired-temp°C
attr Thermostat.UG.Keller userReadings pressure:Pressure.* {(ReadingsVal($name,"PressureScaledValue",10000)/10 + 25)},\
Time:LinkQuality.* {ReadingsTimestamp($name,"LinkQuality","")},\
Wifi_RSSI:LinkQuality.* {ReadingsVal($name,"LinkQuality","")},\
state:measured-temp.* {ReadingsVal($name,"measured-temp","0")},\
desired-temp:measured-temp.* {ReadingsVal($name,"desired-temp","0")},\
LWT:LinkQuality.* {ReadingsVal("SonoffZBBridge","LWT","Online")},\
dew:measured-temp.* {myDewpoint($name,'measured-temp')},\
heat1:measured-temp.* {ReadingsVal("HeizungUGKeller","state",'?');;;;},\
battery:LinkQuality.* {('ok');;;;}
attr Thermostat.UG.Keller webCmd desired-temp:controlMode
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Beta-User

Hier würde ich annehmen, dass dir der Messwert die story verhagelt bzw. das userReading:
desired-temp:measured-temp.* {ReadingsVal($name,"desired-temp","0")},\
Aber nur, weil ein setter bzw. ein Reading vorhanden wird, wird aus einem Sensor noch kein Thermostat... Also: Wie steuerst du jetzt dann den eigentlichen Thermostaten...?
Vermutung: Mit einem notify, dass das dann überträgt. Aber was passiert, wenn du "am Rad drehst", also lokal am Thermostaten was änderst? Dann kann das kaum mehr passen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Mihca

#6
Nein, an dem "userReading" liegt es nicht. Das Ausklappmenü bleibt leer, auch wenn ich das "userReading" "desired-temp" lösche.

Zur Frage, wie die Thermostaten gesteuert werden: Nur über Fhem. Zur Frage wie die Heizungen gesteuert werden: Die Ist- und Solltemperatur werden von einer Perl-Routine in "99_myUtils.pm" ausgewertet und die Heizungsventile entsprechend geschaltet. Die Routine wird alle 10Min von einem Timer aufgerufen.
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Beta-User

Versuch's mal (in setList) mit einheitlich einer Stelle hinter dem Komma ;) . (Das userReadings ist aber trotzdem m.E. kontraproduktiv).

Ansonsten klingt das nach einem interessanten Steuerungsansatz (ist hier aber OT).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Mihca

#8
 :) Ja so geht es mit Nachkommastelle überall! Danke!!!

Übrigens funktioniert es nicht, wenn man nur ganze Zahlen nimmt wie: 10,20,30

VG Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic