Patch für mehrere Probleme mit Topics und Payload

Begonnen von hexenmeister, 26 März 2018, 23:01:59

Vorheriges Thema - Nächstes Thema

hexenmeister

MQTT-Module haben keinerlei JSON-Unterstützung. Ich selbst benutze auch kein JSON. Daher kann ich auch wenig dazu sagen.
Aber aus der Richtung FHEM sollte doch egal sein, was für ein String übertragen wird? Was genau ist das Problem?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Scotch

#31
Hallo Hexenmeister,
danke für Deine Antwort.

Auf der ersten Seite hast Du doch geschriebven
Zitat von: hexenmeister am 26 März 2018, 23:01:59
...
- Problem mit dem JSON-String als Payload
...
Oder verwechsle ich da jetzt grundlegend etwas?

Mein Problem ist, das ich folgende Beispiele an einen ESP 8266 übergeben will.

{"brightness":150,"color_name":"blue","transition":"5"}

{"color_name":"green","brightness":255,"flash":"short"}

{"transition":"50","brightness":255,"effect":"rainbow"}

Das ganze soll dann die Effekte bzw. Farbe und Helligkeit von den WS 2812b LED Streifen steuern.
Das ganze ist von der Seite
https://github.com/bruhautomation/ESP-MQTT-JSON-Digital-LEDs
Nur das ich es nicht mit Home Assistant sondern per FHEM steuern möchte.
Wenn ich den Playload in MQTT.fx per Publish versende, funktioniert es.

Gruß Scotch

hexenmeister

Es gab Probleme mit den Geschweiften Klammern und folglich auch mit JSON-Strings. Das sollte nicht mehr sein. Eine spezielle JSON-Unterstützung ist das jedoch keineswegs.
Wie versuchst Du die Werte zu versenden und was genau funktioniert dabei nicht?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Scotch

Hallo Hexenmeister,

zum testen hab ich das mal so aufgebaut.

defmod Sonoff_Switch MQTT_DEVICE
attr Test_Switch IODev myBroker
attr Test_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON
attr Test_Switch icon hue_filled_br30
attr Test_Switch publishSet {"state":"ON"} {"state":"OFF"} hello/world
attr Test_Switch room MQTT
attr Test_Switch stateFormat transmission-state
attr Test_Switch subscribeReading_Status hello/world/STATUS
attr Test_Switch webCmd ON:OFF


Wenn ich dann auf on bzw. off klicke kommen auch nur ON oder OFF an und leider nicht {"state":"ON"} bzw. {"state":"OFF"}
Gruß Scotch

hexenmeister

Das, was man in publishSet angeben kann, wird als mögliche 'set'-Variante gültig. Sollte auch in der Auswahlbox auf der Oberfläche so erscheinen (obwohl in diesem Fall werden Sonderzeichen sicher für Probleme sorgen). Ansonsten wird das gesendet, was du beim set angibst. Deine webCmd definiert ON und OFF. So wird das beim Klick natürlich auch gesendet. Um das zu ändern gibt es eventMap. Damit das auch in der Oberfläche  korrekt angezeit wird, muss man die Angaben als Perl-Expression mit zusätzlichen Parametern definieren. Beispiel findet man im Forum. Schnell gesucht, scheint ein Mapping von on/off auf true/false zu sein
eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }

Die Klammern musst Du in Deinem Fall natürlich noch maskieren. Sollte aber machbar sein. Zugegeben, JSON-Werte in dem FHEM zu verarbeiten ist nicht gerade bequem.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Moin :)
Kann es sein, dass der fix für topics wie $online immer noch nicht im Repo ist? (Auch wenn es einige Seiten vorher sogar mit SVN Link steht...)

Habe jetzt gerade wieder ein par mal geupdatet und merke nun gerade - meine online states der Homie ESP Fraktion sind wieder verloren gegangen und werden von FHEM nicht abgeholt.

:o
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Mh - ich hab hier gerade noch was anderes festgestellt... solange sag ich es liegt an meinem System...

- melde mich - :-D
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

hexenmeister

Habe jetzt im SVN nachgesehen, die Ersetzung von $-Zeichen durch Maskierte $-Zeichen ist noch drin.
Poste mal ggf. Deine Konstellation, damit ich es nachstellen kann.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

#39
Hier das List von dem Device wo $online nicht geht (einer von alle denen mit Homie)
Habe aufm Broker mitgelauscht online isser definitiv! :-)

homeland/haushalt/elektrik/sonoff/sonoff-basic-1/$online true



Internals:
   CFGFN     
   IODev      MQTT_Broker
   NAME       Sonoff_Basic_1
   NR         149
   STATE       
   TYPE       MQTT_DEVICE
   qos        *:2
   retain     *:1
   READINGS:
     2018-10-11 14:40:46   online          false
     2018-10-11 14:38:25   state           
     2018-10-11 14:40:46   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      homeland/haushalt/elektrik/sonoff/sonoff-basic-1/switch/on/set
       values:
         true
         false
         reset
         reboot
         ota-restart
   sets:
     false     
     ota-restart
     reboot     
     reset     
     true       
   subscribe:
     homeland/haushalt/elektrik/sonoff/sonoff-basic-1/$online
     homeland/haushalt/elektrik/sonoff/sonoff-basic-1/switch/on
   subscribeExpr:
     ^homeland\/haushalt\/elektrik\/sonoff\/sonoff-basic-1\/\$online$
     ^homeland\/haushalt\/elektrik\/sonoff\/sonoff-basic-1\/switch\/on$
   subscribeQos:
     homeland/haushalt/elektrik/sonoff/sonoff-basic-1/$online 0
     homeland/haushalt/elektrik/sonoff/sonoff-basic-1/switch/on 0
   subscribeReadings:
     homeland/haushalt/elektrik/sonoff/sonoff-basic-1/$online:
       cmd       
       name       online
     homeland/haushalt/elektrik/sonoff/sonoff-basic-1/switch/on:
       cmd       
       name       state
Attributes:
   IODev      MQTT_Broker
   alexaName  Monitore
   alexaRoom  Arbeitszimmer
   alias      Anubis_Perepherie
   devStateIcon on:10px-kreis-gruen off:10px-kreis-rot .*:hourglass
   eventMap   { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   genericDeviceType outlet
   gerate     Jorin_PC
   group      Computer
   icon       it_television
   publishSet true false reset reboot ota-restart homeland/haushalt/elektrik/sonoff/sonoff-basic-1/switch/on/set
   qos        2
   retain     1
   room       Arbeitszimmer,Echo
   stateFormat state
   subscribeReading_online homeland/haushalt/elektrik/sonoff/sonoff-basic-1/$online
   subscribeReading_state homeland/haushalt/elektrik/sonoff/sonoff-basic-1/switch/on
   useSetExtensions 1
   userattr   gerate gerate_map structexclude
   webCmd     on:off

Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

Läuft alles.....

War irgendwas stranges...  :o Aber selbst verschuldet.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)