NEWS
Mqtt zum Victron Cerbo GX ?
-
@mickym ja, ich sagte ja, nicht restlich verstanden
Node Red ist schon OK, ich kenne Json nicht, aber bin interessiert es zu lernen. Andere Möglichkeiten, wenn mans kapiert ev. einfacher für komplexe Aufgaben als in Blockly.
Blockly war meine bisherige Heimat, hat aber auch seine Grenzen.Die Topology Mqtt ist mir jetzt szsg bekannt, lese gerade das Doc dazu.
Eigentlich ist Mqtt nicht dazu da, dass der Client Aktionen am Broker startet, so mein Verständis. Man misbraucht es um Werte oder Anweisungen zu übergeben, in meinem Fall.
In meinem System liegt der Broker am Gerät das gesteuert werden soll, somit missbrauche ich den Broker um Anweisungen an das OS bzw. Gerät zu übergeben.
Am Ende mache ich es bewusst den Rest ignoriere ich.
Ich möchte es jetzt schon verstehen und wissen, wie ich aus Node-Red meine Befehle übergebe, das aber so, dass ich das Protokoll nicht verletze oder zerstöre.
Ob ich es dann noch in Blockly realisieren werden, ist dzt. noch offe. -
Eigentlich ist Mqtt nicht dazu da, dass der Client Aktionen am Broker startet, so mein Verständis. Man misbraucht es um Werte oder Anweisungen zu übergeben, in meinem Fall.
Nein Du missbrauchst da gar nichts - sondern das ist ganz normale Kommunikation.
Dein Cerbo/OS nutzt einen mqtt Broker, um mit der Aussenwelt zu kommunizieren. Du nutzt halt keinen externen Broker - sondern der Broker mit dem Dein Cerbo/OS kommuniziert ist halt festgelegt und fest verdrahtet und befindet sich auf der gleichen Maschine.
Es wird nichts missbraucht.
Tasmota/Shellies alles was mit mqtt funktioniert auch nach diesem Prinzip. Die Shellies hören auf bestimmte topics und führen dann entsprechende Aktionen aus oder publishen Infos. So schaut meine ganze Hausautomation im iobroker aus - da ich alles mit mqtt mache und weder Shelly/Sonoff/Zigbee Adapter nutze.
-
@mickym ok, dann folgt nun der nächste Schritt, wie mache ich die Steuerung vom OS am Broker richtig.
meine Vorstellung:
ioBroker Client Node Red - schreibt auf R/...modus was geändert werden soll.
Bezug ist hier N/...modus das vom Broker gepublished wurde
der Broker soll dies dann in seiner Datenbank ändern und die Änderung publishen -
@humidor Im R Ast schreibst Du Infos die ausgeben soll - unter W halt die Werte. Du hast doch in dem anderen Thread das komplette Wiki/github gepostet - da steht doch auf welche topics du schreibst.
Ich glaube mit ===> Pfeilen alles topics zum Auslesen von Daten, <==== zum Beschreiben für irgendwelche Einstellungen.
-
@mickym du verwechselst mich wieder, welche Wiki/github, welche topics, das suche ich noch
-
Hier in diesem Thread hat doch @adcrafter27 alles gepostet: https://forum.iobroker.net/post/1123441
Es ist mühsam, wenn ich alles hier selbst raussuchen muss.
https://github.com/victronenergy/venus/wiki/dbus#battery
Hier siehst doch alle topics
<- topics zum Lesen also unter R
-> zum Schreiben unter WDann ist doch irgendwo schon beschrieben gewesen mit Lesen und Schreiben - das warst DU!
Hier halt DEIN Posting in dem anderen Thread wo ich das beschreiben vorgestellt habe: https://forum.iobroker.net/topic/54892/mqtt-keepalive-im-skript?_=1707419768036
-
Das Ganze steht doch auch hier aus dem anderen Thread:
https://github.com/victronenergy/dbus-mqttDas sind auch N/R/W erklärt
N steht für Notifications
W steht für Write Requests
R steht für Read Requests
Also ich weiss nicht - genauer kann man es eigentlich nicht beschreiben.
In dem letzten Post aus dem anderen Request habe ich Dir auch gezeigt, wie man die W topics mittels eines JSON Objects beschreibst, also
{"value": -200}
um in irgendein topic den Wert -200 zu schreiben.
Wie gesagt inhaltlich sage ich nichts dazu - aber Du hast nun eigentlich alle Informationen.
-
@mickym Ja richtig, schon 1000 Infos auf mich eingeprasselt, hab das nicht richtig oder gar nicht abgespeichert bzw. zuordnen können.
Ich werde mir das genau ansehen. Danke!
-
@humidor Ja das verstehe ich schon.
Aber das was Du gemacht hast (auch wenn zufällig ist doch auch eine valide Methode) und für Dich einfacher.
Mach halt eigene topics und sammel die mqtt-In Nodes ein und dann sende sie mittels der blauen Nodes weiter - DU musst doch nicht über die offizielle mqtt topics kommunizieren. Die blauen Nodes machen es für Dich.
Schau mal was Du hier gemacht hast - ist doch gut:https://forum.iobroker.net/post/1125910
Also machs aber nicht mit irgendwelchen W topics - hast Du mal 1,2,3,4 an test/hallo gesendet wie ich gesagt habe??? - Das würde ich Dir emfehlen, damit vermeidest Du Fehler und nutzt die blauen Nodes die direkt auf das Cerbo OS zugreifen.
Das ist doch ein guter Anstatz:
Nur mach das halt über das topic test/hallo oder eigene topics!!!!
Es ist viel einfacher hier eine EIGENE Kommunikation über mqtt aufzubauen - nach Deinen Bedürfnissen, anstelle der mqtt Schnittstelle. Diese blauen Nodes kommunizeren direkt mit der Cerbo OS und das ist doch sehr komfortabel - da musst Du Dir keine topics merken!!!!
-
@mickym im Rückschluss habe ich ja fast kapiert wie es geht, nur ginge es...
ich habe wie in der Doc steht auf W/... geschrieben, aber das hat genau nichts bewirkt, der Broker hätte die Werte auf den DBUS schreiben sollen
dann der Umweg den W/... wieder auslesen, was eigentlich nicht notwendig sein sollte
-
@humidor Du hast keine Objekte geschrieben wie ich das gesagt habe - also {"value": 4} sondern nur 4. Wozu habe ich Dir dieses Posting gemacht: https://forum.iobroker.net/post/1123294 ????
Ich empfehle Dir mach eine eigene Kommunikation auf und nutze die blauen Nodes. Das ist viel einfacher und komfortabler.
-
@mickym ich nehme deine Empfehlung auf, keine Frage
dennoch möchte ich es doch wissen, warum das nicht ging und ich habe natürlich auch als Json übergeben, ohne Reaktion seitens Broker
ist es möglich da eine Info zu sehen, Fehler, Änderungen nicht angenommen usw... ? -
Hier steht nur 4 und kein JSON Objekt mit value 4.
Nochmal siehe hier - wie Du die 4 in ein Objekt packst mit einer Change Node. https://forum.iobroker.net/post/1123294Du kannst im N Baum suchen, ob es Fehlermeldungen gibt. Das weiß ich nicht. Jetzt geraten wir in einen Bereich, der nichts mehr mit allgemeinem NodeRed oder mqtt zu tun haben, sondern wo es um spezifische Eigenschaften und Einstellungen geht - und da bin ich RAUS.
-
@mickym das ist ein Bild mit der Zahl 4, auch mit {"value.... habe ich übergeben, halt kein Bild gemacht. folge bitte auch meinen Worten.....
-
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
@mickym das ist ein Bild mit der Zahl 4, auch mit {"value.... habe ich übergeben, halt kein Bild gemacht. folge bitte auch meinen Worten.....
Na wie gesagt da bin ich raus - das ist mir zu spezifisch. Ich empfehle Dir die Kommunikation mit den blauen Nodes.
-
@mickym das ist nicht spezifisch, das ist das Grundprinzip von Mqtt, schreibe auf W/... der Broker setzt das um.
-
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
@mickym das ist nicht spezifisch, das ist das Grundprinzip von Mqtt, schreibe auf W/... der Broker setzt das um.
Na wenn Du alles nach Beschreibung richtig in den W Ast geschrieben hast und auch als JSON Objekt und das Cerbo es trotzdem nicht frisst, dann ist es spezifisch. Ich kann Dir dann keine Antworten geben, warum das Cerbo das nicht frisst. An der Kommunikation an sich hapert es nicht - das haben wir ja mit dem test/hallo topic doch alles ausprobiert.
-
@mickym mode schnell geändert
das wäre dann auch lt. Doku korrekt
meine Abfrage und Übergabe an den blauen Node wurde sofort als Error ausgeworfen, das richtig ist, weil das Format für diese Übergabe nicht passt
der Zustand von mode hat sich nicht geändert, das hätte der Broker tun sollen.
-
@humidor na die blaue Node will ja vielleicht kein Objekt sondern eine Zahl - wie gesagt mach Deine eigene Kommunikation über mqtt und den blauen Nodes auf - da kommst Du weiter. Diese Error Meldung stammt ja sehr wahrscheinlich nicht von einer mqtt-Out NOde sondern einer blauen Node und die hat mit mqtt erstmal gar nichts zu tun.
Du hast doch das hier erfolgreich gemacht - dann weißt du doch ob du 1,2,3,4 eingegeben hast. und wie gesagt machs halt mit eigenen topics-
-
@mickym willst du mich nicht verstehen?
sagte doch, dass der Fehler korrekt ausgeworfen wird, weil das Format nicht stimmt.
hat doch mit dem Befehl an den Master jetzt nichts zu tun, war als Info, dass es auch übergeben worden ist und korrekt als falsch ausgeworfen wurde, dh die Kommunikation passt.erst sagts du, ich soll NIE über die blauen gehen, dann soll ich es, soll ich das verstehen.
nicht böse sein, aber es ist auch für mich schwierig hier zu folgen, dann inkonsistente Anweisungen zu bekommen, macht es noch schwieriger.