Was soll die ip Adresse 192.168.178.60 in der mosquitto config? Die hat da nichts verloren!
Damit sagst Du dem Broker, er soll auf der ip Adresse lauschen. Da der Rchner auf dem der Broker läuft kein Netzwerk Interface mit der ip Adresse hat, kann er nicht starten.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues MQTT Plugin
Einklappen
X
-
Jein... Vielleicht erstmal kurz nochmal die Architektur um Missverständnisse zu vermeiden.
192.168.178.44:
- SmarthomeNG
- Mosquitto MQTT Broker
192.168.178.60:
- Landroid Bridge (mit MQTT Interface)
Dshalb hatte ich in der plugin.yaml zuerst 'host: localhost', dann Deinen Vorschlag umgesetzt statt local host die IP-Adresse (192.168.178.44) einzugeben. Dabei hat sein ein Tippfehler eingeschlichen (192.168.168.44), beide Rechner sind im gleichen Subnetz.
Also kurz den Tippfehler korrigiert (Sorry für die Verwirrung!) - aber die Fehlermeldung bleibt der gleiche. Das wars also nicht, die Verwendung der IP-Adresse statt 'localhost' hat den Fehler nicht behoben.
Bin mir nicht wirklich sicher ob es an SHNG liegt. Ich hab grad mal die Ausgabe von "sudo service mosquitto status" mit der SHNG Installationsanleitung in der Doku verglichen. Sieht ähnlich, aber doch etwas anders aus:
Unbenannt.JPG
'exited' vs. 'active' - und eine Zeile fehlt ganz? Hab ich evtl bei der Mosquitto Installation was falsch gemacht?
Gruss
Marcus
Einen Kommentar schreiben:
-
Die Fehlermeldung wundert mich nicht im geringsten. Dein Mosquitto Broker ist auf IP Adresse 192.168.178.60 konfiguriert. Dem shNG Plugin hast Du aber "befohlen" einen Broker auf IP Adresse 192.168.168.44 zu kontaktieren. Da beide IP Adressen in unterschiedlichen Subnetzen liegen, müsste da schon ein Router dazwischen sein, sonst findet shNG (bzw. das betribessystem) keine Route zum Host.
Einen Kommentar schreiben:
-
Die Fehlermeldung ist geringfügig anders:
Meine plugin.yaml:Code:2018-09-21 22:49:37 INFO plugins.mqtt Connecting to broker '192.168.168.44:1883'. Starting mqtt client 'smarthome' 2018-09-21 22:49:37 ERROR lib.plugin Plugin 'mqtt' from section 'mqtt' exception: 'LogRecord' object has no attribute 'message' Traceback (most recent call last): File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 419, in ConnectToBroker self._client.connect(self.broker_ip, self.broker_port, 60) File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 768, in connect return self.reconnect() File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 895, in reconnect sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0)) File "/usr/lib/python3.5/socket.py", line 712, in create_connection raise err File "/usr/lib/python3.5/socket.py", line 703, in create_connection sock.connect(sa) [MARKIEREN]OSError: [Errno 113] Keine Route zum Zielrechner[/MARKIEREN] During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/smarthome/lib/plugin.py", line 129, in __init__ plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta, self._gtrans) File "/usr/local/smarthome/lib/plugin.py", line 567, in __init__ exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring)) File "<string>", line 1, in <module> File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 168, in __init__ self.ConnectToBroker() File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 421, in ConnectToBroker self.logger.error(self.get_loginstance()+'Connection error:', e) File "/usr/lib/python3.5/logging/__init__.py", line 1309, in error self._log(ERROR, msg, args, **kwargs) File "/usr/lib/python3.5/logging/__init__.py", line 1416, in _log self.handle(record) File "/usr/lib/python3.5/logging/__init__.py", line 1426, in handle self.callHandlers(record) File "/usr/lib/python3.5/logging/__init__.py", line 1488, in callHandlers hdlr.handle(record) File "/usr/lib/python3.5/logging/__init__.py", line 856, in handle self.emit(record) File "/usr/local/smarthome/bin/smarthome.py", line 132, in emit self._log.add([timestamp, record.threadName, record.levelname, record.message]) AttributeError: 'LogRecord' object has no attribute 'message'
die Mosquitto Config:Code:mqtt: class_name: Mqtt class_path: plugins.mqtt host: 192.168.168.44 # host: localhost or 127.0.0.1 port: 1883 qos: 0 # last_will_topic: 'shng/$online' # last_will_payload: False # birth_topic: 'shng/$online' # birth_payload: True # user: None # username (or None) # password: None # password (or None) # hashed_password: 1245a9633edf47b7091f37c4d294b5be5a9936c81 ... # === The following parameters are not yet implemented: # publish_items: no # NEW: publish using item-path # items_topic_prefix: 'shng' # NEW: prefix for publishing items # acl: pub # NEW: access control (none, pub, sub, pubsub) # tls: None # use TLS version (v1 or None) # ca_certs: '/etc/...' # path to the Certificate Authority certificate files
und vielleicht auch mal der MQTT Broker Service Status:Code:pid_file /var/run/mosquitto.pid log_dest file /var/log/mosquitto/mosquitto.log # include_dir /etc/mosquitto/conf.d listener 1883 # 192.168.178.60 persistence true persistence_location /var/lib/mosquitto/ persistence_file mosquitto.db # remote_username <your user name> # remote_password <your password> log_dest syslog log_dest stdout log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true allow_anonymous true password_file /etc/mosquitto/pwfile
Code:smarthome@smarthome:~$ sudo systemctl status mosquitto.service ● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker Loaded: loaded (/etc/init.d/mosquitto; generated; vendor preset: enabled) Active: active (exited) since Fri 2018-09-21 22:49:28 CEST; 5min ago Docs: man:systemd-sysv-generator(8) Process: 388 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 4915) CGroup: /system.slice/mosquitto.service Sep 21 22:49:28 smarthome systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker... Sep 21 22:49:28 smarthome mosquitto[388]: Starting network daemon:: mosquitto. Sep 21 22:49:28 smarthome systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker. smarthome@smarthome:~$
Einen Kommentar schreiben:
-
Benutz in der Konfiguration des Plugins mal die ip Adresse bzw. den dns Namen des Rechners statt localhost (127.0.0.1).
Ansonsten poste mal Deine vollständige Konfiguration des Plugins und des Brokers. Bei mir laufen shNG und der Mosquitto Broker einträchtig auf dem selben Debian System.
Einen Kommentar schreiben:
-
Ich bin grade dabei meinen RasiGrasi "Landroid Workx" über das MQTT-Plugin mittels der weweave/landroid-bridge und dem Mosquitto Broker in SHNG einzubinden.
Die Bridge scheint zu laufen (zumindest das Webinterface)
Der MQTT Broker meldet:
Im Log von SHNG finde ich folgende Fehlermeldung:Code:1536421560: New client connected from 127.0.0.1 as smarthome (c1, k60). 1536421777: Socket error on client smarthome, disconnecting.
Code:2018-09-21 21:37:30 INFO plugins.mqtt Connecting to broker '127.0.0.1:1883'. Starting mqtt client 'smarthome' 2018-09-21 21:37:30 ERROR lib.plugin Plugin 'mqtt' from section 'mqtt' exception: 'LogRecord' object has no attribute 'message' Traceback (most recent call last): File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 419, in ConnectToBroker self._client.connect(self.broker_ip, self.broker_port, 60) File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 768, in connect return self.reconnect() File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 895, in reconnect sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0)) File "/usr/lib/python3.5/socket.py", line 712, in create_connection raise err File "/usr/lib/python3.5/socket.py", line 703, in create_connection sock.connect(sa) ConnectionRefusedError: [Errno 111] Verbindungsaufbau abgelehnt During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/smarthome/lib/plugin.py", line 129, in __init__ plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta, self._gtrans) File "/usr/local/smarthome/lib/plugin.py", line 567, in __init__ exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring)) File "<string>", line 1, in <module> File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 168, in __init__ self.ConnectToBroker() File "/usr/local/smarthome/plugins/mqtt/__init__.py", line 421, in ConnectToBroker self.logger.error(self.get_loginstance()+'Connection error:', e) File "/usr/lib/python3.5/logging/__init__.py", line 1309, in error self._log(ERROR, msg, args, **kwargs) File "/usr/lib/python3.5/logging/__init__.py", line 1416, in _log self.handle(record) File "/usr/lib/python3.5/logging/__init__.py", line 1426, in handle self.callHandlers(record) File "/usr/lib/python3.5/logging/__init__.py", line 1488, in callHandlers hdlr.handle(record) File "/usr/lib/python3.5/logging/__init__.py", line 856, in handle self.emit(record) File "/usr/local/smarthome/bin/smarthome.py", line 132, in emit self._log.add([timestamp, record.threadName, record.levelname, record.message]) AttributeError: 'LogRecord' object has no attribute 'message'
Ich habe SHNG und Plugin Version 1.5.1.master auf Linux Debian. Der Broker läuft auf dem selben System, nur die Bridge auf einem separaten Raspberry.
Bin nicht so der MQTT Profi (mein erstes MQTT Projekt, hoffentlich nicht mein letztes), aber kann das ein Kompatibilitätsproblem zwischen dem MQTT Broker und SHNG sein?
Gruss
Marcus
Einen Kommentar schreiben:
-
mode Im Develop Branch findest Du die Version 1.4.6 des Plugins. es gibt 3 Änderungen:- Re-Subscribe für Topics, wenn der Broker nach einem Neustart Re-Connected
- Re-Publish für Topics mit Init-Eigenschaft, wenn der Broker nach einem Neustart Re-Connected
- Verbessertes Handling wenn das Login des Clients beim Broker fehlschlägt (Fehler bei Username/Password)
Einen Kommentar schreiben:
-
Eine Möglichkeit wäre natürlich auch dieses Verhalten konfigurierbar zu machen... Aber du denkst dir bestimmt was smartes aus
Einen Kommentar schreiben:
-
Schaue ich mir mal an.
Dazu werde ich mich noch etwas tiefer in MQTT versenken und nachlesen, wie die Schaffer des Protokolls sich den Umgang damit denken (nicht das wir mit einem anderen Broker oder einer neueren Version dann Probleme kriegen).
- Likes 1
Einen Kommentar schreiben:
-
mosquitto version 1.4.10 (build date Mon, 26 Jun 2017 09:31:02 +0100)
mosquitto is an MQTT v3.1 broker.
Könnte das Plugin nach dem "connection returned" die subscriptions noch einmal durchführen?
Einen Kommentar schreiben:
-
Der Broker hat durch den Neustart vergessen, welche Subscriptions es zu welchen Topics gab. Daher sendet er keine Informationen mehr an die bisherigen Subscriber aus. Ich bin mir nicht sicher wie die verschiedenen Broker damit umgehen und ob man beim Broker etwas konfigurieren kann.
Welchen Broker setzt Du ein?
Einen Kommentar schreiben:
-
Hi,
ich nutze das neue MQTT Plugin mit Begeisterung. Bin auf dem aktuellen Master Branch und habe ein Problem festgestellt.
Wenn ich den Broker neustarte, erscheint folgendes im Log:
Danach werden aber die Items nicht mehr durch MQTT upgedated. Es scheint so, als ob die subscription durch den reconnect verloren geht.Code:2018-05-11 00:20:53 INFO paho_mqtt Connection returned result 'Connection Accepted.'
VG
Mode
Einen Kommentar schreiben:
-
Hallo,
ich möchte meinen RGBWW Dimmer (H801) mit der ESPurna Firmware via MQTT integrieren.
Die MQTT Messages sind hier beschrieben. Die Werte werden als Payload gesendet.
Meine items sehen so aus:
Code:%YAML 1.1 --- Dimmer: One: Switch: type: num mqtt_topic_init: Dimmer/relay/0/set mqtt_topic_in: Dimmer/relay/0 Brightness: type: num mqtt_topic_init: Dimmer/brightness/set mqtt_topic_in: Dimmer/brightness CCT: type: num mqtt_topic_init: Dimmer/hsv/set mqtt_topic_in: Dimmer/hsv HSV: type: str mqtt_topic_init: Dimmer/hsv/set mqtt_topic_in: Dimmer/hsv
Msinn
Hier könnte ich nochmal Deine Unterstützung gebrauchen.
Wie kann es es erreichen, dass SUB und PUB auf ein Item passieren, ohne das das zur Endlosschleife wird?
Bei der obigen Konfiguration empfange ich die Rückmeldung (SUB), die dann gleich wieder gesendet (als PUB) wird. Somit entsteht eine Endlosschleife. Ich bin immer noch auf der Suche nach einer Möglichkeit, beides auf ein Item zu bekommen, so wie bei knx_listen und knx_send. Hier gibt es keine Schleife.
Danke.
Michael
Einen Kommentar schreiben:
-
Hallo,
ja, über ein Zusatz-Item meinte ich. Aber so elegant hätte ich es nicht geschafft.
Gruß,
Hendrik
Einen Kommentar schreiben:

Einen Kommentar schreiben: