- Was zeigt Dir denn ein Tool MQTT.fx oder MQTT Explorer? Kommt die Info vom zigbee Device im Broker an und wird von ihm weiterverbreitet? Welche Payload hat die Message?
- Was zeigt Dir das Web Interface des mqtt Plugins an (Broker Info: Anzahl Subscriptions, ...; mqtt Items: )
- Was zeigt Dir die Admin GUI in den Item Details zu dem Item an bei dem Du (Änderungsinformationen: Letztes Update, Zeit seit dem letzten Update, Update durch, ...)
- Ändert sich etwas wenn Du das Item statt vom Typ dict auf den Typ str änderst?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues MQTT Plugin
Einklappen
X
-
Also der Reihe nach schauen,
-
Msinn danke für die ausführliche Antwort. Ich habe ja dann nach deinem Input noch einmal gelesen und dann eben mitgenommen, dass modul und plugin zu verwenden sind - alles gut beschrieben!
ja, zigbee2mqtt ist ein gateway für den CC2531 zigbee USB Dongle, die spricht den MQTT broker an, und aktuell habe ich nur 1 zigbee Gerät, das mir über diesen gateway MQTT publications generiert bzw. generieren sollte, da es momentan wo hakt.
Einen Kommentar schreiben:
-
Dann überraschen mich Deine FragenZitat von jonsson Beitrag anzeigenan und für sich habe ich wirklich versucht alles zu lesen.
Denn der Im Release Thread verlinkte Blog Artikel beschreibt das schon ziemlich ausführlich.Zitat von jonsson Beitrag anzeigen... aber wie gehe ich mit dem neuen MQTT im core um?
- warum gibt es weiterhin den /plugin/mqtt Ordner?
Dann hättest Du das auch nicht so konfiguriert:
ohne das mqtt Plugin ist niemand da, der auf irgendwelche Topics lauscht.Zitat von jonsson Beitrag anzeigenMQTT config (module ist aktiviert, plugins mqtt und mqtt1 sind NICHT aktiviert)
Das mqtt1 Plugin ist das alte Plugin, welches nicht die mqtt Unterstützung im Core nutzt. Das wird mit SmartHomeNG v1.8 retired. Deshalb ist es auch (wie die Admin GUI anzeigt) als deprecated gekennzeichnet.
Zu zigbee2mqtt kann ich nichts sagen. Die Software kenne ich nicht.
Das klingt aber wie eine Umsetzung ZigBee zu MQTT und umgekehrt. Diese Software würde dann ja gar nicht direkt mit SmartHomeNG sprechen, sondern mit dem MQTT Broker den Du betreibst.Zuletzt geändert von Msinn; 07.05.2020, 14:46.
Einen Kommentar schreiben:
-
an und für sich habe ich wirklich versucht alles zu lesen. Also, mqtt als modul aktivieren und parametrieren, ebenso mqtt als plugin aktivieren, hier aber keine Parametrierung mehr notwendig. Dann sollte es auch mit zigbee2mqtt funktionieren?
Leider bekomme ich aktuell keine publications mehr, somit kann ich es gerade nicht testen
Einen Kommentar schreiben:
-
Den AbsatzZitat von jonsson Beitrag anzeigenich hoffe ihr nehmt mir die Frage nicht übel, aber wie gehe ich mit dem neuen MQTT im core um?
im Thread zu Release hast Du nicht gelesen, oder?Zitat von Msinn Beitrag anzeigenWas ist beim Update zu beachten?
Die Unterstützung des MQTT Protokolls ist in den Core umgezogen. Dadurch kann das Protokoll auch aus Logiken und mehreren Plugins genutzt werden. Dadurch ändert sich die Konfiguration. Ausführliche Informationen zu den Änderungen und zur Konfiguration finden sich auf www.smarthomeNG.de
Einen Kommentar schreiben:
-
ich hoffe ihr nehmt mir die Frage nicht übel, aber wie gehe ich mit dem neuen MQTT im core um?
- warum gibt es weiterhin den /plugin/mqtt Ordner?
- muss ich wenn ich zigbee2mqtt laufen habe noch etwas anderes konfigurieren?
Problem: Die Items werden nicht geschrieben/aktualisiert, weder das hilfs_item mit der kompletten payload noch die 2 anderen.
Items hätte ich wie folgt konfiguriert:
MQTT config (module ist aktiviert, plugins mqtt und mqtt1 sind NICHT aktiviert):Code:# zigbee.yaml test:[INDENT]hilfs_item:[/INDENT][INDENT=2]type: dict[/INDENT][INDENT=2]mqtt_topic_in: zigbee2mqtt/0x00158d0002f2f19d[/INDENT][INDENT=2]on_change:[/INDENT][INDENT=2]- ..wsd1_temp = value['temperature'][/INDENT][INDENT=2]- ..wsd1_feucht = value['humidity'][/INDENT][INDENT]wsd1_temp:[/INDENT][INDENT=2]type: str[/INDENT][INDENT]wsd1_feucht:[/INDENT][INDENT=2]type: str[/INDENT]
2020-05-06 22_08_11-Shngadmin.png
Verbindung zum MQTT broker steht:
und publications wären vorhanden:Code:[smarthome@SmartHomeNG ~]$ sudo systemctl status mosquitto.service ● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-05-06 22:23:33 CEST; 1min 55s ago Docs: man:mosquitto.conf(5) man:mosquitto(8) Main PID: 603 (mosquitto) Tasks: 1 (limit: 4915) Memory: 1.3M CGroup: /system.slice/mosquitto.service └─603 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Mai 06 22:23:32 SmartHomeNG systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker... Mai 06 22:23:33 SmartHomeNG systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker. Mai 06 22:23:38 SmartHomeNG mosquitto[603]: New connection from 127.0.0.1 on port 1883. Mai 06 22:23:38 SmartHomeNG mosquitto[603]: New client connected from 127.0.0.1 as SmartHomeNG.MQTT-module (c1, k60).
Code:[smarthome@SmartHomeNG ~]$ sudo systemctl status zigbee2mqtt.service ● zigbee2mqtt.service - zigbee2mqtt Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2020-05-06 22:01:19 CEST; 30s ago Main PID: 12462 (npm) Tasks: 23 (limit: 4915) Memory: 41.1M CGroup: /system.slice/zigbee2mqtt.service ├─12462 npm ├─12473 sh -c node index.js └─12474 node index.js Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: 0x00158d0002f2f19d (0x00158d0002f2f19d): WSDCGQ11LM - Xiaomi Aqara temp Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:warn 2020-05-06 22:01:23: `permit_join` set to `true` in configuration.yaml. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:warn 2020-05-06 22:01:23: Allowing new devices to join. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:warn 2020-05-06 22:01:23: Set `permit_join` to `false` once you joined all devices. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: Zigbee: allowing new devices to join. Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: Connecting to MQTT server at mqtt://localhost Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: Connected to MQTT server Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online' Mai 06 22:01:23 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:23: MQTT publish: topic 'zigbee2mqtt/0x00158d0002f2f19d', payload '{"batter Mai 06 22:01:24 SmartHomeNG npm[12462]: zigbee2mqtt:info 2020-05-06 22:01:24: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1Zuletzt geändert von jonsson; 06.05.2020, 21:27.
Einen Kommentar schreiben:
-
Meine Beobachtung: Ich habe das Verhalten auch bei mir gesehen. Allerdings nur für Items, die über Eval von anderen Items getriggert werden.Zitat von henfri Beitrag anzeigenQ: Versuchst Du von irgendwo her ein Update auf das Item zu machen, bevor die Initialisierung von SmartHomeNG abgeschlossen ist?
A: Ich wüsste nicht wie. Das kann höchstens intern durch Items, die getriggert werden passieren. Bewusst/manuell mache ich das nicht.
Ein sehr spezieller Fall, da dies im späteren Verlauf (wenn die Init-Phase abgeschlossen wurde) nicht mehr gesehen habe.
Stört mich persönlich nicht, könnte jedoch für andere User verwirrend sein.
Msinn : Vielen Dank für die Updates auf 1.7
Einen Kommentar schreiben:
-
Wenn Du den Hinweis im Thread zum Release und den verlinkten Blog Artikel zu MQTT gelesen hättest, hättest Du Dir die Nacht ersparen können.
Zum Zitat: Ja es gibt kein Plugin namens mqtt2 - oder jast Du unter plugins ein Verzeichnis dieses Namnes gefunden?
Btw.: Die Konfiguration über class_path und class_name ist veraltet. Du kannst einfach plugin_name nehmen. Für MQTT:
Dann musst Du Dich nicht um den Namen der Klasse und die Groß-/Kleinschreibung des Klassennamens kümmern. Die Admin GUI verwendet auch plugin_name zur Konfiguration.Code:mqtt: plugin_name: mqttZuletzt geändert von Msinn; 24.04.2020, 23:02.
Einen Kommentar schreiben:
-
ich hab gestern auf 1.7.1 aktualisiert und hatte das Problem das mqtt nicht startete.Zitat von Msinn Beitrag anzeigenWas ist das mqtt2 Plugin? Ich kenne nur mqtt und mqtt1.
Mein erster Fehler war, das aufgrund der Implementierung von mqtt in den Core ich dachte es liefe jetzt ohne plugin. Weit gefehlt, die Einsicht kam über Nacht.
Dann hatte ich eine Fehlermeldung bzgl classname bei mqtt und milight. Milight musste nur Großgeschrieben werden, beim mqtt- plugin steht jedoch in der pugin.yaml der
"classname: Mqtt2"
in der etc/plugin.yaml steht jetzt
mqtt:
class_name: Mqtt2
class_path: plugins.mqtt
#host: '127.0.0.1'
und es läuft .......
Einen Kommentar schreiben:
-
Hallo,
ich habe das ausprobiert.
Bisher sehe ich einen positiven (kein Fehler mehr) aber keine negativen Effekte.
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Das könnte man andenken. Du kannst Das bei Dir ja mal machen. Ich würde das, falls es bei Dir hilft dann allerdings genereller angehen und für alle Plugins lösen (entweder in der SmartPlugin Klasse oder in lib.plugin)
Einen Kommentar schreiben:
-
Hallo,
dann machen wir lieber hier weiter:
Das Plugin meldet sich so:Zitat von Msinn Beitrag anzeigenWas ist das mqtt2 Plugin? Ich kenne nur mqtt und mqtt1.
Code:2020-04-18 18:13:48 DEBUG Main PluginWrapper __init__: Section mqtt, classname Mqtt2, classpath plugins.mqtt 2020-04-18 18:13:48 DEBUG Main Plugin 'Mqtt2': args = '{'plugin_name': "'Mqtt'"}' 2020-04-18 18:13:48 INFO Main Module http: Registering webinterface 'mqtt' of plugin 'mqtt' from pluginclass 'Mqtt2' instance '' 2020-04-18 18:13:48 INFO Main self._applications['mqtt'] = {'Mount': '/mqtt', 'Pluginclass': 'Mqtt2', 'Webifname': 'mqtt', 'Pluginname': 'mqtt', 'Instance': '', 'Conf': {'/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/mqtt/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.realm': 'shng_http_webif', 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x7f8d25cb6470>>}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}}, 'Description': 'Webinterface mqtt of plugin mqtt'} 2020-04-18 18:13:48 DEBUG Main Plugins: Loaded plugin 'mqtt' (class 'Mqtt2') v2.0.0: MQTT Plugin, welches das MQTT Module von SmartHomeNG zur Kommunikation nutzt. 2020-04-18 20:13:54 ERROR Haustechnik.Hintertuer.Schloss.Action_out Item Haustechnik.Hintertuer.Schloss.Action_out: problem running <bound method Mqtt2.update_item of <plugins.mqtt.Mqtt2 object at 0x7f8d00088dd8>>: 'Mqtt2' object has no attribute 'alive'
Das Modul habe ich so aber nicht genannt
Und das plugin auch nichtCode:mqtt: module_name: mqtt broker_host: 192.168.177.3 broker_monitoring: true
Code:mqtt: plugin_name: Mqtt
Ja.Ich gehe mal davon aus, Du meinst mqtt.
Bist Du Dir sicher, dass Deine Installation eine saubere v1.7.x ist?
Ja, das habe ich auch gesehen.Der Fehler
kann bei normalem Betrieb nicht auftreten, da die run-Methode des PluginsCode:File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 214, in update_item if self.alive and caller != self.get_shortname():
den Wert alive initialisiert.Code:def run(self): """ Run method for the plugin """ self.logger.debug("Run method called") self.alive = True # start subscription to all topics self.start_subscriptions()
Ich wüsste nicht wie. Das kann höchstens intern durch Items, die getriggert werden passieren. Bewusst/manuell mache ich das nicht.Versuchst Du von irgendwo her ein Update auf das Item zu machen, bevor die Initialisierung von SmartHomeNG abgeschlossen ist?
Aber wäre es nicht sinnvoll in init() self.alive auf False zu setzen?
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Für das was Du hier ansprichst, muss nicht viel geändert werden. Die Liste dessen was für das MQTT Plugin ansteht ist aber in Gänze ziemlich lang und wie ich bereits schrieb, habe ich weder Lust noch Zeit das MQTT Plugin mehrfach anzufassen.
Die MQTT 5 fähige Version des paho-mqtt Packages war eigentlich schon vor rund einem halben Jahr erwartet worden. Bevor das nicht released ist, fange ich nicht mit dem Umbau an.
Der Umbau sieht vor, dass eigentliche MQTT Protokoll in den Core zu verlagern, so dass Plugins es nutzen können. Dann kann man entweder ein generisches MQTT Plugin nutzen (welches die Funktionalität des Bisherigen Plugins bereit stellt) oder ein Plugin schreiben, welches direkt auf das IoT Device zugeschnitten ist und MQTT einfach zur Kommunikation nutzen.
Einen Kommentar schreiben:
-
Hallo,
aber für das, was ich vorgeschlagen habe musst du doch gar nix umbauen. Ich habe doch sogar schon den entsprechenden Code gepostet - oder übersehe ich was?
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Klar ist das unabhängig vom mqtt 5.0. Ich habe nur keine Lust (und Zeit) das Plugin 2 mal anzupacken und umzubauen.
Einen Kommentar schreiben:

Einen Kommentar schreiben: