Ich probiere ein HMCCUDEV device über MQTT zu steuern.
Leider kommt über MQTT ON/OFF (groß geschrieben) und das funktioniert nicht.
Folgendes funktioniert:
set HM_LC_Sw1PBU_FM_Licht on
set HM_LC_Sw1PBU_FM_Licht control on
Folgendes funktioniert nicht:
set HM_LC_Sw1PBU_FM_Licht ON
set HM_LC_Sw1PBU_FM_Licht control ON
Ich habe bereits mit substitute probiert:
substitute CONTROL!(true|1|ON):on,(false|0|OFF):off;;ON!ON:on;;OFF!OFF:off
Leider bringt das nichts. Ist substitute nicht das richtige? Kann ich attribute irgendwie anders transformieren von groß auf klein?
PS:
mqttPublish state:topic=home/light/licht/state
mqttSubscribe state:stopic=home/light/licht/set
(Wenn die die MQTT Messages manuell setze mit on/off (kleingeschrieben) funktioniert auch alles)
ZitatLeider kommt über MQTT ON/OFF (groß geschrieben)
den Teil solltest hier mal erklären. in fhem schreibt man "eigentlich" alles klein.
Hi,
attr eventMap wäre ein Standard FHEM Feature
Aber ich würde auch besser die Quelle ändern als überall das Ziel umzubiegen.
Gruß Otto
Zitat von: Otto123 am 27 April 2021, 12:10:46
attr eventMap wäre ein Standard FHEM Feature
Aber ich würde auch besser die Quelle ändern als überall das Ziel umzubiegen.
eventMap, das wars!
eventMap { usr=>{ 'ON' => 'on', 'OFF' => 'off'} }
Ich bin voll mit dir dass ich lieber sauber "on" schicken würde, anstatt "ON". Noch weiß ich leider nicht wie ich das mit Homeassistant bewerkstelligen kann - deswegen erstmal Workaround.
ich hatte nur an die einfache Variante gedacht:
eventMap on:ON off:OFF
Aber mit Deiner ist es weniger Eingriff. Ich bin mittlerweile sehr zögerlich mit eventMap, das führt manchmal zu undurchsichtigem Verhalten.
Du musst doch irgendeine MQTT Brücke haben? Dort einfach sowas wie lc($EVENT) in Richtung FHEM?
Ich verwende die `MQTT_GENERIC_BRIDGE` da kann ich auch transformieren? Extern verwende ich eclipse-mosquitto im Container wüsste da aber noch 0% wo ich da transformationen einbauen kann. Das sind wirklich die ersten Gehversuche mit MQTT.
"expression" (in mqttSubscribe) müsste dein Stichwort sein.
Ungetestet:
state:expression={$value="lc $value"}
<3 Super! Richtig gute Info, danke!
Ich hab mittlerweile auch herausgefunden dass ich in Homeassistant die MQTT Werte transformieren kann: https://www.home-assistant.io/integrations/switch.mqtt/
In der config:
"state_on": "on",
"state_off": "off",
"payload_on": "on",
"payload_off": "off"
Bisschen viel Text, aber besser als in FHEM irgendwelche Transformationen zu machen wenn es schon sauber ankommen kann.