Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Habe mal testweise die __init__.py bei mir durch dei "neue" develop ersetzt. Hat allerdings nach dem Neustart meines FHEM wieder nicht funktioniert. Muss wahrscheinlich das komplette Plugin ersetzen, oder?
Also ich nutze im FHEM den integrierten MQTT broker. Wenn ich den FHEM neu starte verliert der smarthomeNG die Verbindung. Log müsste ich mal morgen aktivieren. und probieren.
Hab mich bei Plugin bzw Modul auch vertan, meinte das modul (/smarthome/modules/mqtt/*)
Wie gesagt, hatte das init File aus dem Dev genommen und meinen smarthomeNG neu gestartet. MQTT läuft dann mit dem neuen init File. Starte ich dann meinen Broker (FHEM) neu verliere ich trotzdem die Verbindung. Nach dem Neustart des smarthomeNG läuft alles wieder. Somit behebt das neue init File zumindest bei mir das Problem nicht.
Muss mir morgen mal die Log Geschichten anschauen, weiss nicht wie diese aktiviert werden. Mache dann mal Logs.
PS: Bewundere euch für die Arbeit die ihr macht. Smarthome ist einfach genial und absolut stabil.
So, habe nochmal durchgetestet. Anscheinend hatte ich gestern noch irgendwas verbastelt. mit der neuen Version der init (aus dem Dev Bereich) macht er einen sauberen reconnect nach einem disconnect. Somit läuft das MQTT Plugin wieder wenn im Hintergrund der Broker neu gestartet wird.
2022-04-26 08:32:53 WARNING modules.mqtt Disconnected from broker with returncode '7'
2022-04-26 08:33:09 NOTICE modules.mqtt Reconnected to broker
hat jemand eine Idee, wie ich dieses Problem eingrenzen kann?
Ich sende in SH ein Item auf MQTT. Laut log wird das durchgeführt:
Code:
2022-04-27 08:03:25 INFO modules.mqtt 'publish_topic()' - called from Plugin by 'publish_topic()'
2022-04-27 08:03:25 INFO modules.mqtt Plugin 'mqtt' is publishing topic '/KWL-PWM/cmd' with payload 'PWM,14,973' (qos=1, retain=False)
2022-04-27 08:03:25 DEBUG modules.mqtt cast_to_mqtt: data = 'PWM,14,973', type(data) = '<class 'str'>', bool_values ='None'
2022-04-27 08:03:25 INFO modules.mqtt Plugin 'mqtt' has published topic '/KWL-PWM/cmd' with payload 'PWM,14,973'
Du sendest einen anderen Topic (/KWL-PWM/cmd) als Du mit der Mosquitto Client Software mosquitto_sub empfangen möchtest (/KWL-PWM/status)
Nein, empfangen tue ich "#", also alles. Nur das grep filtert nach KWL und angezeigt wird nur etwas mit status - weil nix anderes ankommt.
Generell gilt übrigens: Ob ein Client (hier mosquitto_sub) etwas empfängt, sagt nichts darüber aus, ob der mosquitto Broker die Daten empfangen hat.
Und wo müsste man gucken, um zu prüfen, ob der Broker das erhalten hat? Im Log vom Broker?
Wie auch immer:
Es funktioniert wieder. Ich hatte den Rechner neu gestartet -- > hat nix gebracht.
Danach habe ich smarthome neu gestartet (hatte ich vorher natürlich auch schon) - jetzt geht es erstmal wieder...
Hattest Du evtl. den Broker neu gestartet bevor das Problem auftrat?
In v1.9.1 gibt es ein Problem beim Reconnect von SmartHomeNG an den Broker, nachdem die Verbindung abgebrochen war.
Das ist im kommenden Release 1.9.2 gefixt.
nee, den Broker habe ich nicht neu gestartet.
Das ist komisch - aber jetzt läuft es wieder.
Edit: was ich geändert habe -aber ich weiß nicht, ob es damit zusammenhängt: Ich habe das tasmota-plugin deaktiviert. Das lief aber vorher schon länger.
Ich versuche gerade mit dem Roborock Staubsauger via MQTT zu kommunizieren, was großteils auch prima klappt. Bekomme aber folgenden Fehler. Ne Idee, wie das zu lösen wäre?
Code:
Aug 16 21:21:32 CEST DEBUG modules.mqtt modules.mqtt.paho_client _on_log: Received SUBACK -- (__init__.py:_on_mqtt_log:597)
Aug 16 21:21:32 CEST DEBUG modules.mqtt modules.mqtt.paho_client _on_log: Received PUBLISH (d0, q1, r1, m28), 'valetudo/roborock_eg/MapData/map-data', ... (461 bytes) -- (__init__.py:_on_mqtt_log:597)
Aug 16 21:21:32 CEST DEBUG modules.mqtt modules.mqtt.paho_client _on_mqtt_message: RECEIVED topic 'valetudo/roborock_eg/MapData/map-data', payload 'b'x\x9c\x8d\x93M\x8b\xdb0\x10\x86\xff\xcb\x9c\x15\x90l}\xd8\xbe\xb6=\x14ZX(\xf4RB\x90m\x91\x15\xd8\x96\xb1\xb5\xdbM\x83\xff{G\xe3\x8f\xee\xe6\xd4\x83\xcc\xc3;\xe3w\xdeq\x94;\\.Mg\xe7\x19*\xf8i;\x17_\xda\xf0\xdd\x8e\xc0\xa0w\xd1~\xb6\xd1Bu\x87W7\xb4aB\xfdk\x0b\x95\xd0"g(M\xb3\x0f\x03T\x19\x83!\x0c\x8dC\x03Wf\x8d\xe1\xb58\x15\xae\xe0\'\xa9\xeb\xfadmS\x9f\xb2\\\x1a\xaeZ\xe1\x94\xe1\xb00\x98\xfd\x1f\x97l\xdf\xa0R"\xe3\x0cn+`i\xf4o\xae\xfbAu\xc5\xa0\xb37\x1c\x03\xd5\xaf\xfb\xbb\x98\x18\xe3[\xd2\x1f2\xda\xc9\xd9\x14N%\x9bx\x1bS\xa0\xdf\xb6\xeb`3M6g\x06\xad\xef\xdd\x90\x92\xcf[\x82;\xf4\x1e\xd7\x90\x06\xe7\xf5\x96"\x15H\x1e7\x95\xa5a`_\xaf\xa8q\xb5P\xcc\xbd\xbb\x14G\xb7\xd9\xba\x15\x97G\xb7\xd9W\xf9\x14^\x86\x08\x95\xd6(4\xa1\x1f\'7\xcf\xae}\xda\x03\xc9R\xb1\xe4%\xf0\xa9\xf1d\x07\xe5\x89\x8a\x1cI\x12\xa9\x83\x0cQ\xaa\x98]#RH\x8a\x8b\x8389e[\xd5\x10\x15t\xf67J\xea+YJ\x9e(\xc3\xa3\x0e\xd2\x89\xc4?\x92D8\x17\xbf\x14n\xb8M\xdbH\xac\x94#i\xa2l\xeb+\xb6,\x89\xd0\x0b\xbf\xd6{\x8d\x12\x90\xb6\x12\xbe+\xf8\x9e\x00=\xd3\xf4\x9cR\xecU"\xd2r\xd2\x8a\x9dH\x93\x87&\x0f\x8d6\x12+\xe9M\xd3\xe4\\\x10i\xda\x9fR\x9c\x17\xbc!n\x88>z\xf7x\xed\x9e\x82\x1f"\xde\xbd/\xa9|\xfbx\xf9\xd2\xaf\x9d\xca\xe9\x9dL\x19\xdcTi~>\xaea\xf3l\xa7\xab\x9b.]hlL\x7f\x9a\x85\xfd\xaf3\xd8\xe1\xda\xa1G\xc9?\xce\xd0\xfca\xc6\x14\xea\x10/c\x98\xfd:\xe1\xbc\xfc\x05d`\x06y', QoS '1', retain '1' -- (__init__.py:_on_mqtt_message:533)
Aug 16 21:21:32 CEST DEBUG modules.mqtt modules.mqtt.paho_client _on_mqtt_message: subscription 'mqtt-116': {'subscriber_type': 'plugin', 'callback': <bound method MqttPlugin._on_mqtt_message of <plugins.mqtt.Mqtt2 object at 0xa7a1e7a8>>, 'payload_type': 'str', 'bool_values': None} -- (__init__.py:_on_mqtt_message:560)
Aug 16 21:21:32 CEST ERROR modules.mqtt modules.mqtt.paho_client _on_log: Caught exception in on_message: 'utf-8' codec can't decode byte 0x9c in position 1: invalid start byte -- (__init__.py:_on_mqtt_log:595)
Zuletzt geändert von Onkelandy; 16.08.2022, 20:32.
Kurze Frage: Welche MQTT Protokoll Version nutzt der Staubsauger?
Was ich aus den Zeilen lese ist, dass das Item, welches die Daten empfängt anscheinend als String definiert ist, dass aber die Payload, welche vom Staubsauger kommt, sich nicht in einen String wandeln lässt.
In MQTT v3.x ist die Payload einfach ein Array of Byte, über dessen Interpretation sich Sender und Empfänger einig sein müssen.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Hm, ich tippe mal auf MQTT 3.1.1 - das einzige was ich finden konnte ist dieser Satz:
Valetudo will not receive any feedback from the broker if publishing fails due to ACL restrictions as such feedback simply isn't part of the MQTT v3.1.1 spec. MQTT v5 fixes this issue but isn't widely available just yet.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar