NEWS
Mqtt zum Victron Cerbo GX ?
-
@humidor Somit ist dieser Weg zwar prinzipiell ein gangbarer aber in diesem Fall völlig falsch.
In dem Mode gibst du die Zahl 1-4 ein. Das topic ist aber Schwachsinn - weil das nur Objekt versteht. Wenn Du schon mit den blauen Nodes arbeiten willst und mqtt austauschen willst, dann brauchst Dich an keine Konvention zu halten.
Dann kannst auch 1-4 an das topic test/hallo schicken - das mit einer mqtt-In Node abonnieren und dann an die blaue Node schicken. Das ist durchaus ein Weg - aber dann mach nicht den Schwachsinn, dass Du das mit der offiziellen mqtt Schnittstelle vermischst.
Du kannst die blauen Node nutzen und eine eigene mqtt Kommunikation aufmachen, aber Du sollst es tunlichst vermeiden beides zu machen.
Wie gesagt den Wert 1-4 an das topic test/hallo zu schicken und das mit einer mqtt-In node zu subscriben und an die blaue Node weiterzuleiten - kann man machen - aber dazu brauchst Du dann keine Konvention beachten.
Also im Grunde: VERWENDE die blauen Nodes NICHT zusammen mit der offiziellen mqtt-Schnittstelle
-
@mickym da hast du mir wieder einige Fragen beantwortet, vielen Dank!
am Willen scheitert es ja nicht, sonst würde ich nicht hier sein und fragen, der Unterschied ist du bist auf der Theorieseite zu Hause - wie genau muss es funktionieren, ich bin auf der Praxisseite, gleich was realisieren, was ich suche bzw. brauche. Ich verstehe das. Für einen Tag Mqtt, hab ich doch schon was geschafft, der Rest wird auch noch, wie gesagt, am Willen scheitert es nicht und nein, das Bild kannte ich noch nicht, hast du vermutlich jemand anderen gezeigt und verwechselst das.Werde mir deinen Beitrag noch öfter durchlesen, noch lange nicht habe ich alles verstanden oder verinnerlicht. Fragen kommen auf und müssen gestellt werden, damit die auch wieder aus dem Kopf raus sind, blockieren mich sonst. Deine Beiträge werfen so manche Frage schon aus. Auch deine Schreibweise, wenn von du "Sie" schreibts, ja wer ist das jetzt der Client oder Broker.
Vor allem sind es die korrekten Bezeichnungen. Wenn von Client subscribed gesprochen wird, heißt das eigentlich, dass er dem Broker was sendet (Anforderung für Daten oder Information die er weiter verteilen kann). Im Prinzip ist der Broker die Datenbank.zum Verständnis:
Broker senden nur Informationen nach Aufforderung, dh der Client sendet die Aufforderung was er will, einen Wert, Topic oder alles.Der Broker liefert die Information unter N/... (N bedeutet? notification?)
Der Client fragt beim Broker Informationen unter R/... ab (R bedeutet? request?)
Der Client liefert dem Broker Informationen unter W/.. ? (w bedeutet? write? to broker)
-
@humidor Der Broker published die topics an die Clients, die dieses topic verwendet haben.
Der Broker liefert die Information unter N/... (N bedeutet? notification?) Nein - der Broker sendet/published seine Information an alle Clients, die ein topic subscribed abonniert haben. Dein Vectron OS/ Cerbo (keine Ahnung wer das wirklich macht) ist auch ein mqtt-Client, der alles unter R/ und W/ subscribed hat, also abonniert hat.
Was R/N/W bedeutet weiß ich auch nicht. Aber stell Dir vor Deine Batterie oder das Betriebssystem ist auch ein mqtt-client, wie jeder andere Client auch.Betrachte den mqtt-Broker einfach als eigene Einheit - die NIEMAND gehört.
Deine Batterie/Vectron/Cerbo subscribed einfach alles was unter R oder W steht. - Die Batterie macht also das Gleiche wie eine mqtt-IN Node, die folgende topics abonniert:
R/#
und eine zweite mqtt-IN Node, die
W/#
abonniert.Das etwas unter R oder W schreibt sind keine allgemeingültigen topics, sondern jedes Gerät kann selbst festlegen auf welche topics es hört.
R könnte so was wie Read für den Cerbo mqtt Client bedeuten, sprich wenn das jemand beschreibt
W könnte Write bedeuten also etwas an das Cerbo zu schicke
N könnte Notification bedeuten -
Das ist aber alles nicht wichtig - weil das Cerbo das einfach so festlegt.Der Broker liefert die Information unter N/... (N bedeutet? notification?)
Nein das ist schon wieder verkehrt. Der Broker liefert keine Informationen. Der Cerbo/Batterie ist ebenfalls ein mqtt-client, der published Information unter dem N topic an den Broker. - Der Broker verteilt diese Information an alle, die das topic subscribed haben.
Umgekehrt subscribed Cerbo/Batterie alle topics die unter W und R veröffentlicht werden. Dabei legt der Cerbo selbst fest, dass alles was unter R gepublished wird - Informationen anfordert und alles was unter W gepublished wird, da muss der Cerbo was machen.Also betrachte den Broker als eigene Einheit, die Informationen entgegennimmt und die Information an alle weiterleitet, die dieses Topic subscriebd haben.
-
@mickym ich muss schon verstehen wo der Client liest und wo er schreibt, das hab ich noch nicht restlich verstanden
Der Broker - die Datenkrake - published.
Der Client - der Informationslieferant - published und subcribed.
subscribed vom Broker um Infos aus der Datenbank zu erhalten (N/...)
oder um Befehler zu erhalten (W/...)- wo published der Client? R/.. ?
- wo published der Client? R/.. ?
-
@humidor R publishst Du in dem Du mit NodeRed als mqtt Client ein topic unter R beschreibst. Zum Beispiel den keepalive Datenpunkt. Der mqtt Client Cerbo subscribed die topics unter R und published die Informationen unter dem N topic.
Das hast Du doch schön in Deinem mqtt-Instanzen gesehen. Am Anfang war nur der N-Ast da, dann hast Du mit NodeRed oder einem andern mqtt-Client den R Ast beschrieben und dann wurden alle geforderten Informationen vom Cerbo Client in den N Ast gepublished
Den mqtt topic unter R zu beschreiben dazu brauchst Du im Übrigen kein NodeRed. Du kannst direkt im mqtt-Adapter in den Objekten den keepalive Datenpunkt beschreiben. Das kannst Du auch mit Blockly machen, falls Dich das ganze NodeRed verwirrt.
Um den R-keepalive zu beschreiben brauchst Du auch KEIN Node-Red - sondern das geht auch mit den mqtt-Instanzen im iobroker und Puzzleteilchen.
oder Du schreibst den Wert direkt in der Objektansicht des Admin Adapters im iobroker.
Du musst also nicht NodeRed lernen, wenn Du nicht willst und lieber über Puzzleteilchen über mqtt mit Deiner Batterie kommunizieren willst.
Lange Rede kurzer Sinn - wenn Du kein NodeRed nutzen willst um via mqtt mit Deiner Batterie zu kommunizieren, dann musst Du nicht.
-
@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.