FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Master_Nick am 16 Februar 2018, 01:08:08

Titel: [gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: Master_Nick am 16 Februar 2018, 01:08:08
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  ::)
Titel: Antw:MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag 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
Titel: Antw:MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: Master_Nick am 16 Februar 2018, 12:20:33
 :) 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
Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: hexenmeister am 16 Februar 2018, 12:29:19
Commandref ist Dein Freund ;)
Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: Master_Nick am 16 Februar 2018, 12:31:57
 ??? 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.
Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: hexenmeister am 16 Februar 2018, 12:34:52
ähm... Mein Fehler. Vergiss dieses Attribut, ist ein Teil meiner Testinstallation und hat hier keine Relevanz.
Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: Master_Nick am 16 Februar 2018, 12:35:38
 8) ;) Danke!
Titel: Antw:MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: fabse am 16 Februar 2018, 16:56:56
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
Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: Master_Nick am 16 Februar 2018, 17:14:33
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
Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: hexenmeister am 18 Februar 2018, 11:54:21
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

Titel: Antw:[gelöst - war falsch] MQTT Device: publishSet festverdrahtet mit "on" "off"
Beitrag von: Master_Nick am 18 Februar 2018, 12:52:17
Uhh ich teste :-)
Danke!

Aber ganz schön aufwändig für jedes MQTT Device so etwas auch noch anzulegen  ::)