NEWS
Werte aus JS auslesen und in Datenpunkte einfügen
-
@fimoknete warum nimmst du nicht den Modbus Adapter?
der bereitet dir alles vor und legt die Datenpunkte an. -
Ach es gibt noch Leute - die sich für die hervorragenden Knoten interessieren. Ich dachte schon - alle wollen nur noch puzzeln und langsam werde ich mich hier verabschieden - aber es scheint dann doch noch den einen oder anderen zu interessieren.
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
ich habe den websocket gefunden und bekomme den in nodered
wie bekomme ich das nun in iobroker?
Also Du wandelst einfach das in ein Objekt um, in dem Du eine JSON Node nimmst und diese auf msg.data setzt. Dann extrahierst Du den SoC Wert. Ich mach Dir gleich einen Flow - ist halt immer nur schade, dass Du das ganze Objekt nicht hier einstellst, dann kann man es leichter simulieren.
-
er hat ein neues Thema dazu eröffnet
Datenstrom aus Nodered filtern und in Datenpunkt ausgeben. -
@mickym sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Genau wie @Homoran auch versucht - bevor Du es mit NodeRed versuchst nimm doch lieber ...
nee, nee mein Lieber. Diesmal nich!
@fimoknete meinte ganz zu Beginn dass er den Modbusadapter nie zum Laufen bekommen hat, hat aber keine einzige Informationen dazu geliefert.
Seitdem versuchen wir ihn erst hardwaremäßig dahinzubekommen, dass er Modbusdaten in seinen Rechner bekommt, und jetzt, da das anscheinend klappt springt er auf einmal zu node-red.kann er ja gerne machen, aber dann frage ich mich, was ich hier 100 Posts gema3habe und er soll nicht sagen, dass der Modbusadapter nicht läuft,
-
@homoran sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
@mickym sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Genau wie @Homoran auch versucht - bevor Du es mit NodeRed versuchst nimm doch lieber ...
nee, nee mein Lieber. Diesmal nich!
@fimoknete meinte ganz zu Beginn dass er den Modbusadapter nie zum Laufen bekommen hat, hat aber keine einzige Informationen dazu geliefert.
Seitdem versuchen wir ihn erst hardwaremäßig dahinzubekommen, dass er Modbusdaten in seinen Rechner bekommt, und jetzt, da das anscheinend klappt springt er auf einmal zu node-red.kann er ja gerne machen, aber dann frage ich mich, was ich hier 100 Posts gema3habe und er soll nicht sagen, dass der Modbusadapter nicht läuft,
Ich habe den provokanten Satz rausgestrichen.
Ich hab immer nur manchmal den Eindruck .... -
@mickym Erstmal bin ich froh, das mein SOC jetzt im IObroker ist. Trotzdem werde ich das mit dem Modbusadapter weiterverfolgen.
Ich klöppel mir nächste Woche mal ein Y-Kabel zum RS485 Ausgang der Batterie. Dann kann das Monitoring Tool erst mal weiterhin die Registerabfrage übernehmen und ich kann dann erst mal die Pakete auf dem Sendekanal gleichzeitig mithören (soweit die Idee). Dann sollten wir bald die richtigen Register kennen. -
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
mal ein Y-Kabel zum RS485 Ausgang der Batterie.
nein!
das klappt nicht!@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Dann kann das Monitoring Tool erst mal weiterhin die Registerabfrage übernehmen und ich kann dann erst mal die Pakete auf dem Sendekanal gleichzeitig mithören (soweit die Idee
auch das geht nicht.
Es kann immer nur ein Programm auf den USB Port zugreifen. -
Wenn du willst mach doch kleine Erklärungen für einfache übliche use cases wie den hier.
Web requests json eonlesen, ein oder mehrere Werte extrahieren und in Daten Punkt schreiben.
Evtl begeistert du dann noch mehr für node red
Die User cases kannst du aus den ganzen blockly fragen ableiten (Trigger, was überwachen, einfache Steuerlogik, etc)Wenn ich nicht Javascript könnte würde ich auch eher Mode Red wählen weil es einfacher erweiterbar ist.
Blockly ist da etwas beschränktHauptproblem bei den ganzen Logikmaschinen ist das die meisten ihre komplexen Probleme nicht in kleinere teile aufteilen können und diese jeweils separat umsetzen. Da sind die viele überfordert.
Da ist dann eine grafische aufbereitung halt etwas ansprechender.
Immerhin liegt das alles voll im Trend , nennt sich no oder Low Code. Man muss sich Mal die ganze Power Reihe (bspw automate) von Microsoft anschauen was da in der Cloud angeboten wird
Meine Ansicht ist halt, wenn man schon Ablauflogik lernt dann lieber gleich ne richtige Programmiersprache als was dazwischen was einem wieder Grenzen aufzeigt sobald man was will was der Programmierer nicht vorgesehen hat.
Aber gut ist halt so -
@oliverio Na ja der Riesenvorteil von NodeRed ist nicht nur, dass Du beliebige komplexe Teile (ganze Adapter im iobroker Jargon) in Nodes kapseln kannst, sondern auch die einzelnen Kabel. Damit kann ich mal schnell ein Kabel durchtrennen oder nur Teile ausführen, in dem ich Daten in den Flow einspeisen kann. Das geht alles viel intuitiver in Blockly.
Webrequest oder auch andere Dinge basieren ja immer auf Javascript Objekten (ein Nachrichtenobjekt in NodeRed ist ja nichts anderes). Aber viele beschäftigen sich ja nicht mal damit, wie ein Objekt oder Array aufgebaut ist.
Wie gesagt, ich hab ja auch nichts dagegen, dass man sich frei entscheidet, was einem besser liegt. Aber die meisten fangen mit Blockly an - warum auch immer - wahrscheinlich weil ihnen die meisten ein Blockly als Lösung anbieten - und wenn ich dann sag, das wäre in NodeRed viel eleganter zu lösen, dann kommt meist, nee da hab ich kein Bock mich damit auch noch zu beschäftigen.
Den einen oder anderen, der wirklich sich auf beides eingelassen hat, hat sich dann überzeugen lassen.
Ich glaube zwar dass ich schon etwas programmieren kann, aber ich merke einfach, dass ich mit den Nodes viel einfacher ans Ziel kommt, da ich oft Korrekturen viel leichter einarbeiten kann.
Mit den UseCases mache ich gerne, wenn Bedarf besteht. Ich habe ja auch so manche Threads gemacht, wie
https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
hier habe ich sogar Blockly Lösungen den NodeRed Lösungen gegenüber gestellt .
Oder hier habe ich sogar gezeigt, wie man Objekte voll automatisch in einzelne Datenpunkte zerlegen kann:https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Diese Threads werden ja durchaus gelesen, aber die liest kein Blockly User, wenn er sich zum x-ten Mal mit JSON Objekten auseinandersetzt.
Selbst mit JSONATA - obwohl direkt in Blockly oder in JS verfügbar, wird kaum genutzt, obwohl dieses Teil so genial ist.
Wie gesagt ich habe auch KEIN Problem, wenn wirklich jemand mal Interesse hat, wie man ein Blockly Lösung in NodeRed abbildet, aber das Interesse ist immer weniger, da alle Neuen zum Puzzeln animiert werden.
Ich könnte auch so was machen:
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tippsaber ich befürchte, dass da halt kein Interesse besteht.
Wenn man solche Threads so aufziehen würde, dass man die gleichen Szenarien mit allen 3 Möglichkeiten umsetzt, dann würde ich ja meinen Teil beitragen. So werden halt immer mehr Anfänger "vorkonditioniert".
Inzwischen braucht man sich ja nur anzuschauen, wie die Gewichtung inzwischen aussieht:
Das hat vor ein paar Jahren noch nicht so krass ausgesehen.
-
@mickym sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Das hat vor ein paar Jahren noch nicht so krass ausgesehen.
ich hab ja auch vor Jahren mit node-red angefangen als Bluefox das in iobroker brachte.
@oliverio sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
lieber gleich ne richtige Programmiersprache als was dazwischen was einem wieder Grenzen aufzeigt sobald man was will was der Programmierer nicht vorgesehen hat.
ich bekomme ims Verrecken die Syntax von js nicht hin. Und jede Zeike wieder irgendwo nachschlagen macht einfach keinen Spaß.
Damals kam Script GUI
nicht richtig in Schwung, Blockly gab es noch nicht.Aber man musste immer wieder function nodes verwenden, und darin brauchte es wieder natives js.
Als dann Blockly aufkam, funktionierte damit noch lange nicht alles, so dass ich lange beide Systeme parallel fuhr.
Inzwischen komme ich mit Blockly gut zurecht, brauche kein natives js mehr, auch wenn man mit js-Funktionen in Blockly noch mehr herausholen könnte.Optisch kommt mir node-red ziemlich verworren vor, was meinem Sinn für saubere Strukturen entgegen steht.
-
@homoran sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Aber man musste immer wieder function nodes verwenden, und darin brauchte es wieder natives js.
Das stimmt halt nicht - Du wirst in meinen Flows so gut wie keine function Nodes mit Javascript entdecken. Es wird oft verwendet, aber meist von Leute, die sich von herkömmlicher Programmierung nicht trennen können.
Optisch kommt mir node-red ziemlich verworren vor, was meinem Sinn für saubere Strukturen entgegen steht.
Diese Flexibilität ist aber gerade wichtig. Außerdem kann man mit Gruppen und farblichen Hervorhebungen, hier sogar noch besser funktionale Blöcke bilden.
Und ein Objekt in Blockly aus Textbestandteilen zu erstellen ist ja wohl alles andere als übersichtlich.
-
@homoran Schade. Dann geht das nicht.
Andere Idee. Irgendwo im Script muss doch verankert sein, welche register das monitoring anspricht. Wo könnten die sonst herkommen? -
@mickym sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Das stimmt halt nicht -
doch!
@mickym sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Du wirst in meinen Flows so gut wie keine function Nodes mit Javascript entdecken.
mag ja sein, dass es jetzt ohne function nodes geht. In deinen Flows sehe ich nodes, die gab es damals nicht.
wir (bzw. ich) reden von 2015!
Die Reste meiner damaligen Doku liegt hier https://www.iobroker.net/docu/index-280.htm?page_id=4284&lang=de@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Schade. Dann geht das nicht.
was?
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Irgendwo im Script muss doch verankert sein, welche register das monitoring anspricht.
welches Skript?
Die Register hast du doch in deiner Tabelle.
wenn ich mich richtig erinnere war 1008Hex der SoC -
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Irgendwo im Script muss doch verankert sein, welche register das monitoring anspricht.
welches Skript?
Die Register hast du doch in deiner Tabelle.
wenn ich mich richtig erinnere war 1008Hex der SoCWir haben doch alle Register probiert. Es war doch noch nicht mal eine Kommunikation herzustellen. Von der Bat kam doch gar keine Antwort. Daher nehme ich mal an, dass ich grundsätzlich etwas falsch mache. LAut Manual war doch alles richtig verdrahtet.
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Wir haben doch alle Register probiert. Es war doch noch nicht mal eine Kommunikation herzustellen. Von der Bat kam doch gar keine Antwort. Daher nehme ich mal an, dass ich grundsätzlich etwas falsch mache.
deswegen solltest du ja alles zeigen was du machst..
Nachdem die Verdrahtung stand hätte nur nochvder Adapter konfiguriert werden müssen.
ich habe leider nie etwas zu sehen bekommen.Aber von mir aus machen wir das nochmal.
Saubere Verdrahtung und keine parallele Nutzung des USB ports sowie des Busses ist Voraussetzung. -
@homoran OK, danke für dein Verständnis. Nächste Woche probiere ich das nochmal.
Wir fangen dann von hier an, richtig?
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Wir fangen dann von hier an, richtig?
wenn das die Variante ist, die mit dem Testprogramm funktioniert hatte, JA!
-
@homoran Funktioniert hat das immer nur mit dem originalkabel.
-
Bisher sind ja keine Daten per ModbusMaster empfangen worden.
Dies könnte ja an der falschen Abfrage der Register / Registerbreite liegen.
Um den Weg zu prüfen:Battery < -> RS485/ USB Adapter <-> Rechner
Modbus Poll ausführen und alle Register automatisch auslesen.
- keine Werte zurückgegeben, Verkabelung, Treiber ....... falsch
- Werte angezeigt. Kabelweg wahrscheinlich i.O, Registerwert 41008 prüfen
wenn bei Modbus Poll keine Registerwerte zurück kommen wird das mit dem Adapter
auch nicht gehen.Es wäre sehr von Vorteil wenn du mal die Bedienungsanleitung der Battery hier einstellst.