Modul-Konzeption: Generic MQTT Bridge

Begonnen von hexenmeister, 21 Dezember 2017, 22:35:38

Vorheriges Thema - Nächstes Thema

hexenmeister

Wenn ich damit fertig bin, kann ich sie einchecken. Fehlt derzeit an freien Zeit.
Die letzten Versionen sind hier im Forum. Musst auch 00_MQTT von hier nehmen.
Bin derzeit unterwegs, kann leider keine hochladen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

Wäre es nicht sinnvoll die letzten Versionen einfach im 1. Beitrag als Ergänzung anzuhängen? Sowie deine Vorläufige Doku vom 05.03.  ;)

Für Neueinsteiger sicher Sinnvoll?

Danke für deine schnelle Antwort :D

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

Gebe ich dir recht. Es sind jedoch immer noch Testversionen. Doku fehlt fast komplett. Etc.
Ich will versuchen, in der nächsten Woche einiges nachzuholen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Billy

Mach dir nicht zuviel Stress, einfach das was es schon gibt in den ersten Beitrag
das wäre schon eine große Erleichterung.

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

Das kann ich auch erst machen, wenn ich einen vernünftigen Rechner habe, vom Handy komme ich an die Dateien nicht dran.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

SamNitro

Hey habe auf Rudi's MQTT2 umgestellt und jetzt startet FHEM nicht mehr mit deinem Modul
Hier der log auzug:
Undefined subroutine &MQTT::GENERIC_BRIDGE::client_subscribe_topic called at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 910.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

hexenmeister

Moin!
Mein Modul funktioniert mit dem neuen MQTT2 nicht. Zumindest nicht direkt. Wenn du den MQTT2_SERVER nutzen möchtest, dann lege noch die 'alte' MQTT-Modul-Instanz wieder an. Damit sich diese mit dem neuen Server (auf localhost) verbinden kann. Dann sollte auch die Bridge wieder funktionieren.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

SamNitro

Kannst du das mal bitte genauer erklären, meinst du über mosquitto? den habe ich schon deinstalliert. und sobald ich dein Modul ins Verzeichnis kopiere, stürzt FHEM ab.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

SamNitro

(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

hexenmeister

#174
Nein, mosquitto brauchst Du dann nicht mehr, stattdessen übernimmt MQTT2_SERVER die Arbeit.
Die alten MQTT-Module und auch meine GenericBridge können jedoch mit dem neuen Modul nichts anfangen (werden vermutlich auch nie können, die Impelentierung ist zu unterschiedlich). Die Verbindung sollte jedoch über einen Umweg möglich sein: das alte Client-Modul (MQTT) stellt eine Verbindung zum Server her. Ihm sollte egal sein, ob das Mosquitto oder MQTT2_SERVER sein wird. Die GenericBridge kann dann über den MQTT-Client die Daten mit dem MQTT2_SERVER austauschen.
Getestet habe ich das Ganze jedoch nicht. An einer direkten Unterstützung habe ich auch keine Interesse, da mir MQTT2_SERVER von seiner Funktionalität her nicht ausreicht. Ich benötige schon einen 'echten' Mosquitto. U.a. als Bridge zu anderem MQTT-Server im Cloud.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Ich bin endlich soweit, dass ich eine Version habe, die aus meiner Sicht nutzbar ist und freigegeben werden kann.  8)
An dieser Stelle vielen Dank an alle,die fleißig getestet haben! :)

Die letzte Version habe ich im Erstbeitrag angehängt und auch ins offizielle RePo eingecheckt (also ab morgen per Update).
Zwecks etwas besseren Übersicht erstelle ich gleich einen neuen Thread mit der aktuellen Beschreibung.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Geile Sache!

Vielen Danke deiner vielen Mühe, Arbeit und vor allem der Zeit! 8) 8) ;) ;) :D :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

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

rbothe

Hallo, ich finde den Ansatz mit generischem MQTT toll, komme aber mit der Anwendung / Syntax noch nicht zurecht.

Ich habe in fhem.cfg:

#defmod mqttGeneric MQTT_GENERIC_BRIDGE mqtt
defmod mqttGeneric MQTT_GENERIC_BRIDGE
attr mqttGeneric IODev mqtt
attr mqttGeneric mqttDefaults sub:qos=2 pub:qos=0 retain=0
attr mqttGeneric mqttPublish *:topic={"/haus/$device/$reading"}


Ist mqtt in defmod notwendig und ist es der HostName meines mqtt-Brokers?
was ist mqtt bei der IODev-Zeile, der Name meines mqtt-Brokers?
Wie kann ich Ports definieren, z. B. mit wasser:1884 ?
Muss es sein publish oder mqqtPublish? Ich sehe verschiedenen n Dokus.

Syntome:

In mosquitto_sub -d -v -h wasser -t '#'

sehe ich zwar die
Client mosqsub/3783-kvm2 received PUBLISH (d0, q0, r0, m0, 'fhem/temperatur/zimmer4', ...
die ich mit dem zusaetzlichen MQTT_BRIDGE definiert habe,
aber keinerlei von der MQTT_GENERIC_BRIDGE.

FHEM 5.8;
10_MQTT_GENERIC_BRIDGE.pm mit version 0.2.1 by hexenmeister,
1776  7214 72993 10_MQTT_GENERIC_BRIDGE.pm gross.
Log:
2018.09.01 19:59:39.793 3: No I/O device found for mqttGeneric
2018.09.01 19:59:39.815 1: client device hash no IODev provided


Danke
FHEM 5.6 auf 2 Linux-Servern als Highavailability Heartbeat- Cluster
1xCUNO
2x HMLAN via 1x VCCU redundant angebunden
Ansonst: wie erstelle ich eine Signatur? Gibt es eine Inventory Funktion im FHEM?

hexenmeister

#179
Wie direkt vor Deinem Post angegeben, die neue Version ist jetzt offiziell in Repo und dort sollen auch die Probleme diskutiert werden. Hier ging es um Konzeption und Entwicklung.
https://forum.fhem.de/index.php?topic=90735.new#new

Dort ist auch die Beschreibung (jetzt auch im Commandref) zu finden, die hoffentlich alle Deine Fragen benatwortet.
In jedem Fall ist Deine Version schon veraltet, mache zunächst ein Update.
Dann wäre wichtig zu verstehen, dass die GenericBridge nichts mit dem MQTT-Server zu tun hat. Den musst Du mit dem MQTT-Modul ins FHEM anbinden. Die Bridge stellt dann eine Möglichkeit zur Verfügung, die MQTT-Übertragung einzelnen Werte direkt in den Devices zu definieren, wo diese entstehen, bzw. gebraucht werden. Von alleine macht die Bridge jedoch nichts. Definiere entsprechende Attribute in den Devices.

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