NEWS
MQTT Keepalive im Skript
-
@mickym Um das in dem Beispiel benutzte Array zu verwenden gibst du das ArrAY
@humidor sagte in MQTT Keepalive im Skript:
@mickym das ist sehr schön, dass es da steht, wie setzt man es um, ich bin kein programmierer.... und das wird ja nicht gesagt, das muss man wieder rausfinden
Na um das unten gesagte Array zu senden modifizierst Du nur deine Inject NOde.
Hier die Inject Node zum Import:
und sendest das dann an den keepalive topic.
So kannst Du einzelne topics häufiger abfragen und andere weniger häufig.
-
@mickym ist das so ev. richtig? oder muss der payload anders injected werden?
-
@humidor Ja das passt schon - Du musst halt in das array nur reinschreiben, was Du haben möchtest. Und eigenltich hätte auch alles kommen müssen wenn Du eine leere payload schickst. Weiß aber nicht warum, warum das nicht gegangen ist. Jedenfalls funktioniert ja Deine Kommunikation grundsätzlich, sonst wäre es ja über die Serial 0 nicht gegangen. Ob es den Ast vebus etc gibt oder Du die verschiedenen solarcharger topics gibt weiss ich nicht.
Mit # nimmst du immer alles was darunter ist - das Pluszeichen ist hingegegen ein Wildcard auf der jeweiligen Hierarchieebene.
-
@mickym also das laden eines Wertes fkt. noch nicht
kommt nix
-
@humidor Na das ist doppelt gemoppelt.
Mit system/# nimmst Du ja alle was drunter ist, d.h. das oben drüber ist redundant. Keep Alive heißt ja auch nur dass Änderungen gepublished werden. Also wenn das Teil nichts ändert kommt auch nichts an. KeepAlive heißt nicht, dass es alles sofort published.
Wenn Du AKTIV was auslesen willst, dann musst Du direkt das topic ansprechen.
Wenn Du direkt den Power Datenpunkt auslesen willst
dann musst Du eine leere payload an das Power topic schicken.
So und nun Achtung: Die Antwort kommt im N Ast an - im R Ast sendest Du den Request.
-
@mickym öhmm, steh auf der Leitung
keepalive nur als trigger
der Datenpunkt direkt auslesen, sowie keepalive? dachte das wird nur als payload angehängt?
was ist das dann mit mehreren Werten?
einen R Ast habe ich nicht im Objektbaum -
@humidor Na keepalive verstehe ich so, dass diese topics gepu
@humidor sagte in MQTT Keepalive im Skript:
einen R Ast habe ich nicht im Objektbaum
Brauchst Du auch nicht. Ein Gerät wird nie auf ein topic was es hört selbst was veröffentlichen. Gibt das einfach in mit dem R in die mqtt Out NOde ein. Was Du im iobroker siehst ist nur ein Spiegel. Wenn da noch nichts veröffentlich wurde unter dem topic siehst du nichts. Du müsstest den Datenpunkt mit Send oder manuell anlegen. In Node Red kannst Du einfach das R topic in die mqtt out NOde schreiben.
-
@mickym den power habe ich schon so ausgesucht, da kommen Werte rein (serial)
damit das jetzt verstehe, die Mqtt Out mit keepalive lasse ich ohne payload, nur der Trigger drauf ?
ein weiteres Mqtt out mit payload auf den Wert
-
@humidor Nochmal sende einfach an den R Ast den kompletten Pfad eine leere payload.
-
@mickym ich verstehe das nicht was du sagst, es klingt logisch, ich hab aber null ahnung wie ich das in den nodes umsetze
ist das mal der richtige Ansatz?
-
@humidor sagte in MQTT Keepalive im Skript:
damit das jetzt verstehe, die Mqtt Out mit keepalive lasse ich ohne payload, nur der Trigger drauf ?
ein weiteres Mqtt out mit payload auf den WertAlso bei dem keepalive schickst Du ein Array mit allen topics die regelmässig, welche dich interessieren und die werden meines Erachtens nur wenn sie aktualisiert werden gepublished.
Wenn Du ein einzelnes topic auslesen willst, dann sendest Du es eine leere payload an dieses topic.
-
@humidor Nicht mit Punkt - mqtt topics werden immer durch / getrennt.
-
@mickym mit dem / macht keepalive jetzt auch alles, dh alles wird aktualisiert, keine einzelnen werte
wenn ich den anderen node als payload anhänge, ist ihm das scheints egalso wird alles immer aktualisiert
-
@humidor ja das ist ja richtig - wenn nichts drin steht dann alles - steht ja auch so in der Beschreibung
Musst halt Deine Daten reinschreiben
-
@mickym wie importiere ich diesen Code? - habs schon
-
@humidor Ja das ist ja richtig - vorher gings bei dir nicht weil Du einen Punkt reingeschrieben hast. Wenn Du halt nicht den ganzen systembaum haben willst, dann musst du das halt in dem array spezifizieren. Ich weiß nicht, ob man das mit dem R mitgeben muss aber ich gehe mal davon aus nicht.
Wenn Du also alles unter L1 haben willst dann musst Du in Dein topics array reinschreiben:
system/0/Ac/ActiveIn/L1/#
Das liest Dir dann nur die topics unter L1 aus.
-
@mickym fkt. noch nicht, keines der angestoßenen Injects
-
Du musst halt Deine Daten einfügen.
-
@mickym hab ich
-
@humidor Hast du auch deinen Broker eingetragen?