NEWS
[gelöst] - MQTT Broker nur über localhost erreichbar
-
Hallo Zusammen, ich arbeite erst seit drei Tagen mit ioBroker und komme mit folgendem Problem alleine nicht weiter:
Auf meinem Windows PC (WIN10) ist der ioBroker installiert und auch das Tool MQTTBox.
Der Windows PC hängt in meinem WLAN.
In ioBroker habe ich den Adapter MQTT Broker/Client geladen und wie folgt konfiguriert:
Das Tool MQTTBox konfiguriere ich wie folgt:
Mit diesen Einstellungen kann sich MQTTBox über MQTT lokal mit dem Broker verbinden und wenn ich einen Wert publishe, dann wird er vom ioBroker entgegengenommen und protokolliert. So weit so gut.
Wenn ich jetzt allerdings MQTTBox auf einem zweiten Rechner installiere und dieser im selben WLAN Netz hängt, erreiche ich den ioBroker mit den selben Einstellungen für MQTTBox nicht. Es kommt gar keine Verbindung zustande. Ich habe alternativ schon den MQTTExplorer Client ausprobiert mit demselben Resultat.
Das ganze ist nur eine Vorentwicklung, denn final soll ein Gateway, auf dem ein Python Paho MQTT Client läuft, Daten an den ioBroker senden.Wahrscheinlich habe ich ein Basic Thema nicht beachtet, aber ich komme nicht drauf.
Kann mir bitte jemand auf die Sprünge helfen - vielen Dank! -
Sorry, ich habe das falsche Bild von MQTTBox gepostet. Das sind die richtigen Einstellungen für den WLAN Test Case:
-
@bernd2023 sagte in MQTT Broker nur über localhost erreichbar:
Wahrscheinlich habe ich ein Basic Thema nicht beachtet
Dein "Basic-Thema" dürfte die Windows-Firewall sein
-
Hallo Codierknecht - das war's
Vielen Dank!
-
Hallo, jetzt funktioniert die MQTT Übertragung auch vom Gateway aus, wunderbar!
Doch mit dem Parsen klappt es nicht so, wie ich es vom MQTT Explorer Broker gewöhnt bin.
Das Gateway baut den MQTT string wie folgt auf:und so kommt beim ioBroker z.B. dieser String an:
{"A1PM.E3_Lmin": 14.278101921081543}Wie bekomme ich es hin, dass A1PM.E3_Lmin unter "Funktion" eingetragen wird und 14.278101921081543 unter "Wert"? Muss man das Parsen beim ioBroker selber codieren und wenn ja wie? Ich finde keine entsprechenden Einstellungen.
Vielen Dank für Eure Unterstützung! -
@bernd2023
Erstelle einen Alias und trage als Konvertierungsfunktion ein:JSON.parse(val).A1PM.E3_Lmi
https://forum.iobroker.net/topic/64427/mqtt-werte-konvertieren/3
-
war schon beantwortet
-
Vielen Dank für die Hinweise, bin damit sehr gut vorangekommen.
Wenn ich beim Alias den Original Datenpunkt mit seinen Eigenschaften übernehme, dann spiegelt dieser den Original Datenpunkt. Der Alias funktioniert also:
wenn ich allerdings die Konvertierungsfunktion verwende, wird dier Wert des Alias nicht mehr aktualisiert:
Ich schätze das hängt mit dem Zustandstyp und Rolle zusammen? Hier habe ich einiges durchprobiert aber ohne Erfolg.
Könnt Ihr mir bitte sagen, was hier nicht passt? -
Screen shot nachdem ich die Konvertrierungsfunktion nutze und auf Zustandstyp = Zahl und Rolle = State umgestellt habe:
-
@bernd2023
Der Wert sollte - so wie es aussieht - eine (Fließkomma-) Zahl sein.
Versuch's mal so:parseFloat(JSON.parse(val).A1PM.E3_Lmin)
Eine Rolle weise ich meinen Aliasen eigeigentlich nie zu.
-
Danke für Deinen Tip! Mittlerweile habe ich mein "Problem" so gelöst, dass das Gateway nur noch den Wert sendet und über das Topic steuere ich, dass der Wert auch da ankommt, wo er hinsoll. Damit entfällt die Notwendigkeit zu Parsen und damit benötige ich auch den Alias nicht mehr. Ich bin etwas unter Zeitdruck und konnte nicht mehr herumprobieren.
Damit ist das Thema erst mal erledigt. -
@bernd2023 sagte in MQTT Broker nur über localhost erreichbar:
Damit ist das Thema erst mal erledigt.
Schön wenn's funktioniert.
Dann ändere bitte im Eingangspost den Titel und setzt ein "[gelöst] - " davor. -
@codierknecht said in MQTT Broker nur über localhost erreichbar:
Dann ändere bitte im Eingangspost den Titel und setzt ein "[glöst] - " davor.
Noch eine Anfängerfrage: wie mache ich das? Ich habe hochgescrollt, konnte den Titel aber nicht editieren..
-
@bernd2023
Du musst Deinen ersten Post bearbeiten - dort kannst Du auch den Titel ändern. -
@codierknecht said in MQTT Broker nur über localhost erreichbar:
@bernd2023
Du musst Deinen ersten Post bearbeiten - dort kannst Du auch den Titel ändern.Danke!