Modul-Vorstellung: MQTT_GENERIC_BRIDGE

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

Vorheriges Thema - Nächstes Thema

choetzu

herzlichen dank. ich mache grad die ersten Schritte.

Auf Master-Raspi habe ich nun mosquitto, mqtt Modul und Mqtt_generic_bridge modul installiert

gemäss Bally muss ich auf dem RemoteRaspi (also Raspi2) kein mosquitto installieren. Ich gehe aber davon aus, dass ich dort ebenfalls die generic bridge installieren muss mit der IP des Master-Raspi, damit ich auch die attr für die Devices erhalte. ist dies korrekt? Ich habe kein testsystem, deshalb die Frage ;)
Raspi3, EnOcean, Zwave, Homematic

hexenmeister

Richtig, auf beiden Systemen je ein MQTT Modul (mit der IP von mosquitto) und je eine GenericBrigde.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Phantomato

Hallo,
ich habe das gleiche Problem wie SamNitro und NodeRed. Damit sind wir schon mal 2.

PS: Danke für das tolle Modul.
Server: RaspberryPi4 4GB @Raspbian GNU/Linux 10 (buster), Docker, FHEM Docker | Homematic nanoCUL868 (VCCU) | Tasmota Switch & Sensors | Tasmota Zigbee | Zigbee2mqtt | SIGNALduino | Alexa & GoogleHome

hexenmeister

Meinst Du, dass die Schalter in NoeRED nicht funktionieren? Sollte mit der aktuellen Version richtig laufen. Tut es bei mir auch. Ansonsgten poste mal die relevante Konfiguration.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Phantomato

ja, genau das. Hatte vorher eine wahrscheinlich recht ältere Entwicklungsversion die ich über Fhem "update" aktualisiert habe. Danach haben die Rückmeldungen in Nodered wie von SamNitro beschrieben, nicht mehr funktioniert.
Ist irgendwo eine Konfigurationsleiche übrig geblieben?

version 0.9.9 by hexenmeister
$Id: 10_MQTT_GENERIC_BRIDGE.pm 17444 2018-09-30 21:30:54Z hexenmeister $


define MqttGenericBridge MQTT_GENERIC_BRIDGE
attr MqttGenericBridge IODev MQTTBroker
attr MqttGenericBridge room System


define SzEnableMotionDetection dummy
attr SzEnableMotionDetection devStateIcon on:on:off off:off:on
attr SzEnableMotionDetection genericDeviceType switch
attr SzEnableMotionDetection mqttPublish state:topic={"stat/$device/$reading"}  *:retain=1
attr SzEnableMotionDetection mqttSubscribe state:stopic={"cmnd/$device/$reading"}
attr SzEnableMotionDetection room Schlafzimmer
attr SzEnableMotionDetection webCmd on:off


Auch wenn ich mit MQTT.fx ein "off" oder "on" auf "cmnd/SzEnableMotionDetection/state" publishe erhalte ich auf die topic "stat/SzEnableMotionDetection/state" keine Rückmeldung.

Das hier funktioniert allerdings wie vorgesehen:
define HM_2F66F2 CUL_HM 2F66F2
attr HM_2F66F2 IODev nanoCUL868
attr HM_2F66F2 IOgrp VCCU:nanoCUL868
attr HM_2F66F2 alias LED_Lampe
attr HM_2F66F2 autoReadReg 4_reqStatus
attr HM_2F66F2 expert 2_raw
attr HM_2F66F2 firmware 2.4
attr HM_2F66F2 group Licht
attr HM_2F66F2 model HM-LC-SW1-PL2
attr HM_2F66F2 mqttPublish *:topic={"stat/$device/$reading"} *:retain=1
attr HM_2F66F2 mqttSubscribe *:stopic={"cmnd/$device/$reading"}
attr HM_2F66F2 room Alexa,Licht,Schlafzimmer
attr HM_2F66F2 serialNr LTK0069478
attr HM_2F66F2 subType switch
attr HM_2F66F2 webCmd statusRequest:toggle:on:off
Server: RaspberryPi4 4GB @Raspbian GNU/Linux 10 (buster), Docker, FHEM Docker | Homematic nanoCUL868 (VCCU) | Tasmota Switch & Sensors | Tasmota Zigbee | Zigbee2mqtt | SIGNALduino | Alexa & GoogleHome

hexenmeister

Hm....ja. Das hier ist das selbe Problem nur andersrum.
Wenn man an zweien Instanzen zwei Geräte verbindet, dürfen nicht beide alle ankommende Nachrichten gleich weiter durchleiten - das führt zu einer Endlosschleife. Daher ist das jetzt so implementiert, dass alle Geräte außer Dummies die Nachrichten weiterleiten können. Dummy eignet sich al 'Schalter', daher solcher Hack. Ich überlege immer noch, wie ich es saubersten einstellbar machen kann.
Bei Dir ist aber Dummy als eine Art Aktor verwendet (falls ich Deine Logik richtig verstanden habe)... Ich habe paar Ideen, fürchte aber mit vielen zusätzlichen Parameter nur den Benutzer zu verwirren :/
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Phantomato

Zitat von: hexenmeister am 08 Oktober 2018, 21:53:54
Bei Dir ist aber Dummy als eine Art Aktor verwendet (falls ich Deine Logik richtig verstanden habe)...

joah.. kommt hin. Mein Dummy dient als Merker und ist an sich ein Aktor. Dieser wird uber mqtt/nodeRed ein und ausgeschaltet. DOIF Schleifen fragen den Zustand ab und werten somit aus ob für den Bewegungsmelder eine Freigabe vorliegt oder nicht.

Vielleicht kann man das als default so lassen aber das alte Verhalten über irgendein Parameter (zb Attribut "mqttDoAllways") auswählbar lassen. Ein Parameter mehr oder weniger kompliziert die Sache nicht viel mehr wenn es gut dokummentiert ist.
Server: RaspberryPi4 4GB @Raspbian GNU/Linux 10 (buster), Docker, FHEM Docker | Homematic nanoCUL868 (VCCU) | Tasmota Switch & Sensors | Tasmota Zigbee | Zigbee2mqtt | SIGNALduino | Alexa & GoogleHome

hexenmeister

Meine Überlegungen bis jetzt:

1. einen neuen "Topic"-Typ einführen. So wie atopic, stopic etc. Finde jedoch nicht wirklich intuitiv.
2. An der Bridge selbst Typen der Geräte angeben, die so oder anders agieren. Ist jedoch nicht flexibel genug.
3. Ein Parameter an der Gerät. So wie Dein Vorschlag.
4. Wie 3. nur für jedes Topic getrennt. Vermutlich oversized.

Bin derzeit eher bei 3.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

#98
Frage 1:  Probleme bzw Hilfeanfrage hier oder in nem anderen Thread?

Erledigt -> Hilfe/Probleme etc Thread zum MQTT_GENERIC_BRIDGE Modul: https://forum.fhem.de/index.php/topic,91984.0.html

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

--> Moved https://forum.fhem.de/index.php/topic,91984.msg844833.html#msg844833

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..
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

zu 1.: ist mir relativ egal. vlt. wäre sogar ein neuer 'Problem-Thread' angebracht...
zu 2.: Das Device ist ja eigentlich ein Dummy. Was soll dabei geschehen? Nur state im Dummy umgesetzt, oder auch die Nachricht weitergeleitet? Letzteres habe ich für Dummies erstmal unterdrückt, da sonst bei der Verwendung der Dummies als Schalt-Element (analog Deinem Dashboard im NodeRed) Endlosklreise entstehen. Ich überlege immer noch, wie man das am besten konfigurierbar macht.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

#100
Verstehe den Endlos Gedanken nicht gerade.

Ich habe zum schalten und antworten 2 Topics.
NodeRed zeigt am Schalter an was im topic /state anliegt und schaltet selber das topic /state/set
FHEM subscribed das topic /state/set und published in /state

Wo ist das nun der Loop? Genau so hab ich es bei allen Geräten :-)

Und vorhaben - was bisher auch ging bis zum Update zu einer der letzten Versionen (es fällt ja immer erst nach ner Weile auf) war eben, dass der Dummy im STATE auf on/off geschaltet wird.

Richtig hart trifft mich das bei meinem Dummy "Heizungssteurung" - der ist ein rein logischer Schalter für einige DOIFs :-D und nun geht er nicht mehr.
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

Vermutlich wird dein Dummy schon geschaltet, nur meldet es sein Status nicht mehr.
Kreise entstehen bei dir nicht. Aber in dem Fall, wenn man einen Aktor mit einem Dummy als Schaltelement verwendet. In deinem Fall müssen empfangene Nachrichten weiter geleitet werden, in dem anderen Fall eben nicht. Daher muss das konfiguriert werden können. Bin dran.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

 ;D Mich wundert, dass es in einer alten Version (ich hab leider echt keine Ahnung welche Sprünge ich gemacht habe in den Versionen) tadellos funktionierte :-D

Es war ja laufendes System hier. 8)

Danke dir!  :-*
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

Wegen entstandenen Endlosschleifen habe ich die Speere für Dummies eingebaut. Früher ging das, dafür was anderes nicht.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Wäre ne schaltbare Sperre nen Deal  8) ?
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.... ;-)