Modul-Vorstellung: MQTT_GENERIC_BRIDGE

Begonnen von hexenmeister, 31 August 2018, 20:53:56

Vorheriges Thema - Nächstes Thema

Billy

Habe einen Bug zu berichten?

Habe auf meinem Testsytem die neue Version von gestern eingespielt
$Id: 10_MQTT_GENERIC_BRIDGE.pm 17262 2018-09-03 20:06:15Z hexenmeister $

und folgendes festgestellt:
Sobald ich nach dem : define mqttGeneric MQTT_GENERIC_BRIDGE
das Attribut für IODev setzte stürzt FHEM ab! :-\

Mit der alten Version $Id: 10_MQTT_GENERIC_BRIDGE.pm 17241 2018-08-31 16:37:38Z hexenmeister $
ist das nicht der Fall.

Gruß Billy


FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hexenmeister

Zitat von: Billy am 04 September 2018, 20:53:35
Habe einen Bug zu berichten?
Ja. Danke fürs Testen!
Nach dem Update sollte weg sein :)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

Mit der neuen Version habe ich auch Probleme!
FHEM stürzt zwar nicht mehr ab, aber schalten geht nicht mehr.
Habe ein Dummy als Schalter definiert.
define sonoff_8 dummy
attr sonoff_8 eventMap ON:on OFF:off
attr sonoff_8 mqttPublish *:topic=cmnd/sonoff_8/POWER1
attr sonoff_8 webCmd on:off

Mit der alten Version schaltet der Sonoff problemlos,
mit der neuen Version $Id: 10_MQTT_GENERIC_BRIDGE.pm 17274 2018-09-04 20:26:40Z hexenmeister $
geht nichts. Oder habe ich was falsch verstanden?

Gruß Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hexenmeister

Sonoff habe ich nicht, kann ich nicht direkt ausprobieren. Dein Beispielcode senden jedoch brav Werte, die ich in mqtt-spy sehen kann (on und off). Was ist jedoch nicht verstehe, ist Dein eventMap Attribut. So tut er gar nichts. Wenn sonoff die ON / OFF inb Großbuchtaben erwatet, dann könnte das die Erklärung sein. In diesem Fall müssen die Angaben "ungedreht" werden.
Probiere mit einem Client wie mqtt-spy, mqtt-fx etc. nachzusehen, ob was wirklich gesendet wird.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

#19
Zitat von: hexenmeister am 05 September 2018, 16:42:59
Probiere mit einem Client wie mqtt-spy, mqtt-fx etc. nachzusehen, ob was wirklich gesendet wird.

Ich teste generell alles mit mqtt-spy!
Fakt ist, dass mit dieser Konfiguration
Internals:
   NAME       sonoff_8
   NR         126
   STATE      off
   TYPE       dummy
   READINGS:
     2018-09-05 17:15:47   Licht           OFF
     2018-09-05 17:18:18   state           ON
Attributes:
   disable    0
   eventMap   ON:on OFF:off
   icon       hue_filled_br30
   mqttPublish state:topic=cmnd/sonoff_8/POWER1
   mqttSubscribe Licht:stopic=stat/sonoff_8/POWER
   readingList Licht
   room       MQTT
   stateFormat Licht
   webCmd     :

mit der Version --> $Id: 10_MQTT_GENERIC_BRIDGE.pm 17241 2018-08-31 16:37:38Z hexenmeister $
alles funktioniert (publish + subscribe) die topics in mqtt-spy erscheinen,
mit der Version $Id: 10_MQTT_GENERIC_BRIDGE.pm 17274 2018-09-04 20:26:40Z hexenmeister $ geht nichts, d.h. weder publish noch subscribe.
Ich sehe also vom publish nichts in mqtt-spy und vom subscribe kommt im Dummy auch nichts an. :-\

Das ist seltsam, da es ja bei Dir geht.

d.h. sobald ich $Id: 10_MQTT_GENERIC_BRIDGE.pm 17274 2018-09-04 20:26:40Z hexenmeister $ aktiviere natürlich shutdown restart
gibt es keine Reaktion mehr. Ich habe das mehrfach getestet.

Sorry: der subscribe Pfad geht!
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

Billy

#20
Im Event Monitor sieht das so aus!
Einschalten mit altem Modul
2018-09-05 18:11:48 MQTT_GENERIC_BRIDGE mqttGeneric transmission-state: outgoing publish sent
2018-09-05 18:11:48 MQTT_GENERIC_BRIDGE mqttGeneric outgoing-count: 30
2018-09-05 18:11:48 dummy sonoff_8 on
2018-09-05 18:11:48 MQTT_GENERIC_BRIDGE mqttGeneric transmission-state: incoming publish received
2018-09-05 18:11:48 MQTT_GENERIC_BRIDGE mqttGeneric incoming-count: 82
2018-09-05 18:11:48 dummy sonoff_8 Licht: on
2018-09-05 18:11:48 MQTT_GENERIC_BRIDGE mqttGeneric updated-set-count: 82

Ausschalten mit altem Modul
2018-09-05 18:11:56 MQTT_GENERIC_BRIDGE mqttGeneric transmission-state: outgoing publish sent
2018-09-05 18:11:56 MQTT_GENERIC_BRIDGE mqttGeneric outgoing-count: 31
2018-09-05 18:11:56 dummy sonoff_8 off
2018-09-05 18:11:56 MQTT_GENERIC_BRIDGE mqttGeneric transmission-state: incoming publish received
2018-09-05 18:11:56 MQTT_GENERIC_BRIDGE mqttGeneric incoming-count: 83
2018-09-05 18:11:56 dummy sonoff_8 Licht: off
2018-09-05 18:11:56 MQTT_GENERIC_BRIDGE mqttGeneric updated-set-count: 83
2018-09-05 18:11:57 MQTT Broker_BB17 connection: active
#############################################################################################################
Einschalten mit neuem Modul
2018-09-05 18:16:52 dummy sonoff_8 on
d.h. keine Reaktion der Bridge?

Ausschalten mit altem Modul
2018-09-05 18:16:54 MQTT_GENERIC_BRIDGE mqttGeneric transmission-state: outgoing publish sent
2018-09-05 18:16:54 MQTT_GENERIC_BRIDGE mqttGeneric outgoing-count: 34
2018-09-05 18:16:54 dummy sonoff_8 off
2018-09-05 18:16:55 MQTT_GENERIC_BRIDGE mqttGeneric transmission-state: incoming publish received
2018-09-05 18:16:55 MQTT_GENERIC_BRIDGE mqttGeneric incoming-count: 88
2018-09-05 18:16:55 dummy sonoff_8 Licht: off
2018-09-05 18:16:55 MQTT_GENERIC_BRIDGE mqttGeneric updated-set-count: 88


Die Frage ist warum geht alt oder habe ich da eine Bug eingebaut den die alte Version schluckt? :-[
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hexenmeister

Ein guter Beispiel, warum man den Konfig komplett angeben sollte. Ohne stateFormat (wie Du zuerst beschrieben hast) funktioniert das. Warum das mit nicht geht (eher warum das früher damit ging) - das muss ich noch anschauen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

Noch was ist mir aufgefallen!
Ist es eigentlich erwünscht, dass alle der MQTT_GENERIC_BRIDGE  zugeordneten Devices im attr global userattr auftauchen?
attr global userattr T5,T7,Schalter_1BEA79,Brunnen_20C4F6,BM_1A8215,HM_69F161,HM_69F136Alias:textField-long T5,T7,Schalter_1BEA79,Brunnen_20C4F6,BM_1A8215,HM_6 usw.

Teilweise mehrfach? :-\

Gruß Billy

FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hexenmeister

#23
Nein, sollte eigentlich so nicht sein.
Wie ist die Gridge definiert?

Ich weiß mittlerweile warum das mit dem state nicht geht, nur leider keine Lösung. Es ist nicht ohne weiteren in einer Notify-Routine ersichtlich, welche reading sich geändert hat. Normalerweise bekommt man READINGNAME:VALUE. Aber nicht bei state. Dort kommt nur VALUE. In der alten Version habe ich auf den Doppelpunkt geprüft. Das funktioniert aber nicht, wenn in dem Wert ein Doppelpunkt drin ist. Habe noch keine Lösung :/
Da gibt es doch was... :)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

Zitat von: hexenmeister am 05 September 2018, 22:12:26
Nein, sollte eigentlich so nicht sein.
Wie ist die Bridge definiert?
So,
define mqttGeneric MQTT_GENERIC_BRIDGE T5,T7,Schalter_1BEA79,Brunnen_20C4F6,BM_1A8215,HM_69F161,HM_69F136
attr mqttGeneric IODev Broker_BB17
attr mqttGeneric room MQTT
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hexenmeister

Natürlich haben schon Tausende vor mir so ein Problem gahabt und natürlich gibt es bereits eine Lösung ;D

Das 'Schaltproblem' checke ich gleich ein, die global-Sache schaue ich mir morgen an.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

inesa394

Seit dem update auf die neue Version schaltet bei mir nichts mehr
Internals:
   DEF        192.168.178.47
   DeviceName 192.168.178.47:55443
   FD         14
   HOST       192.168.178.47
   ID         192.168.178.47
   NAME       Yeelight_i
   NOTIFYDEV  global
   NR         67
   NTFY_ORDER 50-Yeelight_i
   PARTIAL   
   PORT       55443
   PROTO      1
   STATE      opened
   TYPE       YeeLight
   READINGS:
     2018-09-06 09:27:42   bright          54
     2018-09-06 09:27:42   color_flow      off
     2018-09-06 09:27:42   color_mode      RGB
     2018-09-06 09:27:42   ct              4000
     2018-09-06 09:27:42   flow_params     
     2018-09-06 09:27:42   hue             138
     2018-09-06 09:27:42   music_mode      off
     2018-09-06 09:27:42   name           
     2018-09-06 09:28:19   power           off
     2018-09-06 09:27:42   rgb             ff0000
     2018-09-06 09:27:42   rgb_blue        0
     2018-09-06 09:27:42   rgb_green       0
     2018-09-06 09:27:42   rgb_red         255
     2018-09-06 09:27:42   sat             100
     2018-09-06 09:27:42   sleeptimer      0
     2018-09-06 09:27:31   state           opened
   helper:
     CommandSet on off toggle on-for-timer off-for-timer intervals bright dimup dimdown name default:noArg reopen:noArg statusrequest:noArg hsv hue sat rgb color ct start_cf stop_cf scene circlecolor:noArg blink
     AnsQue:
       {"id":1, "result":["off","54","4000","16711680","138","100","1","0","0","","0",""]}
     ErrQue:
     SendQue:
Attributes:
   devStateIcon {my $power=ReadingsVal($name,"power","off");my $mode=ReadingsVal($name,"color_mode","RGB");if($power eq "off"){Color::devStateIcon($name,"rgb","rgb","power");}else{if($mode eq "RGB"){Color::devStateIcon($name,"rgb","rgb","bright");}elsif($mode eq "color temperature"){Color::devStateIcon($name,"rgb",undef,"bright");}}}
   event-on-change-reading .*
   mqttDefaults base={"Smarthome/licht/$device/$reading"}
   mqttPublish *:topic={$base}
   mqttSubscribe state:stopic=Smarthome/licht/Yeelight_i/set  bright:stopic=Smarthome/licht/Yeelight_i/bright hue:stopic=Smarthome/licht/Yeelight_i/hue rgb:stopic=Smarthome/licht/Yeelight_i/rgb
   room       Licht,YeeLight
   userattr   lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
   webCmd     rgb:bright:ct:rgb ffffff:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off
   widgetOverride bright:colorpicker,BRI,0,1,100 ct:colorpicker,CT,1700,10,6500 rgb:colorpicker,RGB


internals:
   .eventMapCmd on:noArg off:noArg
   IODev      Mosquito
   NAME       mqtt_device_ilicht
   NR         766
   STATE      33
   TYPE       MQTT_DEVICE
   retain     *:1
   .attraggr:
   .attrminint:
   .qos:
     *          0
   .retain:
     *          1
   READINGS:
     2018-09-06 09:27:50   bright          54
     2018-07-26 21:40:33   ct              4930
     2018-09-06 09:27:50   hue             138
     2018-07-26 21:53:33   level           33
     2018-09-06 09:23:03   power           off
     2018-09-06 09:27:50   rgb             ff0000
     2018-09-06 09:29:34   state           on
     2018-07-25 17:46:39   switch          off
     2018-09-06 09:29:34   transmission-state outgoing publish sent
   message_ids:
   publishSets:
     :
       topic      Smarthome/licht/Yeelight_i/set
       values:
         on
         off
     bright:
       topic      Smarthome/licht/Yeelight_i/bright
       values:
         bright:slider,0,1,100
     hsv:
       topic      Smarthome/licht/Yeelight_i/hsv
       values:
     hue:
       topic      Smarthome/licht/Yeelight_i/hue
       values:
     rgb:
       topic      Smarthome/licht/Yeelight_i/rgb
       values:
   sets:
     bright     bright:slider,0,1,100
     hsv       
     hue       
     off       
     on         
     rgb       
   subscribe:
     Smarthome/licht/Yeelight_i/bright
     Smarthome/licht/Yeelight_i/ct
     Smarthome/licht/Yeelight_i/hsv
     Smarthome/licht/Yeelight_i/hue
     Smarthome/licht/Yeelight_i/power
     Smarthome/licht/Yeelight_i/rgb
     Smarthome/licht/Yeelight_i/state
   subscribeExpr:
     ^Smarthome\/licht\/Yeelight_i\/bright$
     ^Smarthome\/licht\/Yeelight_i\/ct$
     ^Smarthome\/licht\/Yeelight_i\/hsv$
     ^Smarthome\/licht\/Yeelight_i\/hue$
     ^Smarthome\/licht\/Yeelight_i\/power$
     ^Smarthome\/licht\/Yeelight_i\/rgb$
     ^Smarthome\/licht\/Yeelight_i\/state$
   subscribeQos:
     Smarthome/licht/Yeelight_i/bright 0
     Smarthome/licht/Yeelight_i/ct 0
     Smarthome/licht/Yeelight_i/hsv 0
     Smarthome/licht/Yeelight_i/hue 0
     Smarthome/licht/Yeelight_i/power 0
     Smarthome/licht/Yeelight_i/rgb 0
     Smarthome/licht/Yeelight_i/state 0
   subscribeReadings:
     Smarthome/licht/Yeelight_i/bright:
       cmd       
       name       bright
     Smarthome/licht/Yeelight_i/ct:
       cmd       
       name       ct
     Smarthome/licht/Yeelight_i/hsv:
       cmd       
       name       hsv
     Smarthome/licht/Yeelight_i/hue:
       cmd       
       name       hue
     Smarthome/licht/Yeelight_i/power:
       cmd       
       name       power
     Smarthome/licht/Yeelight_i/rgb:
       cmd       
       name       rgb
     Smarthome/licht/Yeelight_i/state:
       cmd       
       name       state
Attributes:
   DbLogExclude .*
   IODev      Mosquito
   eventMap   on:on off:off
   icon       mqtt
   publishSet on off Smarthome/licht/Yeelight_i/set
   publishSet_bright bright:slider,0,1,100 Smarthome/licht/Yeelight_i/bright
   publishSet_hsv Smarthome/licht/Yeelight_i/hsv
   publishSet_hue Smarthome/licht/Yeelight_i/hue
   publishSet_rgb Smarthome/licht/Yeelight_i/rgb
   retain     1
   room       Mqtt
   stateFormat level
   subscribeReading_bright Smarthome/licht/Yeelight_i/bright
   subscribeReading_ct Smarthome/licht/Yeelight_i/ct
   subscribeReading_hsv Smarthome/licht/Yeelight_i/hsv
   subscribeReading_hue Smarthome/licht/Yeelight_i/hue
   subscribeReading_power Smarthome/licht/Yeelight_i/power
   subscribeReading_rgb Smarthome/licht/Yeelight_i/rgb
   subscribeReading_state Smarthome/licht/Yeelight_i/state
   webCmd     rgb:bright:ct:rgb ffffff:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off
   widgetOverride bright:colorpicker,BRI,0,1,100 ct:colorpicker,CT,1700,10,6500 rgb:colorpicker,RGB

Wenn ich die alte von Ende Juni zurückspiele funktioniert es wieder

Ines


Billy

Zitat von: inesa394 am 06 September 2018, 09:39:40
Seit dem update auf die neue Version schaltet bei mir nichts mehr
zurückspiele funktioniert es wieder

Ines
Muß ich leider bestätigen, also liegt es nicht nur an meiner Konfiguration. ;)

Übrigens habe ich nicht nur den Nebeneffekt dass die attr global userattr befüllt werden,
in meinem Hauptsystem werden die Helligkeitswerte nicht mehr ge-published mit dem Effekt dass meine Rolladen gestern abend nicht geschlossen wurden.
Werde jetzt mal zuerst  wieder im Hauptsystem auf 10_MQTT_BRIDGE.pm zurückgehen, bis 10_MQTT_GENERIC_BRIDGE.pm auf dem Testsystem stabil läuft.

Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hexenmeister

@Ines
Bitte Version der Bridge angeben und auch die entsprechende Konfig.
Ich verstehe nicht ganz, was die zweite Listing damit zu tun hat. Ist doch ein MQTT_DEVICE?

@Billy
Es funktionier also auch mit der Version aus heutigem Update auch nicht? Wie sieht die Konfiguration für deine Helligkeitswerte aus?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy