Moin 8)
Ich hatte mich gerade gefreut über die setExtension von ThoTo und stellte dann fest - ui so geht es bei mir nicht.
Ich nutzte eine eventmap um meine schaltbefehle korrekt übetragen zu können. Nun merkte ich das ist keine Lösung. Und befasste mich nochmal mit dem publishSet.
Im Wiki ist es wie folgt dargestellt:
attr Sonoff_Switch publishSet ON OFF cmnd/TestSwitch/POWER
Ich ging durch den Aufbau davon aus ON und OFF sind ersetzbar mit den Schaltbefehlen die man benötigt für seinen Anwendungsfall.
Ich nutze daher:
publishSet true false homeland/haushalt/elektrik/sonoff/sonoff-s20-4/outlet/on/set
Das bringt im Topic dann aber:
Zitathomeland/haushalt/elektrik/sonoff/sonoff-s20-4/outlet/on/set on
homeland/haushalt/elektrik/sonoff/sonoff-s20-4/outlet/on/set off
Und erwirkt daher keinerlei Schaltung, da ich mit Homie und Node-RED mit true und false arbeite.
Daher ging ich erst mal mit einer eventMap dran. Das bringt aber im Zusammenhang mit on-for-timer und toggle nichts.
Bug? Gewollt? Änderbar ;D ;) ?
Ich denke es müsste ja nur das was in dem attr steht auch als Befehl genommen werden und es fühlt sich dann irgendwie auch richtiger/flexibler an (ohkay ohkay für mich passend *g*).
Grüße ::)
Da ist nichts im publishSet 'festverdrahtet'. Was man da zusätzlich zum Topic angeben kann, beeinflusst lediglich das Verhalten von FHEM-UI. So kann man die Liste, die für 'set'-Befehl angeboten wird, definieren. FHEM-UI kann jedoch mit true/false anscheinend nichts anfangen, daher funktioniert Klick auf Icon und anderes so nicht. Aber genau dafür gibt es eventMap und webCmd. Das ganze ist bei allen Geräten so und hat mit MQTT nichts zu tun.
Beispiel für eine Konfiguration, wo die Oberfläche ein schaltbaren Icon anbietet und trotzdem true/false übertragen wird.
defmod MQ_TEST MQTT_DEVICE
attr MQ_TEST IODev mqtt
attr MQ_TEST devStateIcon off:light_light_dim_00@gray on:light_light_dim_100@yellow .*:hourglass
attr MQ_TEST eventMap true:on false:off
attr MQ_TEST publishSet true false /TEST/licht/set
attr MQ_TEST stateFormat state
attr MQ_TEST subscribeReading_state /TEST/licht/state
attr MQ_TEST webCmd on:off
EDIT: irrelevante Attribute entfernt
:) Okay :-)
Dann war meine Vermutung falsch - ist ja für mich ein Stück weit eine Blackbox.
Dann muss ich mal schauen wie was wo und dein Beispiel testen.
Danke dir ;D
Commandref ist Dein Freund ;)
??? Das "attr MQ_TEST mqttDeviceType switch" bietet er bei mir irgendwie nicht an.
unknown attribute mqttDeviceType. Type 'attr Sonoff_S20_1 ?' for a detailed list.
Ist das durch dein Addon hinzukommend oder bin ich trotz gestrigem update out of date? ::)
Auch nicht im Commandref.
*Edit genericDeviceType wäre machbar.
ähm... Mein Fehler. Vergiss dieses Attribut, ist ein Teil meiner Testinstallation und hat hier keine Relevanz.
8) ;) Danke!
Zitat von: hexenmeister am 16 Februar 2018, 11:41:50
Da ist nichts im publishSet 'festverdrahtet'. Was man da zusätzlich zum Topic angeben kann, beeinflusst lediglich das Verhalten von FHEM-UI. So kann man die Liste, die für 'set'-Befehl angeboten wird, definieren. FHEM-UI kann jedoch mit true/false anscheinend nichts anfangen, daher funktioniert Klick auf Icon und anderes so nicht. Aber genau dafür gibt es eventMap und webCmd. Das ganze ist bei allen Geräten so und hat mit MQTT nichts zu tun.
Beispiel für eine Konfiguration, wo die Oberfläche ein schaltbaren Icon anbietet und trotzdem true/false übertragen wird.
defmod MQ_TEST MQTT_DEVICE
attr MQ_TEST IODev mqtt
attr MQ_TEST devStateIcon off:light_light_dim_00@gray on:light_light_dim_100@yellow .*:hourglass
attr MQ_TEST eventMap true:on false:off
attr MQ_TEST publishSet true false /TEST/licht/set
attr MQ_TEST stateFormat state
attr MQ_TEST subscribeReading_state /TEST/licht/state
attr MQ_TEST webCmd on:off
EDIT: irrelevante Attribute entfernt
bei mir steht unter
attr MQ_TEST IODev mqtt
attr MQ_TEST IODev Mosquitto
Der ioDEV ist ja bei jedem anders - wenn der eine seinen MQTT Broker "Wurst" nennt dann stände da Wurst.
Input Output devive = der von dir definierte MQTT Broker
Ist zwar nicht die Lösung, die Du wolltest... Ich habe das Problem mit einem egenem Modul gelöst, das ich für ähnlihce Fälle verwende.
https://raw.githubusercontent.com/hexenmeister/MyFHEM/master/FHEM/98_dev_proxy.pm
MQ_TEST2 ist das Device, das die Werte auch überträgt, MQ_TESTPROXY ist ein Hilfskonstrukt, das zu Schalten genutzt wird, die Werte passend mappt und auch setExtensions unterstützt.
define MQ_TEST2 MQTT_DEVICE
attr MQ_TEST2 IODev mqtt
attr MQ_TEST2 eventMap true:on false:off
attr MQ_TEST2 publishSet true false /TEST2/licht/set
attr MQ_TEST2 room MQTT_TEST
attr MQ_TEST2 stateFormat state
attr MQ_TEST2 subscribeReading_state /TEST2/licht/state
attr MQ_TEST2 webCmd true:false
define MQ_TESTPROXY dev_proxy MQ_TEST2
attr MQ_TESTPROXY devStateIcon off:light_light_dim_00@gray on:light_light_dim_100@yellow .*:hourglass
attr MQ_TESTPROXY mapValues {'out:*:state'=>{'off'=>'false','on'=>'true'},'in:*:state'=>{'false'=>'off','true'=>'on'}}
attr MQ_TESTPROXY room MQTT_TEST
attr MQ_TESTPROXY setList on:noArg off:noArg
attr MQ_TESTPROXY stateFormat state
attr MQ_TESTPROXY useSetExtensions 1
attr MQ_TESTPROXY webCmd on:off:toggle
Uhh ich teste :-)
Danke!
Aber ganz schön aufwändig für jedes MQTT Device so etwas auch noch anzulegen ::)