FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: The-Holgi am 18 März 2018, 16:43:14

Titel: MQTT setList
Beitrag von: The-Holgi am 18 März 2018, 16:43:14
Hallo,
bastel gerade an einer Steuerung für WS2812B Lightstrip. Habe dazu auf einem Wemos D1 Mini das hier installiert:
https://github.com/toblum/McLighting .
Funktioniert soweit schon gut, ein paar Kleinigkeiten wie Colorpicker usw. fehlen noch.
Jetzt ist mir aufgefallen, das das attr setList beim mqtt_device fehlt, wollte damit die verschiedenen Effekte und die Helligkeit über drop down einstellen.
Hat da vielleicht jemand eine Idee zu?
Hier ein list vom device:

Internals:
   DEF        mclight
   IODev      MyBroker
   NAME       mclight1
   NOTIFYDEV  mclight
   NR         393
   STATE      OK off
   TYPE       MQTT_DEVICE
   READINGS:
     2018-03-18 16:27:29   state           OK =off
     2018-03-18 16:27:29   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      mclight/in
       values:
   sets:
               
   subscribe:
     mclight/out
   subscribeExpr:
     ^mclight\/out$
   subscribeReadings:
     mclight/out:
       cmd       
       name       state
Attributes:
   IODev      MyBroker
   event-on-change-reading .*
   eventMap   =off:off =rainbowCycle:Regenbogen =all:on =theaterchase:Theater
   icon       hue_filled_lightstrip
   publishSet mclight/in
   room       MQTT
   stateFormat state
   subscribeReading_state mclight/out
   webCmd     Regenbogen:Theater:*ff0000:*14ff00:*0000ff:*ffbf00:off:on


Gruß Holgi
Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 18 März 2018, 17:28:49
setList brauchst Du nicht, du kannst in dem publishSet die gewünschten Befehle mit angeben (s. https://fhem.de/commandref.html#MQTT_DEVICE).
Verwende jedoch Anführungszeichen für Parametern mit Doppelpunkt, nach der letzten Änderung wurde leider die parse-Methode ein wenig kaputtoptimiert.
Titel: Antw:MQTT setList
Beitrag von: The-Holgi am 18 März 2018, 19:40:39
Hm, das verstehe so nicht. Habe jetzt für Helligkeit, Speed und effect je ein dummy device mit setList angelegt.
Internals:
   NAME       McLight_effect
   NR         396
   STATE      wipe
   TYPE       dummy
   READINGS:
     2018-03-18 19:24:48   state           wipe
Attributes:
   event-on-change-reading .*
   group      McLighting
   room       MQTT
   setList    state:on,off,rainbowCycle,theaterchaseRainbow,rainbow,tv,wipe
   webCmd     state


Internals:
   NAME       McLight_Helligkeit
   NR         394
   STATE      150
   TYPE       dummy
   READINGS:
     2018-03-18 19:24:43   state           150
Attributes:
   event-on-change-reading .*
   group      McLighting
   room       MQTT
   setList    state:10,50,100,150,200,255
   webCmd     state

Internals:
   NAME       McLight_speed
   NR         399
   STATE      240
   TYPE       dummy
   READINGS:
     2018-03-18 19:25:02   state           240
Attributes:
   event-on-change-reading .*
   group      McLighting
   room       MQTT
   setList    state:0,25,50,100,150,200,210,220,230,240,255
   webCmd     state


Über ein doif wird dann ausgelöst.
Ist es möglich das im mqtt device unterzubringen?

Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 18 März 2018, 20:49:39
Zu den Farbeffekten kann ich nichts sagen, aber anderes wie Slider, on, off etc geht.
Hier z.B: mein Dimmer-TestDevice:
define MQ_DG_WZ_Licht_Ost MQTT_DEVICE
attr MQ_DG_WZ_Licht_Ost IODev mqtt
attr MQ_DG_WZ_Licht_Ost devStateIcon off:light_light_dim_00@gray 0:light_light_dim_00@gray dark:light_light_dim_10@yellow \d:light_light_dim_10@yellow 1\d:light_light_dim_20@yellow 2\d:light_light_dim_30@yellow 3\d:light_light_dim_40@yellow 4\d:light_light_dim_50@yellow 5\d:light_light_dim_60@yellow half:light_light_dim_60@yellow 6\d:light_light_dim_70@yellow 7\d:light_light_dim_80@yellow bright:light_light_dim_80@yellow 8\d:light_light_dim_90@yellow 9\d:light_light_dim_100@yellow 100:light_light_dim_100@yellow on:light_light_dim_100@yellow .*:hourglass
attr MQ_DG_WZ_Licht_Ost eventMap on:on 70:bright 40:half 13:dark off:off
attr MQ_DG_WZ_Licht_Ost group DG_Wohnzimmer
attr MQ_DG_WZ_Licht_Ost mqttDeviceType dimmer
attr MQ_DG_WZ_Licht_Ost publishSet on off "switch:on,off" "level:slider,0,1,100" /ha/dg/wz/licht/ost/set
attr MQ_DG_WZ_Licht_Ost room MQTT_TEST
attr MQ_DG_WZ_Licht_Ost stateFormat level
attr MQ_DG_WZ_Licht_Ost subscribeReading_level /ha/dg/wz/licht/ost/level
attr MQ_DG_WZ_Licht_Ost subscribeReading_state /ha/dg/wz/licht/ost/state
attr MQ_DG_WZ_Licht_Ost webCmd on:bright:half:dark:off:level
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 19 März 2018, 16:30:25
Hallo,
Ich habe mit mqtt Servos im Einsatz.
level:slider,0,1, 100  mygateway1-in/26/0/2/0/3
Hatte bestens vor dem letzten Update geklappt, leider fehlt der level Ausdruck unter set Kpl.

Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 19 März 2018, 17:33:36
Da gab es leider eine Änderung, die meine Erweiterungen (Angaben für slider etc.) zum Teil kaputt gemacht hat. Habe schon im entsprechenden thread geschrieben. Als workaround kannst du diese angaben in Anführungszeichen setzen. S. meine vorige Posting hier.
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 19 März 2018, 22:23:01
Ja die Möglichkeit mit den Tipp hatte ich versucht,  leider ging es nicht. Habe die alten Module zurückgeschrieben. Es geht aktuell wieder. Wenn es mal wieder klappt wird upgedatet. Danke für deine Arbeit.
I
Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 20 März 2018, 07:14:32
Kannst du bitte dein device-konfig posten. Würde gerne nachvollziehen, was nicht klappt.
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 20 März 2018, 12:04:43
Und das Device...

defmod mqtt_PWM_Geblaese_ID26 MQTT_DEVICE
attr mqtt_PWM_Geblaese_ID26 IODev mqtt
attr mqtt_PWM_Geblaese_ID26 fp_Keller_HK1 149,775,1,Gebläse,
attr mqtt_PWM_Geblaese_ID26 group Lüfter- Regelung-Abgastemperatur
attr mqtt_PWM_Geblaese_ID26 publishSet level:slider,0,1,100 mygateway1-in/26/0/2/0/3
attr mqtt_PWM_Geblaese_ID26 room Mosquitto,RT
attr mqtt_PWM_Geblaese_ID26 stateFormat Z
attr mqtt_PWM_Geblaese_ID26 subscribeReading_Z mygateway1-out/26/0/1/0/3
attr mqtt_PWM_Geblaese_ID26 webCmd level

Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 20 März 2018, 13:24:35
praktisch wie bei mir, nur ohne Anführungszeichen ;)
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 20 März 2018, 15:42:12
Ja genau! Mit und ohne Anführungszeichen beim neuen Modul versucht. Die Folge war set Funktion weg.
Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 20 März 2018, 16:54:34
was soll ich sagen... mit Deinem Config, Anführungszeichen und neuen Version geht es bei mir.
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 20 März 2018, 17:57:30
? dass sieht echt gut aus, werde es später gleich noch mal versuchen, danke.
Hier die alte Version vor dem Update !
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 20 März 2018, 21:45:29
Update durchgeführt, leider wieder das folgende Ergebnis!

Internals:
   IODev      mqtt
   NAME       mqtt_PWM_Geblaese_ID26
   NR         393
   STATE      21
   TYPE       MQTT_DEVICE
   READINGS:
     2018-03-20 21:27:22   Z               21
     2018-03-20 21:27:22   level           21
     2018-03-20 21:38:23   state           level
     2018-03-20 21:38:55   transmission-state subscription acknowledged
   message_ids:
   publishSets:
     :
       topic      mygateway1-in/26/0/2/0/3
       values:
   sets:
               
   subscribe:
     mygateway1-out/26/0/1/0/3
   subscribeExpr:
     ^mygateway1-out\/26\/0\/1\/0\/3$
   subscribeReadings:
     mygateway1-out/26/0/1/0/3:
       cmd       
       name       Z
Attributes:
   IODev      mqtt
   fp_Keller_HK1 149,775,1,Gebläse,
   group      Lüfter- Regelung-Abgastemperatur
   publishSet "level:slider,0,1,100" mygateway1-in/26/0/2/0/3
   room       Mosquitto,RT
   stateFormat Z
   subscribeReading_Z mygateway1-out/26/0/1/0/3
   webCmd     level

Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 21 März 2018, 12:03:31
Rätselhaft.  ???
Ist der Rest auch upgedatet? Vor allem 00_MQTT Modul?
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 21 März 2018, 14:00:04
Ja,  alle drei Module. Mit der funktionierenden Version alt geht auch bei mir die Variannte "level:slider,0,1,100" .
Im Log stehen zwar Fehler aber Befehle werden gesendet.
Aktuell würde bei Update check die Dateien
00_MQTT + 10_MQTT_DEVICE.PM  erneuert.
Titel: Antw:MQTT setList
Beitrag von: hexenmeister am 22 März 2018, 12:03:37
F*ck!
Habe gerade gemerkt, meine 00_MQTT war doch nicht die aus dem Repo. Ich habe mal ein Patch eingereicht, der das Problem zumindest umschifft (mit den Anführungszeichen eben), war mir auch recht sicher, dass das übernommen wurde, offensichtlich hab ich mich geirrt...  :(

Im Anhang ist meine 00_MQTT zum Testen.

Wenn ich wieder Zeit finde, will ich versuchen, ein neien Patch einzureichen, der die Probleme lösst.
Titel: Antw:MQTT setList
Beitrag von: Peter_64 am 22 März 2018, 15:27:45
:-) vielen Dank