Hallo,
ich bitte um Nachsicht, falls das alles 08/15 ist, aber ich bin erst kurze Zeit dabei :)
Folgende Situation:
Klimaanlage kann nur mit Infrarot gesteuert werden. Also habe ich ein Tasmota_IR Gerät besorgt und mit MQTT verbunden (MQTT2_Device). Das klappt eigentlich ganz gut. Allerdings bekomme ich nur ein "AN"/"AUS" hin. Ich möchte aber gern die Temperatur via Alexa einstellen können.
Setlist vom MQTT2_Tasmota sieht so aus:
IRhvac:textField cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":$EVTPART1,"Mode":"$EVTPART2","FanSpeed":"$EVTPART3","Temp":"$EVTPART4"}
on cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":ON,"Mode":"COOL","FanSpeed":"AUTO","Temp":"25"}
off cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":OFF,"Mode":"COOL","FanSpeed":"3","Temp":"25"}
Ich kann also per
IRhvac On Cool 3 22
die Klimaanlage einschalten. Und on/off funktioniert per Alexa auch schon.
Der genericDeviceType steht noch auf "switch". Denke mal der muss auf "thermostat", oder? Was trage ich bei setlist ein, damit ich die Temperatur per Alexa übermitteln kann, wenn der Typ auf Thermostat steht? Ich möchte ja quasi mit einem IR Befehl gleichzeitig "ON" und die entsprechende Temperatur senden.
Oder geht das ganz anders?
:) Alles, was mit solchen speziellen Sachen wie IR zu tun hat, ist eigentlich selten 08/15, keine Sorge, und auch Klimageräte über MQTT2-Device sind jetzt noch nicht so häufig hier anzutreffen...
Ein komplettes (RAW-)list wäre trotzdem nicht verkehrt gewesen.
Habe zwar keine Erfahrung mit diesem konkreten Gerät, würde aber empfehlen, tatsächlich mal mit "thermostat" als genericDeviceType ins Rennen zu gehen, und den setter "desired-temp" zu nennen (Details dazu hatte ich mal versucht, beim ems-esp-attrTemplate zu erläutern). Dann käme in etwa folgendes raus (zur Eingabe in das Attributfeld):
IRhvac:textField cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":$EVTPART1,"Mode":"$EVTPART2","FanSpeed":"$EVTPART3","Temp":"$EVTPART4"}
on:noArg cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":ON,"Mode":"COOL","FanSpeed":"AUTO","Temp":"25"}
off:noArg cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":OFF,"Mode":"COOL","FanSpeed":"3","Temp":"25"}
desired-temp:slider,15.0,0.5,30.0,1 cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":ON,"Mode":"COOL","FanSpeed":"AUTO","Temp":"$EVTPART1"}
Intuitiv hätte ich das genau so probiert - geht aber leider nicht.
Hier mal ein List:
Internals:
CID Tasmota
DEF Tasmota
DEVICETOPIC MQTT2_Tasmota
FUUID 5f156962-f33f-5d36-c53d-deeb57bfedb52d88
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_MSGCNT 86
MQTT2_FHEM_Server_TIME 2020-07-20 16:42:58
MSGCNT 86
NAME MQTT2_Tasmota
NR 200
STATE on
<br>
<a href="http://192.168.1.89" target="_blank">192.168.1.89</a>
TYPE MQTT2_DEVICE
READINGS:
2020-07-20 16:34:37 Command Error
2020-07-20 11:52:34 FallbackTopic cmnd/Tasmota_fb/
2020-07-20 11:52:34 GroupTopic cmnd/tasmotas/
2020-07-20 16:42:58 Heap 24
2020-07-20 11:52:34 Hostname Tasmota
2020-07-20 11:52:34 IPAddress 192.168.1.89
2020-07-20 15:26:46 IRHVAC_Beep Off
2020-07-20 15:26:46 IRHVAC_Celsius On
2020-07-20 15:26:46 IRHVAC_Clean Off
2020-07-20 15:26:46 IRHVAC_Econo Off
2020-07-20 15:26:46 IRHVAC_FanSpeed Auto
2020-07-20 15:26:46 IRHVAC_Filter Off
2020-07-20 15:26:46 IRHVAC_Light Off
2020-07-20 15:26:46 IRHVAC_Mode Cool
2020-07-20 15:26:46 IRHVAC_Model 1
2020-07-20 15:26:46 IRHVAC_Power On
2020-07-20 15:26:46 IRHVAC_Quiet Off
2020-07-20 15:26:46 IRHVAC_Sleep -1
2020-07-20 15:26:46 IRHVAC_SwingH Off
2020-07-20 15:26:46 IRHVAC_SwingV Off
2020-07-20 15:26:46 IRHVAC_Temp 25
2020-07-20 15:26:46 IRHVAC_Turbo Off
2020-07-20 15:26:46 IRHVAC_Vendor PANASONIC_AC
2020-07-20 12:06:21 IRSend Invalid JSON
2020-07-20 16:32:52 IrReceived_Bits 17
2020-07-20 16:19:45 IrReceived_Data 0x0x0220E004000000060220E00400393080A100000EE0000089000007
2020-07-20 11:54:39 IrReceived_DataLSB 0x06208
2020-07-20 16:32:52 IrReceived_Hash 0x0ADD307D
2020-07-20 16:19:45 IrReceived_IRHVAC_Beep Off
2020-07-20 16:19:45 IrReceived_IRHVAC_Celsius On
2020-07-20 16:19:45 IrReceived_IRHVAC_Clean Off
2020-07-20 16:19:45 IrReceived_IRHVAC_Econo Off
2020-07-20 16:19:45 IrReceived_IRHVAC_FanSpeed Auto
2020-07-20 16:19:45 IrReceived_IRHVAC_Filter Off
2020-07-20 16:19:45 IrReceived_IRHVAC_Light Off
2020-07-20 16:19:45 IrReceived_IRHVAC_Mode Cool
2020-07-20 16:19:45 IrReceived_IRHVAC_Model 6
2020-07-20 16:19:45 IrReceived_IRHVAC_Power On
2020-07-20 16:19:45 IrReceived_IRHVAC_Quiet Off
2020-07-20 16:19:45 IrReceived_IRHVAC_Sleep -1
2020-07-20 16:19:45 IrReceived_IRHVAC_SwingH Auto
2020-07-20 16:19:45 IrReceived_IRHVAC_SwingV Highest
2020-07-20 16:19:45 IrReceived_IRHVAC_Temp 24
2020-07-20 16:19:45 IrReceived_IRHVAC_Turbo Off
2020-07-20 16:19:45 IrReceived_IRHVAC_Vendor PANASONIC_AC
2020-07-20 16:32:52 IrReceived_Protocol UNKNOWN
2020-07-20 16:32:52 IrReceived_Repeat 0
2020-07-20 13:55:12 LOGGING 12:55:11 HTP: Configure Logging
2020-07-20 15:10:53 LWT Online
2020-07-20 16:42:58 LoadAvg 19
2020-07-20 11:52:34 Module A1 IR Bridge
2020-07-20 16:42:58 MqttCount 3
2020-07-20 15:10:53 POWER
2020-07-20 16:32:51 RC6_1 0x00000000
2020-07-20 16:32:53 RC6_12 0x046
2020-07-20 16:32:53 RC6_20 0x14611
2020-07-20 16:19:54 RC6_26 0x32014A4
2020-07-20 16:19:55 RC6_36 0xC8052105A
2020-07-20 16:19:58 RC6_6 0x32
2020-07-20 16:32:51 RC6_8 0x14
2020-07-20 11:52:34 RestartReason Software/System restart
2020-07-20 16:33:59 SaveData on
2020-07-20 16:33:59 SetOption26 on
2020-07-20 16:42:58 Sleep 50
2020-07-20 16:42:58 SleepMode Dynamic
2020-07-20 16:33:58 StateText1 off
2020-07-20 16:33:58 StateText2 on
2020-07-20 16:33:58 StateText3 toggle
2020-07-20 16:33:58 StateText4 hold
2020-07-20 16:42:58 Time 2020-07-20T15:42:58
2020-07-20 16:42:58 Uptime 0T04:50:29
2020-07-20 16:42:58 UptimeSec 17429
2020-07-20 11:52:34 Version 8.3.1(ir)
2020-07-20 11:52:34 WebServerMode Admin
2020-07-20 16:42:58 Wifi_AP 1
2020-07-20 16:42:58 Wifi_BSSId 34:31:C4:35:BA:80
2020-07-20 16:42:58 Wifi_Channel 6
2020-07-20 16:42:58 Wifi_Downtime 0T00:00:04
2020-07-20 16:42:58 Wifi_LinkCount 2
2020-07-20 16:42:58 Wifi_RSSI 58
2020-07-20 16:42:58 Wifi_SSId Garage
2020-07-20 16:42:58 Wifi_Signal -71
2020-07-20 12:05:12 attrTemplateVersion 20200522 or prior
2020-07-20 15:26:45 state on
2020-07-20 16:26:42 subscriptions cmnd/Tasmota_fb/# cmnd/tasmota/# cmnd/tasmotas/#
Attributes:
IODev MQTT2_FHEM_Server
alexaName Klima
alias Klima
event-on-change-reading .*
genericDeviceType thermostat
icon IR
model tasmota_ir
readingList tele/tasmota/INFO.:.* { json2nameValue($EVENT) }
tele/tasmota/RESULT:.* { $EVENT =~ m,..IrReceived....Protocol...([A-Za-z0-9]+)...Bits..([\d]+)..Data...([A-Za-z0-9]+)..., ? {"$1_$2"=>$3} : json2nameValue($EVENT) }
Tasmota:stat/tasmota/RESULT:.* { json2nameValue($EVENT) }
Tasmota:tele/tasmota/STATE:.* { json2nameValue($EVENT) }
Tasmota:stat/tasmota/LOGGING:.* LOGGING
Tasmota:tele/tasmota/LWT:.* LWT
Tasmota:cmnd/tasmota/POWER:.* POWER
room 2.3_Wohnzimmer,MQTT2_DEVICE
setList IRhvac:textField cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":$EVTPART1,"Mode":"$EVTPART2","FanSpeed":"$EVTPART3","Temp":"$EVTPART4"}
on cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":ON,"Mode":"COOL","FanSpeed":"AUTO","Temp":"25"}
off cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":OFF,"Mode":"COOL","FanSpeed":"3","Temp":"25"}
desired-temp:slider,15.0,0.5,30.0,1 cmnd/tasmota/IRHVAC {"Vendor":"PANASONIC_AC","Power":ON,"Mode":"COOL","FanSpeed":"AUTO","Temp":"$EVTPART1"}
stateFormat state
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
In der Alexa App wird es als Thermostat erkannt - aber es kommt "Ein Problem ist aufgetreten". Im Alexa Log sehe ich nur, dass das Device erkannt wurde. Die Temperaturauswahl in der Alexa App ist ausgegraut. Braucht Alexa wohl auch die aktuelle Temperatur, damit man diese in der App ändern kann? Die kann mir die Klimaanlage ja nicht liefern. Wenn ja, würde ich da immer fest 23° hinterlegen. Geht das irgendwie?
PS: über den Slider kann ich die Ziel-Temp schon steuern. Das geht wie erwartet. Scheint also "nur noch" ein pures Alexa Problem zu sein...
Vorab: über das "tasmota" als Kenner/Gerätebezeichnung solltest du nochmal nachdenken, und zu altexa kann ich eigentlich nicht viel sagen, ich nutze das nicht (ggf. (selbst) verschieben?)...
Kann schon sein, dass alexa auch den aktuellen Wert braucht - warum auch immer, oder dass sie mit desired-temp nichts anfangen kann (glaube ich nicht, wäre aber eher im entsprechenden Forumbereich in Erfahrung zu bringen).
Um den "aktuellen" Wert zu bekommen, würde ich jetzt mal ein jsonMap anlegen, dann sollte da auch was "standardkonformes" stehen (ob sinnig, ist eine andere Frage):
attr MQTT2_Tasmota jsonMap IrReceived_IRHVAC_Temp:measured-temp
Auch mit jsonMap ist das Verhalten immernoch dasselbe: Die Alexa App, versucht offensichtlich kurz die Temperatur zu lesen und springt dann auf Fehler, weil sie es anscheinend nicht kann.
Vielleicht mit setreading oder dem Schieberegler vorab mal einen Initial-Wert setzen?
Das bringt nix. Ich denke mal ich müsste so ein homebridgeMapping anlegen. Aber ich verstehe anhand der Doku nicht, was ich da in meinem Fall setzen müsste, um z.B. CurrentTemperature ststisch auf "24" oder IrReceived_IRHVAC_Temp zu setzen.
Setze ich das Mapping auf
CurrentTemperature=IrReceived_IRHVAC_Temp
verhält sich die App anders: Sie sagt "Warten auf FHEMMQQT2_DEVICE...".
PS: HA! Mit
CurrentTemperature=IrReceived_IRHVAC_Temp
TargetTemperature=IrReceived_IRHVAC_Temp
geht es bedingt: ich bekomme immer 16°C gesendet - egal was ich auswähle.
Und jetzt habe ich noch das nächste Problem: Ich kann die Anlage jetzt nicht mehr ausschalten, weil ein Thermostat offensichtlich nur die Temperatur einstellen kann und "An/Aus" gar nicht kennt. Hat jemand eine Idee? Muss ich da irgendwie ein zweites Gerät anlegen?
werte für readings vorgeben die es nicht gibt geht mit ...,default=<wert> im mapping.
aber du kannst du auch einfach ein mal mit setreading ein reading mit passendem wert anlegen und dann im mapping verwenden.