NEWS
Mqtt Verbindung, Paramter beschreiben ?
-
Hallo!
es besteht eine Mqtt Verbindung (Server ist ioBroker /Client).
im Objektbaum sehe ich alle verbundenen Werte
kann ich im Objektbaum direkt den Wert verändern und dieser wird übertragen?
kann ich aus Blockly den Wert verändern und er wird übertragen?Sry für die einfache Frage, aber ich denke aktuell klappt das was nicht.
Danke!
-
@humidor hast du dich mal mit dem Protokoll auseinander gesetzt ?? also bissel lesen musst du schon wenn du den nutzen willst
-
@arteck sagte in Mqtt Verbindung, Paramter beschreiben ?:
@humidor hast du dich mal mit dem Protokoll auseinander gesetzt ?? also bissel lesen musst du schon wenn du den nutzen willst
welches Protokoll meinst du, von Mqtt selbst?
wenn ich einen Wert im Objektbaum verändere, macht das der Mqtt Adapter dann nicht im Hintergrund?habs jetzt versucht auszutesten, aus dem Objektbaum fkt. es nicht.
wenn ich aus Blockly direkt auf den Wert schreibe, auch nicht
OK, dann benötige ich bitte einen Tipp, danke! -
Hallo
Also es ist so das du per Hand den Wert verändern kannst.
Weiterhin ist es natürlich auch möglich den Wert per Blockly zu verändern.
Das mit dem Protokoll betrifft vor allen Dingen die Datenübertragung vom Server zum Client.
Da müssen einige Sachen beachtet werden.
Dafür solltest du wie @arteck schrieb lesen das würde eine Post Inhalt übersteigen.
Hast du einen funktionierenden Client ?
Baust du dir grade einen ?
Wenn das so ist bitte erst mal die Beispiele ausprobieren um ein Gefühl für die Vorgehen zu erlangen.
Für den z.B. ESP32 gibt es da einen Haufen von Beispielen.Mann kann folgendes festhalten,
Von Hand kann man im MQTT-Server Werte sowie die Baustruktur Editieren/verändern.
Auch per Blockly oder Java geht das.
Von Aussen vom Client geht auch das verändern und das Empfangen und Senden von Werten.
Das sind mal die Basics.
Dazu gibt es dann noch einen Haufen von ich nenne die mal Gimmiks wie verzögertes Senden, Bestätigungen von Sendungen, Übertragungs-Überwachung und das Verhalten wenn mal etwas schief geht und und und.
All das musst du dir dann mal anlesen.
Der MQTT ist ein Mächtiges Ding und eigentlich Simpel (Wenn man das mal durchschaut hat).
Darum hat er auch so eine Bedeutung in der Sensor/Aktor Kommunikation und man trifft Ihn Häufig.Grüße aus dem Sauerland
Frank -
@berges01 Hallo Frank, danke dir für die Antwort.
Ich bin noch auf der Suche nach der Doku dazu, beim Github zum Mqtt Adapter finde ich nichts für mich, oder ich bin blind (weil ich kein Java kann).Mein Client ist ein go-E Charger (Wallbox für E-Auto)
die Verbindung steht, über den Go-E Adapter kann ich die Box steuern.
über Mqtt kann ich die Werte lesen, der komplett Baum wird dargestellt, Verbindung besteht, es werden Werte zyklisch aktualisiert (Bsp. Herz).vermute gerade, wenn beide laufen, dass sich diese beeinflussen? muss das noch testen.
habe den go-Adapter gestoppt, nein, auch dann bewirkt eine Manuelle Änderung im Objektbaum keine Änderung am Client? (alw = allow charging). wobei der Wert vom alw nicht geändert wird, er bleibt zBsp. truemir kommt vor, ich bin nur read-only ?
amp = Ladestrom, ändere ich diesen in der App, sehe ich die Veränderung im Objektbaum am Wert, ändere ich den Wert im Objektbau, ändert das nichts in der App.
dh senden von Werten fkt. nicht.
Mein eingegebener Wert bleibt im Objektbaum stehen, bis ich in der App den Wert veränder, dann wird er mit dessen überschrieben.ich denke hier liegt das Problem. (in der App kann ich read only einstellen, dann steht dort read only), wenn das deaktiviert ist, dieser Text. mM eine Fehlermeldung
so, wenn read-only in der App aktiviert ist
der Mqtt Adapter ist V2.4.0
-
Hallo
Beschreiben wie man bei Google sucht ist sich nicht nötig.
Da gibt es so viele Beiträge.Betrachte mal en Verzeichnisbaum.
Dann kann man so aufbauen wie man möchte aber die meisten bauen Ihn nach
intopic und outtipic auf. Hier ein Beispiel von Meinem MQTT.intopic wird vom Client hier ESP32_Dachboden gesendet
outtopic geht vom MQTT-Server zum Client gesendet.Änderst du nun irgendetwas händisch beim intopic so überschreibt der Client das sofort.
Änderst du etwas bei outtopic bekommt der Client das und kann darauf reagieren.Wie sieht das den bei deinem Baum aus ?
-
@berges01 ok, da habe ich keine Ahnung
der Baum wird von selbst erzeugt, ich mache da nichts. was du mit selbst anlegen vom Baum schreibst, kenne ich nur vom Modbus.
R/W ist ein Thema, mir wurde mitgeteilt auf amp zu schreiben
amp R/W uint8 Config requestedCurrent in Ampere, used for display on LED ring and logic calculations
-
@humidor
Schwierig von hier aus zu sagen.
Die Beschreibung ist nicht grade aussagekräftig.
Poste mal den kompletten Baum der vom Client vorgegeben wird.
Kannst du daraus nicht erkennen was nun rein und raus ist ?
Möchtest du den Ladestrom nun verändern oder nur messen ?
Lässt die Wallbox es zu den Strom Händisch zu verändern?
(Müsste eigentlich funktionieren denn sonst macht ein Energiemenagement-System keinen Sinn)
Das aber Händisch zu ändern macht keinen Sinn.
Also Veränderungen nur von einem dazu berechtigten System.
Könnte das also ein Problem der Berechtigung sein?
Zu viele Wenn und Aber und vielleicht ohne genaue Infos wird das scheinbar nichts.
Der wirst du möglicherweise den Support für die Wollbos beschäftigen müßen. -
wenn du das erste mal mit mqtt arbeitest, solltest du auf jeden Fall (wie weiter oben auch schon empfohlen) dich in die grundsätzlichen Funktionen einlesen.
Zu der Schnittstelle go-eCharger-API-v1
Hier wird beschrieben wie deine Kommandos ausehen müssen
eigener-mqtt-server
Hier was du nur empfangen kannst, und welche du absetzen kannst
Kommandos
Hier was diese Kommandos bedeuten
ParameterVielleicht hilft dir das etwas weiter.
Gruß, Karsten -
@hydrotec danke Jungs!
ich kann kein Java, ich programmiere somit nicht.
Ich nutze die DP im Objektbaum mit Blockly.Aktuell schaut es nach einem Fehler im Mqtt Adapter aus, ein Issue ist angelegt.
Ich möchte amp beschreiben (Vorgabe des Stroms in Abhängigkeit der PV-Leistung).
übere den go-e Adapter geht das, aktuell muss ich über 2 Adapter gehen
go-e zum Ansteuern
mqtt um die Info zum Kabel zu haben -
wie hast du deinen go-eCharger an mqtt angebunden?
Bzw. hast du den Adapter iobroker.mqtt als Server oder Client am laufen?
Verwendest du eventuell einen externen Broker, z.B. Mosquitto?
Wenn man nicht weiß wie deine mqtt Umgebung realisiert ist, kann man dir schwer weiterhelfen.
Du kannst auch einmal mit einer anderen Software (mqtt.fx) dich auf deinem Broker anzumelden,
und dort nachsehen ob die Befehle richtig ausgeführt werden. -
@hydrotec
kein Mosquito oder sonst, rein der Mqtt Adapter vom ioBroker als Server
der Client - go-E ist nur per IP eingebunden
automatisch wird der go-e im ioBroker registriert und der Objektbaum angelegt
mehr ist nicht. -
@humidor
kannst du mal bitte einen screenshot von dem ganzen Verzeichnisbaum machen, und hier einstellen.
Also den Bereich der noch vor dem Verzeichnis amp steht. -
@hydrotec gerne, das sind mehrere Bildseiten, also sehr viele DP, soll ich da von allen einen Screenshot machen?
wird alles autom. angelegt -
@humidor
OK
bei den Einstellungen des Adapters iobroker.mqtt den Haken bei "Use different topic names for set and get" gesetzt?
Bei get sollte dann "go-eCharger/069113/status" stehen.
Bei set sollte dann "go-eCharger/069113/cmd" stehen.
Kann sein das eventuell bei beiden noch ein "/*" angefügt werden müssen, musst mal testen.
Hab bei mir den Adapter nur als Client installiert, und Mosquitto extern, deswegen bin ich etwas auf die Doku zu dem Adapter angewiesen. -
@hydrotec Entschuldigung aber das stimmt so nicht. Wenn man diese Option anmacht, dann werden hinter jeden Datenpunkt set Punkte erforderlich. In der API steht doch auf welche Topics gehört wird und diese muss man manuell anlegen. Also einfach den cmd Datenpunkt snlegen
-
@mickym
Brauchst dich nicht zu entschuldigen.
Wenn ich Mist rede, dann kann, bzw. soll das gerne gesagt werdenWie gesagt, ich kann es selber nicht testen, und rein nach den Dokus ist immer etwas schwer das Richtige zu finden.
Edit:
Gerade gesehen, das es schon eine go-eCharger-API-v2 gibt.
Demnach sollte es eigentlich mit den seitherigen Einstellungen funktionieren.
Und diese Beschreibung zu mqtt deckt sich auch mit dem screenshot von @humidor -
@humidor
So wie das für mich auf deinem screenshot aussieht, hast du keine andere Möglichkeit die topics anzupassen.
Sonst werden ja deine anderen mqtt-clients nicht mehr erkannt, oder?
Wenn du es nach der Anleitung eingerichtet hast, dann kann es eventuell doch ein bug des Adapters sein.Entschuldige bitte, wenn ich dich mit der API-v1 durcheinander gebracht haben sollte.
Gruß, Karsten
-
@hydrotec Man kann zwar die Option unterschiedliche Topic Namen für setzen und lesen anhaken, ich rate halt deshalb davon ab, wenn man den Broker auch noch für was anderes nutzt.
Grundsätzlich ist es so, dass die Datenpunkte, auf die das Zielgerät hört (also auf die set Datenpunkte) selbst angelegt werden müssen, da das Gerät nur die Datenpunkte/Topics veröffentlicht die einen Status haben.
In dem Screenshot ist aber für den amp ja bereits ein set und result Datenpunkt vorhanden, so dass ggf. das Gerät hier doch schon leere Topics erstellt hat. In dem Fall muss man in meinen Augen doch gar nichts tun ausser den set Datenpunkt zu beschreiben und schauen, was in result dann rauskommt.
Das Einzige was ich festgestellt habe - mit dem der mqtt Adapter als Broker manchmal ein Problem hat, ist manchmal das ACK Flag. Das erkennt man dann aber wenn im Log entsprechende Meldungen sind, dass Fehler nach 11 Retries oder so auftauchen.
-
Danke für die Aufklärung.
Ich hab mir das Ganze noch einmal durchgelesen, und bin letztlich auch der Ansicht, das bei den Einstellungen im iobroker.mqtt nichts gemacht werden muss.
Auf dem screenshot sieht man aber, das unter result etwas angemeckert wird.
Eventuell muss man den Wert unter set auch in "" setzen. Ist laut Beschreibung der API nicht notwendig.Edit:
@humidor
Hast du eigentlich nur diesen einen Datenpunkt mit einem Wert beschrieben, oder auch mal einen anderen DP versucht?
z.B. lbr R uint8 Config led_bright, 0-255