Modul-Diskussion/Hilfe: MQTT_GENERIC_BRIDGE

Begonnen von Master_Nick, 11 Oktober 2018, 17:23:24

Vorheriges Thema - Nächstes Thema

Master_Nick

Ich eröffne hier mal das Frage/Anwtwort/Hilfe Thread für das Modul MQTT_GENERIC_BRIDGE.
Damit der eigentliche Beitrag Vorstellungsbeitrag nicht durch Probleme oder co unübersichtlich wird.
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

#1
Der folgende Device will auf einmal (es ging vor Tagen noch) nicht mehr auf Befehle von NodeRed auf dem /state/set topic hören:

Internals:
   CFGFN     
   NAME       Streifen
   NR         94
   STATE      on
   TYPE       dummy
   READINGS:
     2018-10-11 14:37:58   newstate        on
     2018-10-11 14:37:58   state           on
Attributes:
   alexaName  Streifen
   alexaRoom  Wohnzimmer
   genericDeviceType light
   group      Licht
   homebridgeMapping Brightness=state,cmd=
   icon       light_led_stripe_rgb
   mqttDefaults base={"homeland/haushalt/elektrik/wohnzimmer/$device"} pub:qos=2 sub:qos=2 retain=1
   mqttPublish state:topic={"$base/$name"} state:qos=2 state:retain=1
   mqttSubscribe state:stopic=homeland/haushalt/elektrik/wohnzimmer/Streifen/state/set state:qos=2
   room       Echo,Wohnzimmer
   setList    state:slider,0,1,100 on off
   userattr   mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttPublish:textField-long mqttSubscribe:textField-long
   webCmd     state


Jemand eine Idee?  :o
Ich habe noch genau son Teil und da geht alles - unterschied ist nur die homebridge Sache und es ist kein dummy..

*EDIT Aktuelle Erkenntnis: Genau der Bereich ist aktuell in Überarbeitung
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

Probiere mal die angehängte Version und gebe dem betroffenen Device ein Attribute namens 'mqttForward' mit dem Wert 'all'.

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

Master_Nick

#3
Absolut zauberhaft!  8) ;D

Genau wie es vorher war :-) Nur halt nun schaltbar.
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

Dann werde ich Commandref schreiben und einchecken :)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

 :) Danke sehr! :-D

Du schaffst es den WOA Faktor durch deine schnelle Handlung sehr hoch zu halten. :-D

Hätte ich nun erklären müssen, "Das geht nun gerade nicht...."  :o Ouha!     ;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.... ;-)

HomeAlone

Hallo Hexenmeister,
erst einmal eine tolle Idee das Modul. Leider habe ich ein grundlegendes Verständnisproblem, weshalb ich mich mit der Fehlersuche gerade schwer tue. Um ein größeres Verständnis zu bekommen, wollte ich mich erst einmal an die Beispiele aus Deinem ersten Posting aus der Modulvorstellung -> https://forum.fhem.de/index.php/topic,90735.0.html halten.
Als Testgruppe (Raum) verwende ich meine HomeMatic Geräte, genauergesagt einen 6fach Taster. fhem stürzt aber beim Drücken auf eine Taste ab und muss mittels systemctl restart fhem wiederbelebt werden.

Ich habe die Bridge wie folgt konfiguriert:

Internals
  DEF mqtt room=CUL_HM
  IODev myBroker
  NAME mqttGeneric
  NR 198
  NTFY_ORDER 50-mqttGeneric
  STATE ???
  TYPE MQTT_GENERIC_BRIDGE
  devspec room=CUL_HM
  prefix mqtt

Readings
  device-count 1 2018-10-12 12:23:38
  incoming-count 0 2018-10-12 12:15:36
  outgoing-count 0 2018-10-12 12:15:36
  transmission-state IO device initialized 2018-10-12 12:15:43
  updated-reading-count 0 2018-10-12 12:15:36
  updated-set-count 0 2018-10-12 12:15:36

Attributes
  IODev myBroker deleteattr
  room MQTT deleteattr
  verbose 5 deleteattr


Mein Testobjekt ist wie gesagt ein HomeMatic 6fach Taster (HM-PB-6-WM55). Dieser, sowie die einzelnen Channels sind als Device in fhem angelegt.

Attrib-Sektion des 6fach-Schalters:

Attributes
  IODev hmusb deleteattr
  IOgrp vccu:hmusb deleteattr
  autoReadReg 4_reqStatus deleteattr
  expert 2_raw deleteattr
  firmware 1.2 deleteattr
  group Licht deleteattr
  model HM-PB-6-WM55 deleteattr
  mqttDefaults base={"/TEST/$device"} pub:qos=0 sub:qos=2 retain=0 deleteattr
  mqttPublish *:topic={"$base/$name"} *:qos=2 *:retain=0 deleteattr
  room CUL_HM,MQTT,Wohnzimmer deleteattr
  serialNr XXXXXXXXXX deleteattr
  subType remote deleteattr
  userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttPublish:textField-long   mqttSubscribe:textField-long deleteattr
  verbose 5 deleteattr
  webCmd getConfig:clear msgEvents deleteattr


Wenn ich in dieser Konstellation auf einen der 6 Taster drücke, stürzt fhem ab. Im Event Monitor erscheint gar nichts. Im Logfile steht folgendes:
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for FileLog_wz_Lichtschalter_6fach
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for FileLog_wz_Rolladenschalter_6fach
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for hmusb
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for vccu
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach_Btn_01
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach_Btn_02
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach_Btn_03
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach_Btn_04
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach_Btn_05
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Lichtschalter_6fach_Btn_06
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach_Btn_01
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach_Btn_02
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach_Btn_03
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach_Btn_04
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach_Btn_05
2018.10.12 12:56:24 5: MQTT_GENERIC_BRIDGE:DEBUG:> CreateDevicesTable for wz_Rolladenschalter_6fach_Btn_06
2018.10.12 12:56:24 3: Opening myBroker device reddocker:1883
2018.10.12 12:56:24 3: myBroker device opened
2018.10.12 12:56:25 0: Featurelevel: 5.8
2018.10.12 12:56:25 0: Server started with 72 defined entities (fhem.pl:17329/2018-09-12 perl:5.020002 os:linux user:fhem pid:5688)
2018.10.12 12:56:25 1: HMLAN_Parse: hmusb new condition ok
2018.10.12 12:59:21 5: CUL_HM wz_Lichtschalter_6fach prep ACK for 01
2018.10.12 12:59:21 5: CUL_HM wz_Lichtschalter_6fach protEvent:CMDs_done
2018.10.12 12:59:21 5: CUL_HM wz_Lichtschalter_6fach sent ACK:2
2018.10.12 12:59:21 5: MQTT_GENERIC_BRIDGE:DEBUG:> publish: /TEST/wz_Lichtschalter_6fach/battery => ok (qos: 2, retain: 0)
Undefined subroutine &MQTT::GENERIC_BRIDGE::send_publish called at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 1949.


Ich habe MQTT.fx mitlaufen, der auf sämtliche Topcis lauscht: das  /TEST/wz_Lichtschalter_6fach/battery wird nicht versendet.

Jetzt bin ich mir nicht sicher, ob ich etwas falsch konfiguriert habe oder ob vielleicht noch ein Fehler im Modul ist?

Schon einmal vielen Dank im Voraus für deine Hilfe.

Viele Grüße
Sascha

Master_Nick

 :) Ich versuch einfach Mal zu helfen :-)

Kannst du bitte einem die List von deinem 6fach-Schalters noch anfügen nicht das man da was übersieht  ;)


Ich hatte nun erst gedacht ggf. ein Loop der es bei Aktivierung dahin schmelzen lässt bis es tot ist..
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

Ich vermute was anderes.
Die Entscheidende Meldung lautet "Undefined subroutine &MQTT::GENERIC_BRIDGE::send_publish..."
Bedeutet, dass MQTT-Modul nicht geladen ist. Kannst Du mal ein Listing deines Gateways posten? Irgendwas sagt mir, dass das eine MQTT2_SERVER sein wird...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

HomeAlone

Zitat von: hexenmeister am 12 Oktober 2018, 13:31:02
Ich vermute was anderes.
Die Entscheidende Meldung lautet "Undefined subroutine &MQTT::GENERIC_BRIDGE::send_publish..."
Bedeutet, dass MQTT-Modul nicht geladen ist. Kannst Du mal ein Listing deines Gateways posten? Irgendwas sagt mir, dass das eine MQTT2_SERVER sein wird...

Hier die Einstellungen meines Devices "myBroker":

DeviceOverview
  myBroker opened

Internals:
   DEF        reddocker:1883
   DeviceName reddocker:1883
   FD         5
   NAME       myBroker
   NOTIFYDEV  global
   NR         199
   NTFY_ORDER 50-myBroker
   PARTIAL   
   STATE      opened
   TYPE       MQTT
   buf       
   msgid      1
   ping_received 1
   timeout    60
   READINGS:
     2018-10-12 14:46:11   connection      active
     2018-10-12 14:36:11   state           opened
   messages:
Attributes:
   room       MQTT


Wenn ich testhalber in diesem Objekt (myBroker) ein set publish FHEM/Test absetze, dann kommt das sowohl in meiner Node Red Installation als auch im MQTT.fx an.

Ich bin beim Anlegen des Brokers wie in der fhem MQTT-Einführung angegeben vorgegangen: https://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung

Viele Grüße
Sascha

HomeAlone

Zitat von: Master_Nick am 12 Oktober 2018, 13:18:53
:) Ich versuch einfach Mal zu helfen :-)

Kannst du bitte einem die List von deinem 6fach-Schalters noch anfügen nicht das man da was übersieht  ;)


Ich hatte nun erst gedacht ggf. ein Loop der es bei Aktivierung dahin schmelzen lässt bis es tot ist..

Die Settings hatte ich in meinem ersten Post angehangen. Wie erstelle ich "die List"? Ist das der Link "getConfig" in der DeviceOverview?

Tatsächlich verabschiedet sich fhem nach Klick darauf.
Im Log und im Eventlog wird aber nichts festgehalten (habe es jetzt drei mal wiederholt).

hexenmeister

OK, das ist alles so korrekt. Frage mich jetzt, warum eine existierende Methode nicht gefunden werden kann... Ist Dein FHEM aktuell? Mache ggf. ein update.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: HomeAlone am 12 Oktober 2018, 14:59:25
Im Log und im Eventlog wird aber nichts festgehalten (habe es jetzt drei mal wiederholt).

ZitatUndefined subroutine &MQTT::GENERIC_BRIDGE::send_publish called at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 1949.
Kommt das nicht mehr?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

HomeAlone

Zitat von: hexenmeister am 12 Oktober 2018, 14:59:45
OK, das ist alles so korrekt. Frage mich jetzt, warum eine existierende Methode nicht gefunden werden kann... Ist Dein FHEM aktuell? Mache ggf. ein update.
Das hatte ich vor meinem Posting bereits gemacht. Inkl. restart ;)

hexenmeister

Evtl. noch das alte Problem. Ist in fhem.cfg die Definition von MQTT-Modul erst nach der Generic-Bridge definiert? Eigentlich sollte das keine Probleme mehr bereiten...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy