MQTT - Symcon und Mosquitto auf Docker

Hallo zusammen,

nachdem mein IP-Symcon auf meinem Windows PC nach Update auf Version 7.0 ohne Ausführung der Migrationsanleitung nicht mehr richtig funktioniert, dachte ich, ich ziehe alles gleich auf meine Synology NAS um und erstelle ein komplett neues System.

Das hat bisher auch ganz gut funktioniert, Homematic läuft, Modbus Anbindung Wärmepumpe, SPS über HTTP läuft, selbst die M-Bus Wärmemengenzähler habe ich mittlerweile zum laufen gebracht.

Jetzt bin ich bei den MQTT Werten gelandet. Dies läuft irgendwie noch nicht.

Ich habe parallel zu Symcon auf der NAS auch Mosquitto auf Port 1883 laufen und auch Node Red. Meine Schaltsteckdosen (Nous und Gosund) senden auch fleißig ihre Werte an Mosquitto, diese kann ich problemlos über Nodered einlesen. Auch das Einlesen über MQTT.fx funktioniert und auch der alte Server auf dem PC schafft es, die Werte korrekt einzulesen

Bei den gleichen Einstellungen der IPS Dockerinstallation liest er die Werte einmal ein, danach kommt aber eine Fehlermeldung, dass die „Schnittstelle fehlerhaft“ sei.

Hat jemand eine Idee, woran das liegen könnte? Liegt es an den Ports, da Mosquitto und IPS ja nun die gleiche IP haben? Wäre schön, wenn es hier eine Lösung geben würde.

Vielen Dank für eure Zeit und Unterstützung.

Daniel

Sind alle Container per NAT angebunden?
Und wird Port 1883 auch zum Mosquitto Container geleitet? Sonst landen die Anfrage an Port 1883 ja am NAS, oder sonstwo.

Michael

Hallo Michael,

vielen Dank für die Antwort. Folgend mal die Konfiguration von mosquitto, symcon und nodered. Sind alle als bridge ausgeführt.
Wo müsste ich jetzt noch den Port 1883 einstellen? Bin im Thema Docker moch nicht so lange tätig :slight_smile:

NodeRed

Symcon

Danke.

Grüße
Daniel

Schaut eigentlich gut aus.

Hast du im Meldungsfenster geschaut welchen Fehler es gibt?
Michael

Schau mal beim Mosquitto → Der scheint ja die Verbindung aus einem Grund zu trennen. Oder im Debug vom MQTT Server in Symcon. Evtl. gibt es dort einen Hinweis.

paresy

Hallo ihr zwei,

vielen Dank für die Rückmeldung. Folgend der Log aus Mosquitto:

Und die Fehler/Meldungen aus dem Meldungsfenster:



Eventuell hilft das zur Klärung???

Danke!

Grüße
Daniel

Guten Morgen,

hat zu den Meldungen jemand eine Idee?

Mosquitto sagt ja, dass der Client schon verbunden ist und schließt dann die Verbindung. Danach verbindet er sich wieder. Leider werden dann aber die Werte nicht mehr aktualisiert und die Client Verbindung zeigt dann den Fehler an.

Betrifft tatsächlich nur die Docker Version, auf dem „alten Windows PC“ mit IPS 7 werden die Daten sauber aktualisiert…

Es wäre schön, wenn wir hier eine Lösung finden könnten.

Danke!

Grüße
Daniel

Wie habt ihr das gelöst? Ich habe zwar kein Docker aber mosquitto und ips auf einem raspi.

Da ein MQTT gerät den IPS derart mit Meldungen zuscheißt (und der lässt sich leider nicht davon abhalten) wollte ich mittels mosquitto und plug-ins die Topics in Richtung IPS rausfiltern, damit Symcon nur das bekommt, was es braucht…

Den Filter habe ich noch nicht.

Das Fehlerproblem ist bei mir identisch dem meines Vorredners.

Daher die Frage

Wie wurde das Problem gelöst?

Danke

Fuchskusu

Dann ändere doch in Symcon in der MQTT Client Instanz das Subscribe Topic.
Dazu gibt es dieses Feature in MQTT ab Werk.
Dafür braucht es kein Plugin o.ä.
Michael

Vielen Dank für die kurzfristige Rückmeldung.

Meine eigentliche Frage (ob und wie das o.a. Problem gelöst wurde) ist leider noch nicht geklärt.

Zum Lösungsvorschlag:

In der Theorie habe ich ihn verstanden, in der Praxis stellt sich das etwas schwierig dar, glaube ich mit meinem Verständnis für das MQTT - Prinzip.

Hier mal ein Auszug aus der Menge der Topics, welche durch den „Sender“ (openDTU für Hoymiles - Wechselrichter) verschickt werden:

solar/138291917350/0/current
solar/138291917350/0/efficiency
solar/138291917350/0/frequency
solar/138291917350/0/power
solar/138291917350/0/powerdc
solar/138291917350/0/powerfactor
solar/138291917350/0/reactivepower
solar/138291917350/0/temperature
solar/138291917350/0/voltage
solar/138291917350/0/yieldday
solar/138291917350/0/yieldtotal
solar/138291917350/1/current
solar/138291917350/1/irradiation
solar/138291917350/1/name
solar/138291917350/1/power
solar/138291917350/1/voltage
solar/138291917350/1/yieldday
solar/138291917350/1/yieldtotal
solar/138291917350/2/current
solar/138291917350/2/irradiation
solar/138291917350/2/name
solar/138291917350/2/power
solar/138291917350/2/voltage
solar/138291917350/2/yieldday
solar/138291917350/2/yieldtotal
solar/138291917350/3/current
solar/138291917350/3/irradiation
solar/138291917350/3/name
solar/138291917350/3/power
solar/138291917350/3/voltage
solar/138291917350/3/yieldday
solar/138291917350/3/yieldtotal
solar/138291917350/4/current
solar/138291917350/4/irradiation
solar/138291917350/4/name
solar/138291917350/4/power
solar/138291917350/4/voltage
solar/138291917350/4/yieldday
solar/138291917350/4/yieldtotal
solar/138291917350/5/current
solar/138291917350/5/irradiation
solar/138291917350/5/name
solar/138291917350/5/power
solar/138291917350/5/voltage
solar/138291917350/5/yieldday
solar/138291917350/5/yieldtotal
solar/138291917350/6/current
solar/138291917350/6/irradiation
solar/138291917350/6/name
solar/138291917350/6/power
solar/138291917350/6/voltage
solar/138291917350/6/yieldday
solar/138291917350/6/yieldtotal
solar/138291917350/device/bootloaderversion
solar/138291917350/device/fwbuilddatetime
solar/138291917350/device/fwbuildversion
solar/138291917350/device/hwpartnumber
solar/138291917350/device/hwversion
solar/138291917350/name
solar/138291917350/radio/rssi
solar/138291917350/radio/rx_fail_corrupt
solar/138291917350/radio/rx_fail_nothing
solar/138291917350/radio/rx_fail_partial
solar/138291917350/radio/rx_success
solar/138291917350/radio/tx_re_request
solar/138291917350/radio/tx_request
solar/138291917350/status/last_update
solar/138291917350/status/limit_absolute
solar/138291917350/status/limit_relative
solar/138291917350/status/producing
solar/138291917350/status/reachable
solar/138291917772/device/hwpartnumber
solar/138291917772/device/hwversion
solar/138291917772/status/last_update
solar/138291917772/status/limit_absolute
solar/138291917772/status/limit_relative
solar/138291917772/status/producing
solar/138291917772/status/reachable
solar/ac/is_valid
solar/ac/power
solar/ac/yieldday
solar/ac/yieldtotal
solar/dc/irradiation
solar/dc/is_valid
solar/dc/power
.....

Es sind am Ende fast doppelt soviel Datensätze (ich habe zwei Wechselrichter). Auf Seiten der openDTU lässt es sich leider nicht einschränken.

Davon benötige ich nur wenige Werte (max. 5%), u.a.
solar/138291917350/0/current
solar/138291917350/0/power
solar/138291917350/0/powerdc
solar/138291917350/0/temperature
solar/138291917350/0/voltage
solar/ac/is_valid
solar/ac/power
solar/ac/yieldday
solar/ac/yieldtotal
solar/dc/power

Nach meinem Verständnis kann ich das mit einer Einschränkung des Topics nicht regeln, da der niedrigste „gemeinsame Nenner“ /solar ist, damit ich meine Werte bekomme.

Ich bin wieder auf den MQTT in Symcon umgestiegen und habe Mosquitto deaktiviert.

Vermutlich habe ich aber etwas falsch verstanden.

Danke für jegliche Hilfe, vor allem die Beantwortung der obigen Frage.
ChatGPT meinte, dass Mosquitto noch eine zusätzliche „websocket“ Verbindung braucht. Soweit stecke ich aber nicht im Thema drin. Leider halluziniert die KI zu häufig, dass ich der idR nicht traue

Mfg

Fuchskusu

Habe es jetzt wie folgt gelöst (ohne die eigentliche Ursache behoben zu haben).

Auf meinem NAS habe ich zwei MQTT in Docker angelegt. Der Erste nimmt als klassischer Broker alles vom openDTU entgegen. Der Zweite hört dem ersten zu, arbeitet als Brigde und filtert nur die Topics raus, die ich brauche. Jetzt kommen von ursprünglich 150 alle 5 sekunden nur noch 10 oder so.
Im Symcon dann client socket und Splitter usw.
Weiterhin habe ich das retained flag im DTU deaktiviert und habe die anzahl der geöffneten Files für symcon von 1024 auf das 4fache erhöht.

Der Raspi ist halt an der leistungsgrenze. Muss wohl doch endlich komplett auf die NAS umziehen. Muss ich mir nur noch gedanken machen um die USB-Geräte, die direkt dranhängen…