Devicereading von einem in das andere Device schreiben

Begonnen von Snocksman, 18 Januar 2024, 10:15:18

Vorheriges Thema - Nächstes Thema

Snocksman

Hallo zusammen,

Ich habe ein Problem und weiß nicht, wie ich es in FHEM am besten angehe...

Ich habe mir fürs Bad eine Infrarotheizung angeschafft, die die normale Heizung Teilweise etwas unterstützen soll (weil der Raum schneller auskühlt als der Rest des Hauses)... Zuerst dachte ich, dass das Teil Zigbee spricht, wurde aber schnell enttäuscht; Es ist ein Tuya WiFi Device. Ein bisschen rumgesucht und hey, das Teil kann man ja doch in FHEM einbinden ! 8) Das klappt soweit auch, die Infrarotheizung hat aber einen kleinen Temperaturfühler, der sich per Funk mit der Infrarotheizung verbindet. Das Teil scheint leider sehr hungrig zu sein und frisst die Batterien zum Frühstück.

Nun meine Idee: Ich lasse diesen Funkempfänger einfach weg und schreibe den Temperaturwert per FHEM in das Device. Ich habe ein Zigbee Thermostat übrig, welches diese Aufgabe übernehmen könnte...

Seht ihr da eine Möglichkeit das zu bewerkstelligen ? Die Parameter der beiden Devices habe ich unten angehangen.



Infrarotheizung:
define tuya_local_bfec383767ff712495fogf fhempy tuya j4vyknploaq0d4le bfec383767ff712495fogf 192.168.1.32 3.3 5qxh3995wv8rjyjaxvjv d99db9832ce44712a4c1ac96c29d6064
attr tuya_local_bfec383767ff712495fogf alias Infrarotheizung_Bad
attr tuya_local_bfec383767ff712495fogf dp_01 switch
attr tuya_local_bfec383767ff712495fogf dp_02 temp_set
attr tuya_local_bfec383767ff712495fogf dp_03 temp_current
attr tuya_local_bfec383767ff712495fogf dp_04 mode
attr tuya_local_bfec383767ff712495fogf dp_11 work_state
attr tuya_local_bfec383767ff712495fogf dp_13 temp_unit_convert
attr tuya_local_bfec383767ff712495fogf dp_14 temp_set_f
attr tuya_local_bfec383767ff712495fogf dp_15 temp_current_f
attr tuya_local_bfec383767ff712495fogf group tuya
attr tuya_local_bfec383767ff712495fogf localkey Zg>JQ7(e3*hTO/T$
attr tuya_local_bfec383767ff712495fogf room Bad
attr tuya_local_bfec383767ff712495fogf tuya_spec_functions [{'code': 'switch', 'dp_id': 1, 'type': 'Boolean', 'values': {}, 'desc': 'switch'}, {'code': 'temp_set', 'dp_id': 2, 'type': 'Integer', 'values': {'unit': '℃', 'min': 0, 'max': 40, 'scale': 0, 'step': 1}, 'desc': 'temp set'}, {'code': 'mode', 'dp_id': 4, 'type': 'Enum', 'values': {'range': ['smart', 'auto']}, 'desc': 'mode'}, {'code': 'temp_unit_convert', 'dp_id': 13, 'type': 'Enum', 'values': {'range': ['c', 'f']}, 'desc': 'temp unit convert'}, {'code': 'temp_set_f', 'dp_id': 14, 'type': 'Integer', 'values': {'unit': '℉', 'min': 32, 'max': 104, 'scale': 0, 'step': 1}, 'desc': 'temp set f'}]
attr tuya_local_bfec383767ff712495fogf tuya_spec_status [{'code': 'switch', 'dp_id': 1, 'type': 'Boolean', 'values': {}}, {'code': 'temp_set', 'dp_id': 2, 'type': 'Integer', 'values': {'unit': '℃', 'min': 0, 'max': 40, 'scale': 0, 'step': 1}}, {'code': 'temp_current', 'dp_id': 3, 'type': 'Integer', 'values': {'unit': '℃', 'min': -20, 'max': 50, 'scale': 0, 'step': 1}}, {'code': 'mode', 'dp_id': 4, 'type': 'Enum', 'values': {'range': ['smart', 'auto']}}, {'code': 'work_state', 'dp_id': 11, 'type': 'Enum', 'values': {'range': ['heating']}}, {'code': 'temp_unit_convert', 'dp_id': 13, 'type': 'Enum', 'values': {'range': ['c', 'f']}}, {'code': 'temp_set_f', 'dp_id': 14, 'type': 'Integer', 'values': {'unit': '℉', 'min': 32, 'max': 104, 'scale': 0, 'step': 1}}, {'code': 'temp_current_f', 'dp_id': 15, 'type': 'Integer', 'values': {'unit': '℉', 'min': -4, 'max': 122, 'scale': 0, 'step': 1}}]
#   DEF        tuya j4vyknploaq0d4le bfec383767ff712495fogf 192.168.1.32 3.3 5qxh3995wv8rjyjaxvjv d99db9832ce44712a4c1ac96c29d6064
#   DEVICEID   bfec383767ff712495fogf
#   FHEMPYTYPE tuya
#   FUUID      654e727f-f33f-e448-9612-b548d809180db451
#   IODev      fhempy_local
#   NAME       tuya_local_bfec383767ff712495fogf
#   NR         859
#   PYTHONTYPE tuya
#   STATE      on
#   TYPE       fhempy
#   eventCount 5
#   READINGS:
#     2023-11-10 19:38:15   active_time     1699470849
#     2023-11-10 19:38:15   biz_type        0
#     2023-11-10 19:38:15   category        qn
#     2023-11-10 19:38:15   create_time     1699470849
#     2023-11-10 19:38:15   icon            smart/icon/bay1596699296893crlt/7b2222651dc865f7506bc335c072f7c1.png
#     2023-11-10 19:38:15   id              bfec383767ff712495fogf
#     2023-11-10 19:38:15   ip              91.49.232.154
#     2023-11-10 19:38:15   lat             51.5000
#     2023-11-10 19:38:15   local_key       Zg>JQ7(e3*hTO/T$
#     2023-11-10 19:38:15   lon             6.8200
#     2023-12-24 13:08:51   mode            auto
#     2023-11-10 19:38:15   name            Heidenfeld
#     2024-01-18 09:53:52   online          1
#     2023-11-10 19:38:15   owner_id        171582057
#     2023-11-10 19:38:15   product_id      j4vyknploaq0d4le
#     2023-11-10 19:38:15   product_name    Heidenfeld
#     2024-01-18 09:53:58   state           on
#     2023-11-10 19:38:15   sub             0
#     2023-11-24 17:32:08   switch          on
#     2024-01-17 09:51:01   temp_current    19.0
#     2024-01-17 05:08:38   temp_set        23.0
#     2023-11-10 19:38:15   time_zone       +01:00
#     2023-11-10 19:38:15   uid             eu1699470187833nU6g3
#     2023-11-10 19:38:15   update_time     1699632122
#     2023-11-10 19:38:15   uuid            edf414759421fc3a
#     2024-01-17 19:42:39   work_state      standby
#   args:
#     tuya_local_bfec383767ff712495fogf
#     fhempy
#     tuya
#     j4vyknploaq0d4le
#     bfec383767ff712495fogf
#     192.168.1.32
#     3.3
#     5qxh3995wv8rjyjaxvjv
#     d99db9832ce44712a4c1ac96c29d6064
#   argsh:
#
setstate tuya_local_bfec383767ff712495fogf on
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 active_time 1699470849
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 biz_type 0
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 category qn
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 create_time 1699470849
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 icon smart/icon/bay1596699296893crlt/7b2222651dc865f7506bc335c072f7c1.png
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 id bfec383767ff712495fogf
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 ip 91.49.232.154
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 lat 51.5000
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 local_key Zg>JQ7(e3*hTO/T$
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 lon 6.8200
setstate tuya_local_bfec383767ff712495fogf 2023-12-24 13:08:51 mode auto
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 name Heidenfeld
setstate tuya_local_bfec383767ff712495fogf 2024-01-18 09:53:52 online 1
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 owner_id 171582057
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 product_id j4vyknploaq0d4le
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 product_name Heidenfeld
setstate tuya_local_bfec383767ff712495fogf 2024-01-18 09:53:58 state on
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 sub 0
setstate tuya_local_bfec383767ff712495fogf 2023-11-24 17:32:08 switch on
setstate tuya_local_bfec383767ff712495fogf 2024-01-17 09:51:01 temp_current 19.0
setstate tuya_local_bfec383767ff712495fogf 2024-01-17 05:08:38 temp_set 23.0
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 time_zone +01:00
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 uid eu1699470187833nU6g3
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 update_time 1699632122
setstate tuya_local_bfec383767ff712495fogf 2023-11-10 19:38:15 uuid edf414759421fc3a
setstate tuya_local_bfec383767ff712495fogf 2024-01-17 19:42:39 work_state standby


Thermostat:
define Bad_Infrarot_Thermostat MQTT2_DEVICE zigbee_Bad_Infrarot_Thermostat
attr Bad_Infrarot_Thermostat userattr weekprofile
attr Bad_Infrarot_Thermostat comment For use with weekprofile, additional configuration is needed
attr Bad_Infrarot_Thermostat devStateIcon LOCKED:secur_lock:btnLock+UNLOCK UNLOCKED:secur_open:btnLock+LOCK
attr Bad_Infrarot_Thermostat devicetopic zigbee2mqtt/Bad_Infrarot_Thermostat
attr Bad_Infrarot_Thermostat genericDeviceType thermostat
attr Bad_Infrarot_Thermostat getList desired-temp:noArg desired-temp $DEVICETOPIC/get {"current_heating_setpoint": ""}\
  temperature:noArg temperature $DEVICETOPIC/get {"local_temperature": ""}\
  preset:noArg preset $DEVICETOPIC/get {"preset": ""}
attr Bad_Infrarot_Thermostat icon temp_control
attr Bad_Infrarot_Thermostat jsonMap current_heating_setpoint:desired-temp local_temperature:temperature Battery:batteryPercent system_mode:mode battery:batteryPercent voltage:batterymV
attr Bad_Infrarot_Thermostat model zigbee2mqtt_thermostat_with_weekrofile
attr Bad_Infrarot_Thermostat periodicCmd temperature:55
attr Bad_Infrarot_Thermostat readingList $DEVICETOPIC:.* { my %h;; my $temp = $EVENT;; $temp =~ s/,?("(holidays|workdays)":.([^]]+))./$h{$2}=$3/ge;; $EVENT =~ s/,?("(holidays|workdays)":.([^]]+)).//g;; my $h2 = json2nameValue($EVENT,'',$JSONMAP);; %h = (%h,%$h2);; \%h }
attr Bad_Infrarot_Thermostat room Bad
attr Bad_Infrarot_Thermostat setList desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
  btnLock:LOCK,UNLOCK $DEVICETOPIC/set {"child_lock": "$EVTPART1"}\
  preset:schedule,manual,boost,complex,comfort,eco $DEVICETOPIC/set {"preset": "$EVTPART1"}\
  mode:heat,auto,off $DEVICETOPIC/set {"system_mode": "$EVTPART1"}\
  holidays $DEVICETOPIC/set/schedule { "holidays":[$EVTPART1] }\
  workdays $DEVICETOPIC/set/schedule { "workdays":[$EVTPART1] }\
  week:5+2,6+1,7 $DEVICETOPIC/set $EVTPART1\
  weekprofile { FHEM::attrT_z2m_thermostat_Utils::z2t_send_weekprofile($NAME, $EVTPART1, $EVTPART2) }\
  x_send_set_payload:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //;; qq($DEVICETOPIC/set $payload)}
attr Bad_Infrarot_Thermostat setStateList on off
attr Bad_Infrarot_Thermostat stateFormat btnLock\
Measured: temperature Battery: batteryPercent %
attr Bad_Infrarot_Thermostat userReadings batteryState:battery_low.* {ReadingsVal($name,'battery_low','false') eq 'false'?'ok':'low'}, batteryVoltage:batterymV.* {ReadingsNum($name,'batterymV',0)/1000}
attr Bad_Infrarot_Thermostat webCmd desired-temp
attr Bad_Infrarot_Thermostat weekprofile MQTT2_zigbee_Bad_Infrarot_Thermostat
attr Bad_Infrarot_Thermostat widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
#   CID        zigbee_Bad_Infrarot_Thermostat
#   DEF        zigbee_Bad_Infrarot_Thermostat
#   FUUID      65576b57-f33f-e448-91df-bbf43681ae51d692
#   IODev      MQTT2_FHEM_Server
#   NAME       Bad_Infrarot_Thermostat
#   NR         860
#   STATE      btnLock
#Measured: 18.4 Battery: batteryPercent %
#   TYPE       MQTT2_DEVICE
#   periodicCounter 8
#   JSONMAP:
#     Battery    batteryPercent
#     battery    batteryPercent
#     current_heating_setpoint desired-temp
#     local_temperature temperature
#     system_mode mode
#     voltage    batterymV
#   READINGS:
#     2024-01-18 09:53:37   IODev           MQTT2_FHEM_Server
#     2023-11-17 14:32:07   associatedWith  MQTT2_zigbee_bridge
#     2023-11-17 14:32:55   attrTemplateVersion 20220110
#     2023-11-24 17:32:05   desired-temp    23
#     2023-11-17 14:38:43   linkquality     55
#     2023-11-24 17:32:05   mode            off
#     2023-11-24 17:32:05   preset          manual
#     2023-11-24 17:32:05   running_state   idle
#     2023-11-24 17:32:05   temperature     18.4
#
setstate Bad_Infrarot_Thermostat btnLock\
Measured: 18.4 Battery: batteryPercent %
setstate Bad_Infrarot_Thermostat 2024-01-18 09:53:37 IODev MQTT2_FHEM_Server
setstate Bad_Infrarot_Thermostat 2023-11-17 14:32:07 associatedWith MQTT2_zigbee_bridge
setstate Bad_Infrarot_Thermostat 2023-11-17 14:32:55 attrTemplateVersion 20220110
setstate Bad_Infrarot_Thermostat 2023-11-24 17:32:05 desired-temp 23
setstate Bad_Infrarot_Thermostat 2023-11-17 14:38:43 linkquality 55
setstate Bad_Infrarot_Thermostat 2023-11-24 17:32:05 mode off
setstate Bad_Infrarot_Thermostat 2023-11-24 17:32:05 preset manual
setstate Bad_Infrarot_Thermostat 2023-11-24 17:32:05 running_state idle
setstate Bad_Infrarot_Thermostat 2023-11-24 17:32:05 temperature 18.4


MDietrich

Hallo,
ich verstehe es so, dass du das Reading "temp_current" der Heizung mit dem Wert aus "temperature" aus dem Thermostat setzen willst, richtig?

Würde ich zunächst mit einem DOIF probiere.

Gruß,
Matthias
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

Icinger

Wenn dem
Zitatich verstehe es so, dass du das Reading "temp_current" der Heizung mit dem Wert aus "temperature" aus dem Thermostat setzen willst, richtig?
wirklich so ist, ist das doch ganz einfach:

Hast du eine MQTT_GENERIC_BRIDGE defniert?
Falls nicht:
defmod mq2_GenericBridge MQTT_GENERIC_BRIDGE
Dann hast du in jedem Device die Möglichkeit, mittels
attr xxx mqttSubscribeTopics zu abonnieren.

In diesem Fall also einfach das temperature-Topic im Tuya-Device subscriben und fertig ist die Sache.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Snocksman

Zitat von: MDietrich am 18 Januar 2024, 11:16:30ich verstehe es so, dass du das Reading "temp_current" der Heizung mit dem Wert aus "temperature" aus dem Thermostat setzen willst, richtig?
Jepp, das ist genau was ich tun möchte...

Zitat von: Icinger am 18 Januar 2024, 11:36:35In diesem Fall also einfach das temperature-Topic im Tuya-Device subscriben und fertig ist die Sache.
Hört sich gut an, aber da brauche ich wahrscheinlich drei Infos mehr...

Das MQTT Generic Device habe ich definiert... Im Infrarotheizung Device kann ich unter Attrib jetzt auch mqttSubscribe auswählen, aber was muss ich dann dahinter in das Eingabefelt eintragen ?

Icinger

Das kommt ganz drauf an, was dein Sensor alles liefert, aber nachdem zigbee2mqtt eigentlich eh immer gleich aufgebaut ist, würde ich mal sagen:

attr tuya_local_bfec383767ff712495fogf mqttSubscribe zigbee2mqtt/Bad_Infrarot_Thermostat:.* { json2nameValue($EVENT,"",$JSONMAP,"local_temperature")}
attr tuya_local_bfec383767ff712495fogf jsonMap local_temperature:temperature

Das erste Attr abonniert den Thermostat und filtert (-> 4. Argument) nur den Wert von "local_temperature" heraus.
Das jsonMap danach ändert den Namen des Readings von "local_temperature" rein auf "temperature" um.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

betateilchen

Zitat von: MDietrich am 18 Januar 2024, 11:16:30Würde ich zunächst mit einem DOIF probiere.

Man muss nicht jeden Pups mit einem DOIF machen.
Oft gibt es viel einfachere und logischere Lösungen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Kann man die Heizung nicht einfach durch ein- und ausschalten steuern?

Dann gäbe es noch einen völlig anderen und einfachen Ansatz:

Die elektrische Heizung und den Thermostaten komplett über ein PID20 device verbinden.
Der Thermostat ist der "Sensor" und die Heizung ist der "Aktor".
Die "Regelung" - in diesem Fall das Schalten der Heizung - übernimmt der PID.

So steuere ich hier die Fußbodenheizungsventile in den Räumen meiner Wohnung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MDietrich

ZitatMan muss nicht jeden Pups mit einem DOIF machen.
Oft gibt es viel einfachere und logischere Lösungen.
Ein Lösungsvorschlag wäre hier hilfreich, was spricht gegen ein DOIF?
Gruß,
Matthias
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

betateilchen

Zitat von: MDietrich am 18 Januar 2024, 17:54:49Ein Lösungsvorschlag wäre hier hilfreich, was spricht gegen ein DOIF?

Den einfachsten Lösungsvorschlag hat doch Stefan oben schon gemacht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Snocksman

Zitat von: Icinger am 18 Januar 2024, 15:57:37attr tuya_local_bfec383767ff712495fogf mqttSubscribe zigbee2mqtt/Bad_Infrarot_Thermostat:.* { json2nameValue($EVENT,"",$JSONMAP,"local_temperature")}
attr tuya_local_bfec383767ff712495fogf jsonMap local_temperature:temperature

Das erste Attr abonniert den Thermostat und filtert (-> 4. Argument) nur den Wert von "local_temperature" heraus.
Das jsonMap danach ändert den Namen des Readings von "local_temperature" rein auf "temperature" um.
Das werde ich auprobieren... Kämpfe nur gerade ein wenig mit meiner Installation. Ich wollte Zigbee2MQTT updaten, was mal so überhaupt nicht wollte. Mittlerweile weiß ich glaube ich woran es liegt... Ich habe meine Installation schon lange nicht mehr aktualisiert; die lief noch auf Buster. Jetzt ziehe ich das ganze erstmal nach Bullseye hoch und update Zigbee2MQTT. Danach wende ich mich wieder der Infrarotheizung zu.

Zitat von: betateilchen am 18 Januar 2024, 17:53:02Kann man die Heizung nicht einfach durch ein- und ausschalten steuern?
Generell ja, das Problem ist nur, dass die Infrarotheizung eine Interne Steuerung hat, in der der letzte vom Temperatursensor übertragene Wert gespeichert ist. Ist dieser Wert 23°C und ich schalte die Heizung ein, bleibt sie aus, da die Solltemperatur ja schon erreicht ist. Deswegen möchte ich diesen Wert mit dem Temperaturwert des Thermostats überschreiben.

betateilchen

Zitat von: Snocksman am 20 Januar 2024, 00:04:44Generell ja, das Problem  ist nur, dass die Infrarotheizung eine Interne Steuerung hat, in der der letzte vom Temperatursensor übertragene Wert gespeichert ist. Ist dieser Wert 23°C und ich schalte die Heizung ein, bleibt sie aus, da die Solltemperatur ja schon erreicht ist.

Naja, die einfachste Variante, das zu umgehen, wäre dann wohl, den Wert in der Heizung einmalig auf die höchstmögliche Solltemperatur zu setzen und danach nicht mehr zu verändern. 8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Snocksman

Zitat von: Icinger am 18 Januar 2024, 15:57:37Das jsonMap danach ändert den Namen des Readings von "local_temperature" rein auf "temperature" um.
Nachdem ich meine FHEM-Installation auf den akuellen stand gebracht habe, wollte ich das ganze dann gerade mal ausprobieren... Das mqttSubscribe funktioniert, aber ich kann in den Attribs der Infrarotheizung jsonMap nicht auswählen... Ich habe die Option einfach nicht zur Auswahl.

Icinger

Ahhh, sorry, mein Fehler. jsonMap gibts ja nur in MQTT2-Devices.

Mit der Bridge müsste das so gehen:
attr <dev> mqttAlias sub:temperature=local_temperature
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Beta-User

Zitat von: Icinger am 21 Januar 2024, 20:35:02Ahhh, sorry, mein Fehler. jsonMap gibts ja nur in MQTT2-Devices.

Mit der Bridge müsste das so gehen:
attr <dev> mqttAlias sub:temperature=local_temperature
War schon fast OK, man muss vermutlich nur die Umbenennung direkt als Hash über geben. Oder eben direkt den gesuchten Wert aus dem JSON picken.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Snocksman

#14
Nach ettlichem rumprobieren hatte ich es jetzt doch erstmal mit einem DOIF probiert... Läuft aber auch nicht... (Hab bestimmt noch nen Fehler drin)

Ich habe als erstes mal den Temperaturfühler für ne halbe Stunde draußen auf den Terassentisch gelegt und dann kurz eine frische Batterie eingelegt. Ergebnis: In der Infrarotheizung ist jetzt der Wert 5°C gespeichert. Wenn ich sie jetzt einschalte spring sie sofort an.

Hier mal die beiden DOIFs, die leider nicht funktionieren...

define Infrarotheizung_an DOIF  ([Bad_Infrarot_Thermostat:temperature] < [Bad_Infrarot_Thermostat:desired_temp] and [Bad_Infrarot_Thermostat:mode] eq "heat") (set tuya_local_bfec383767ff712495fogf on)

define Infrarotheizung_aus DOIF ([Bad_Infrarot_Thermostat:temperature] > [Bad_Infrarot_Thermostat:desired_temp] and [Bad_Infrarot_Thermostat:mode] eq "heat") (set tuya_local_bfec383767ff712495fogf off)

Mit set tuya_local_bfec383767ff712495fogf on kann ich die Infrarotheizung problemlos einschalten, nur über das DOIF funktioniert es leider nicht...

Was noch nett wäre, wenn man den Wert [Bad_Infrarot_Thermostat:desired_temp] für die DOIF Steuerung nicht "genau nehmen" könnte also quasi [Bad_Infrarot_Thermostat:desired_temp] + 1 bzw [Bad_Infrarot_Thermostat:desired_temp] -1... Das müsste doch gehen, oder ?

Ich habe es gerade auch so nochmal probiert, funktioniert aber leider auch nicht...
define Infrarotheizung_an DOIF  (([Bad_Infrarot_Thermostat:temperature] < [Bad_Infrarot_Thermostat:desired_temp]) and ([Bad_Infrarot_Thermostat:mode] eq "heat")) (set tuya_local_bfec383767ff712495fogf on)

define Infrarotheizung_aus DOIF (([Bad_Infrarot_Thermostat:temperature] > [Bad_Infrarot_Thermostat:desired_temp]) and ([Bad_Infrarot_Thermostat:mode] eq "heat")) (set tuya_local_bfec383767ff712495fogf off)

Edit: Mir ist gerade noch aufgefallen, dass ich in dem DOIF eine Warnung angezeigt bekomme: warning condition c01: Argument "" isn't numeric in numeric lt (<)