NEWS
Eingangsmultiplexer?
-
Hallo Node Red ist relativ neu für mich aber durchaus verständlich. Ich habe viele (ca. 12) Eingangsdaten (Spannung , Strom, Power, Phase etc ... SmartPi V1) und möchte diese zyklisch einzeln oder sonstwie auf einer (!) Anzeige (2 x 16 LED-Matrix, Node "LCD-Pi") ) ausgeben. Ich finde merkwürdigerweise keine Beispiele oder gar einen Hinweis auf einen Node (Eingangsmultiplexer oder so) der das einfach kann ( Eingabe Kanal (Nummer oder Topic)) und zur Anzeige kommt nur die jeweilige msg:payload z.B. durch ihr Topic bestimmt. Das Problem scheint so einfach und tausendfach gebraucht ???, dass es mich wundert nichts konkretes zu finden
Habe die Vermutung, dass es mit einem/vielen "Basic-Node" (Change-Node?) Kombinationen funktionieren könnte aber irgendwie fehlt mir fast immer der zweite (variable-)Eingang aber das kann auch daran liegen, dass ich mit einem iPhone auch kaum zurecht komme, weil hier im Gegensatz zu Android irgendwie die "Back-Taste" fehlt (????) Also Denkfehler in der Philosophie der Anwendung ??? Mit BASIC hätte ich das Problem schon längst gelöst
Bin dankbar für jeden Hinweis/ Ansatz das "Problem" (fast) ohne "Funktion-Node" als Beispiel darstellen könnte aber natürlich auch im Dialog das Ganze zu entwickeln -
@myiobroker Am Besten Du machst mal ein Beispiel. Entweder nutzt Du die Datenpunkte im iobroker, ansonsten speicherst Du die Daten einfach in einem Objekt, wenn Du dieses dann an anderer Stelle im Flow brauchst auch über den Flowkontext abspeichern. Das topic ist einfach die Objekteigenschaft und damit kannst Du dann auch den Wert des Eigenschaft im Objekt wieder abrufen. Ich versuche es mal so ansatzweise darstellen.
Ansonsten musst Du halt mal eine konkrete Anforderung formulieren.
-
@mickym Erst mal vielen Dank für die schnelle Reaktion aber mit dem join-node komme ich wohl auch nicht weiter, auch wenn er mir sehr mächtig erscheint (?)
Ich möchte einen SmartPi (3 Phasen-Leistungsmesser) in meinen Zählerkasten montieren, weil ich nicht wirklich weiß was meine Wärmepumpe bei welcher Außentemperatur an "Power" benötigt (die Viessmann-API bietet da so einiges aber vieles auch nur mit Einschränkungen zumindest in der Grundversion) und da ich auch noch keinen SmartStromZähler habe natürlich auch was ich ansonsten so über den Tag "verbrauche" (Reflexlichtschranke an Zählerscheibe). Hinzu kommt noch ein "Balkonkraftwerk" das jetzt im Winter kaum was bringt, aber vielleicht im Sommer effektiver wird(!?) und z.Zt. über ein Shelly messtechnisch in den iobroker eingebunden ist.
Der SmartPi (ich habe noch die Version1, mit LCD-Anzeige und drei "Tasten" ergänzt) kommt mit einer eigenen "Oberfläche" auf einem Raspberry daher, die auch Einstellungen für MQTT hat, aber da ich keinen passenden Adapter habe/finde klappt das leider nicht mit der iobroker Kopplung oder ich weiß eben nicht wie Es gibt aber auch NodeRed auf der Oberfläche und wenn man den Sonoff-Adapter des iobroker mit den "richtigen" Topics benutzt kann man die/einige Werte zum iobroker auch übertragen. Mittels "join-node" dürfte dazu ein Kanal ausreichen und es dann auf dem iobroker wieder mit NodeRed und "split" zu zerlegen ist doch wohl möglich (?)
Ich stelle mir das ganze in etwa so vor:
wobei das mit dem "Eingangsmultiplexer" für die Anzeige eben mein "Problem" ist. Das muss natürlich nicht nur ein Node sein aber ich finde irgendwie keinen Node, der zwei Eingangswerte (payload mit topic und "auswahltopic" als zweiten Wert) auf einmal zulässt und einen Change-Node mit 3 bis 5 Regeln dazu zu bringen gelingt mir auch nicht (Denkfehler???) Der Ringzähler mit einen counter-node als Basis funktioniert so halbwegs und auch das "Formatieren" der Payload für die Anzeige scheint nicht wirklich ein Problem zu sein.
Fazit:- Ich suche einen "Node" der aus einem "Flow" (?) genau eine/die "Paylaod" filtern kann, die der manuelle "Ringzähler" als Eigenschaft (Topic) vorgibt.
- Wie kann ich den SmartPi (V1) direkt in den iobroker einbinden (ohne einen Adapter zu haben, der "Sonoff-Adapter" funktioniert ja nur bedingt (?)
-
@myiobroker sagte in Eingangsmultiplexer?:
mickym Erst mal vielen Dank für die schnelle Reaktion aber mit dem join-node komme ich wohl auch nicht weiter, auch wenn er mir sehr mächtig erscheint (?)
Ich möchte einen SmartPi (3 Phasen-Leistungsmesser) in meinen Zählerkasten montieren, weil ich nicht wirklich weiß was meine Wärmepumpe bei welcher Außentemperatur an "Power" benötigt (die Viessmann-API bietet da so einiges aber vieles auch nur mit Einschränkungen zumindest in der Grundversion) und da ich auch noch keinen SmartStromZähler habe natürlich auch was ich ansonsten so über den Tag "verbrauche" (Reflexlichtschranke an Zählerscheibe). Hinzu kommt noch ein "Balkonkraftwerk" das jetzt im Winter kaum was bringt, aber vielleicht im Sommer effektiver wird(!?) und z.Zt. über ein Shelly messtechnisch in den iobroker eingebunden ist.Ich bin grundsätzlich kein Elektriker und deshalb hab ich mit solchen Begriffen wie Ringzähler meine Schwierigkeiten oder Multiplexer meine Schwierigkeiten. Ich kann das zwar dann googlen aber ist nicht immer hilfreich. Ich empfehle Dir grundsätzlich - egal mit welcher Logikmaschine grundsätzlich folgendes Vorgehen - so kommst Du auch mit NodeRed am Besten zurück.
Was triggert - was will ich mit der Information machen (ausgeben, was schalten etc.). -- Das heißt Du hast ein Anfang und ein Ziel und dazwischen ist die Verarbeitung, wie du zu dem Ziel kommst. Das ist 10 mal wichtiger als mit Begriffen wie ich brauche ein Node die alles sammelt etc. - Nur mal als Tipp gemeint.
Sprich Du bekommst Daten rein und möchtest die erst mal ausgeben oder was berechnen und schalten - und das gilt es als erstes zu formulieren.
Der SmartPi (ich habe noch die Version1, mit LCD-Anzeige und drei "Tasten" ergänzt) kommt mit einer eigenen "Oberfläche" auf einem Raspberry daher, die auch Einstellungen für MQTT hat, aber da ich keinen passenden Adapter habe/finde klappt das leider nicht mit der iobroker Kopplung oder ich weiß eben nicht wie Es gibt aber auch NodeRed auf der Oberfläche und wenn man den Sonoff-Adapter des iobroker mit den "richtigen" Topics benutzt kann man die/einige Werte zum iobroker auch übertragen. Mittels "join-node" dürfte dazu ein Kanal ausreichen und es dann auf dem iobroker wieder mit NodeRed und "split" zu zerlegen ist doch wohl möglich (?)
Das ist etwas was Du Dir grundsätzlich überlegen kannst. Will ich in meinem System einen MQTT-Broker als zentrale Datendrehscheibe installieren willst oder willst Du nur alles im iobroker haben? Die Einstellungen sind Verbindung zu einem MQTT-Broker aufzubauen. Dafür kann man mosquitto verwenden (nutze ich) oder Du kannst einen MQTT-Broker Adapter verwenden oder Du benutzt den MQTT-Adapter als Client. Mit einem zentralen MQTT-Broker kannst Du im NOdeRed die mqtt-Nodes nutzen usw. - Wenn ein Node-Red System mit einem anderen Node-Red System verbinden willst geht das dann auch über MQTT-Datenaustausch oder direkt über HTTP - da Du jede Node-Red Instanz auch als Webserver verwenden kannst.
Eventuell brauchst auch gar keine JOIN Node. Wichtig ist, dass Du mit Objekten, Arrays umgehen kannst. Dann kannst Du auch mit Nachrichtenobjekten umgehen, die durch die Flows fließen. Die ganzen Daten kann man dann einfach auch in Flow-Kontext als ein oder mehrere Objekte speichern.
Die Frage in Deinem Flow ist deshalb in meinen Augen verkehrt. Die Fragestellung für einen korrekten Flow - heißt erst mal welche Daten werden auf dem LCD angezeigt - da einzelne Werte wohl nicht adressiert werden - muss ein kompletter Satz übertragen werden, auch wenn sich nur ein Wert ändert. Wichtig ist also nicht irgendein Eingangsmultiplexer, sondern welche Information muss ausgegeben werden, Wenn Du also beispielsweise alle Eingänge einfach in einem Objekt speicherst, dann kannst Du auch wieder über ein topic aus diesem Objekt die Datenauslesen. Einmal ist also das topic zum Update des zentralen Datenobjektes verantwortlich, und dann wieder zum Abruf der Daten.
Fazit:
- Ich suche einen "Node" der aus einem "Flow" (?) genau eine/die "Paylaod" filtern kann, die der manuelle "Ringzähler" als Eigenschaft (Topic) vorgibt.
Ich zeig Die mal wie man so was machen kann, wie ich oben beschrieben habe.
Vorher wenn ich mir Deinen Flow anschaue, würde ich mir ein Sammelobjekt überlegen:
So ein Objekt könnte also so aussehen:
{ "Strom" : [0,0,0], "Power" : [0,0,0], "Spannung" : [0,0,0] }
Ob die Inputs jetzt 3 mal Strom und 3 mal Power sind dass solltest Du halt nicht nur theoretisch sondern mal ganz konkret reinschreiben - dieses vage Theorie ist immer blöd. Ich gehe jetzt mal davn aus, dass es alles 3 mal gibt. Ggf. kann man auch mit Wildcards arbeiten. Wie ich verstanden habe ist das topic einmal Spannung/0 und Spannung/1 usw.
Du initialisierst also Dein zentrales Objekt im Flowkontext:
Das wird nun von Deinen iobroker Nodes aktualisiert - ich nutze jetzt halt mal Inject-Nodes um Daten zu simulieren:
Im nächsten Schritt sammelst Du alle Daten im Flow-Kontext:
Im letzten Schritt holst die Daten ja nach Taster: 1=0, 2=1,3=2 (also Taster 1 wird in Index 0 übersetzt usw.). Die Ausgabe wird dann für Deine Ausgabe via template Node aufbereitetet:
Die Daten sind zwar alle Schwachsinn - aber dient ja nur der Illustration.
Hier mal der gesamte Flow - übersichtlich - getrennt mit Eingaben und Ausgaben. Dreh und Angelpunkt sind also nicht irgendwelche Nodes, sondern das zentrale Objekt in dem Du Daten sammelst und abrufst:
Den Ring beim Ringzähler musst du halt manuell durch Drücken der inject Nodes in der richtigen Reihenfolge selbst simuiieren.
EDIT: Was man jetzt noch machen muss, um nicht nur eine Aktualisierung zu haben, wenn man den Auswahltaster (Ringzähler) betätigt, speichert man halt Auswahl ebenfalls im Flowkontext und aktualisert dann die gerade aktive Anzeige:
Mit der Verbindung der Eingangswerte zum Ausgang - sprich jeder neue Wert aktualisiert automatisch die aktive Anzeige, verbinde ich alle Stränge mit einer Change Node, um die aktuelle Tasterstellung zu ermitteln und somit die aktive Anzeige.
Hier nun der erweiterte Flow:
Dadurch das wird die Eingangsnodes direkt mit der Ausgabe verbunden haben und evtl. noch kein Taster betätigen, kann man das entweder blockieren. Eine andere Lösung, wäre per Default beim Flowstart die Auswahl des Tasters auf 1 zu setzen .
Die Initialisierung wird dann nur noch über die Change Node vorgenommen.
- Wie kann ich den SmartPi (V1) direkt in den iobroker einbinden (ohne einen Adapter zu haben, der "Sonoff-Adapter" funktioniert ja nur bedingt (?)
Nimm MQTT entweder über den iobroker Adapter oder einem zentralen MQTT-Broker wie mosquitto
Wie gesagt - das Nachrichtenobjekt ist nicht auf payload und topic festgelegt, sondern Du kannst beliebig viele Eigenschaften in einem Nachrichtenobjekt definieren. Wichtig ist, dass Du verstehst wie du mit Objekten und Arrays umgehst und natürlich ist, wie Du siehst JSONATA sehr nützlich. Über das try Fenster kannst Du quasi gleich in Echtzeit Deinen Code überprüfen.
-
@mickym Hallo, auch heute erst mal vielen Dank für die schnelle und vor allem so ausführliche Antwort Die Idee mit dem SmartPi mit Anzeige und noch so einigen Extras ist ist eher aus der Not geboren, weil es eben nicht so einfach gelaufen ist, wie mit meinen bisherigen Experimenten, Sensoren mit ESP8266 und Tasmota-Software im ioBroker "erscheinen" zu lassen. Den SmartPi hatte ich in der Schublade (ja auch mal "teuer" gekauft) und da NodeRed offenbar eine Lösung bieten könnte, sollte es NodeRed sein! Die ersten Experimente waren erfolgversprechend, nicht mal für eine Anzeige musste ich einen Pythontreiber "basteln", gab es schon als Node und auch die GPIO-Anschlüsse sind als "Software" vorhanden also gleich noch mehr Extras in das Projekt intergriert (Klingelüberwachung und Weiterleitung) und eben der Smartzählerersatz (Sensor an Drehscheibe des alten Zähler)
Das mit der Klingel klingt trivial, aber wer hat schon mal darüber nachgedacht was der Klingeltrafo im Zählerschrank für Strom verbraucht? Ist ja meist ein kleiner simpler Trafo der mal eben so ein paar Watt Ruheverlustleistung hat und im Grunde nur ein zwei mal am Tag für einige Sekunden gebraucht wird. Das IoT braucht auch Strom, also die Klingel gleich mitversorgt aber Vorsicht! Klingeldrähte sind nicht unbedingt Kurzschlußfest und es wäre schon fatal wenn das IoT zusammenbricht nur weil Wasser in den Klingelknopf gekommen ist
Deim Zählerauslesen über die Zählerscheibe ergab sich ein neues "Problem". Die Drehzahl wir über die Zeit bestimmt bis die Marke wieder unter der Lichtschranke ist. Hoher Verbrauch hat kurze Zeiten/Impulse zu Folge aber was passiert wenn die Wärmepumpe sich abschaltet oder der Herd oder die Waschmaschine... u.U. ein langer Zeitraum bis die nächste Marke erkannt wird, aber in der Anzeige (und somit auch im ioBroker) steht immer noch der letzte hohe Wert von ein paar KW und wenn das Balkonkraftwerk es schaft den Grundbedarf zu decken kann das "Stundenlang" sein
Ja alles nicht wirklich schlimm und mit NodeRed sogar dafür Lösungen gefunden aber es scheitert bei der "simplen" Aufgabe aus all den Daten einen Wert auf einer Anzeige im Schaltschrank anzuzeigen auf die man wahrscheinlich nach all dem Bastelhype nur noch einmal im Monat blickt
Grund genug das ganze Projekt noch mal zu überdenken und sich mit deinem Vortrag zu beschäftigen. So weit lagen meine Gedanken ja gar nicht davon weg, aber ich muss mich wohl davon verabschieden die schaltungstechnische Lösung ein zu eins auf die Software zu übertragen (Bin durch BASIC vor vielen vielen Jahren wahrscheinlich zu verdorben um sich an konsequente Strukturen zu gewöhnen )
Ich werde deinen Vorschlag mal versuchen zu analysieren, mich mit JSONATA beschäftigen und das ganze auf mein Projekt übertragen Schmore ein bischen im eigenen Saft weil ich im Grunde niemanden in meinem Umfeld dazu fragen kann und am meisten hat mich erstaunt , dass schon so ein paar Nodes 888 Zeilen Code im Hintergrund haben Denke aber die interessanten Punkte sind dank "Struktur" zu finden und ich kann sie für mich anwenden Wird ein paar Tage dauern und melde mich dann Nochmals Danke für deine ausführliche Antwort -
@myiobroker Du kannst meinen Flow ja mal importieren und dann einfach mal bisschen rumprobieren - und wenn Du Fragen hast, melde Dich einfach.
-
Das wird wohl erst mal ein gute Experimentiergrundlage sein, noch ist ja nichts in "produktiver" Umgebung Es ist nur immer wieder überraschend wo die "Probleme" liegen, wenn man einen Punkt gelöst hat. Im Moment zählt mein Ringzähler z.B. immer nur von 2 bis 5 lt. Anzeige obwohl der Debug-Node 1 bis 4 vorgibt Da spielen wohl Laufzeiteffekte eine Rolle (?) aber konstante Fehler kann man ja relativ leicht korrigieren
Hinzu kommt, dass der SmartPi V1 schon etwas älter ist und somit auch das "mitgelieferte" Image der SD-Karte für den Raspberry. Nach Update und Upgrade funktioniert aber der NodeRed SmartPi Eingang nicht mehr unter der eigentlichen Oberfläche aber schon, bin deswegen manchmal etwas ratlos wo die Fehler herkommen. So manche Nodes lassen sich einfach nicht installieren und bei denen wo es klappt bin ich etwas verunsichert wenn sich das ganze etwas merkwürdig verhällt? Mit NodeRed auf der ioBroker-Maschine sieht es in einigen Punkten etwas anders aus. Schon deshalb will ich bei den Grundfunktionen bleiben die ja wahrscheinlich schon immer irgendwie funktionierten und spezielle Nodes vermeiden.
Sicher braucht es irgendwie immer einen Fortschritt und man kann sich nicht um jede Hardware kümmern die eben älter ist aber ansonsten noch tadellos funktioniert. Der Sicherheitsaspekt ist wahrscheinlich schon ein wichtiges Argument aber eben auch nur, weil sich mit alten Dingen kaum Geld verdienen lässt. Ob ich mit einem neuen Shelly Smartmeter besser bedient wäre bezweifel ich im Moment ein wenig, kostet auch "viel" und ob ich damit alles problemlos in den ioBroker bekomme ist auch noch nicht raus (?) Noch macht es Freude sich mit den Dingen zu beschäftigen und dümmer wird man dadurch auch nicht !!! -
@myiobroker,
falls du dich wie oben beschrieben mit Tasmota auskennst, dann stelle über Node-Red die Daten vom SmartPi ioBroker zu Verfügung und mache den Rest z.B. über Blockly. Das würde den SmartPi entlasten und es gäbe eine Videoserie von einem User für die Ansteuerung eines LCD zum lernen. -
gelöscht - halte nichts davon
-
@myiobroker sagte in Eingangsmultiplexer?:
Im Moment zählt mein Ringzähler z.B. immer nur von 2 bis 5 lt. Anzeige obwohl der Debug-Node 1 bis 4 vorgibt Da spielen wohl Laufzeiteffekte eine Rolle (?) aber konstante Fehler kann man ja relativ leicht korrigieren
Das mit dem Ringzähler kannst Du ggf. einfach mit einer function Node selbst beheben - dafür brauchst Du den Zähler nicht.
Falls Du diese Nodes: https://flows.nodered.org/node/node-red-node-pi-gpiod/in/czQplxxBMPR5 verwendest dann schreib mal im NodeRed Forum. Die beiden die diese Node pflegen sind quasi auch die Urväter, die das ganze System weiter pflegen. Du musst halt schauen, ob es sich noch lohnt.
Wenn Du ein uraltes OS auf Deinem SmartPIV1 hast - dann würde ich es lassen - ansonsten musst wahrscheinlich auch das OS updaten, was mit Risiken verbunden ist.
-
@mickym said in Eingangsmultiplexer?:
@myiobroker Du kannst meinen Flow ja mal importieren und dann einfach mal bisschen rumprobieren - und wenn Du Fragen hast, melde Dich einfach.
Wow, was für mich erst mal nur wie ein Beispiel ausgesehen hat , funktionierte tatsächlich Ich konnte deinen Flow nicht direkt importieren, dazu sind die Versionen vom SmartPi V1 und dem aktuellen Stand von NodeRed wohl zu verschieden aber mit NodeRed vom ioBroker klappte es und ich konnte die einzelnen Nodes mit gewissen Anpassungen und Ergänzungen somit auch auf dem SmartPi V1 zum laufen bringen Im Grunde das was ich wollte aber es scheitert wahrscheinlich daran, das mir einige Syntax-Vorgaben nicht geläufig sind In der ersten Versionen entsprechen die Taster die ich habe (es sind 3) den Phasen aber es gelingt mir bisher nicht, die Phase als solches im Zusammenhang mit Strom und Spannung auch zur Anzeige zu bringen. Setze da wahrscheinlich falsche Klammern oder so, entweder es kommt nur ein "Leerzeichen" raus oder aber die Anzeige vom "LCD-Node" bekommt falsche oder zu viele "Zeichen" und das ganze entwickelt ein "Eigenleben", welches man kaum Stoppen kann
Grundsätzlich habe ich die Nodes "Restart" und "Shutdown" zusammen mit CLS (Anzeige Löschen und in gewisser Weise auch zu reseten) in den NodeRed-Flow mit eingebunden um den SmartPi nicht bei jeder "Fehlfunktion" abrupt vom Strom trennen zu müssen. Hilft womöglich nicht viel, schadet aber wahrscheinlich auch wenig
Werde mich wohl erst mal mit den Syntaxvorgaben beschäftigen müssen. Der "Beispielcode" aus deinem Flow (endlich versteht mich mal jemand ) ist jedenfalls sehr nützlich um das Prinzip des Flow und dem Extrahieren der gewünschen msg: zu verstehen Wenn man aber den ganzen Abend nach den richtigen "Klammern" sucht um einen Wert (wie ermittel ich die Phase?) zu bekommen kann das schon entmutigen, wenn man das Gefühl hat irgendwas nicht zu verstehen
Auf jeden Fall Danke für die "Vorlesung" zu diesem Thema, ich bleibe drann@wal said in Eingangsmultiplexer?:
@myiobroker,
falls du dich wie oben beschrieben mit Tasmota auskennst, dann stelle über Node-Red die Daten vom SmartPi ioBroker zu Verfügung und mache den Rest z.B. über Blockly. Das würde den SmartPi entlasten und es gäbe eine Videoserie von einem User für die Ansteuerung eines LCD zum lernen.Die LCD-Anzeige habe ich bewusst nicht an I²C angeschlossen, auch wenn es erst mal naheliegend ist. Zum einen sind genug Pins auf dem GPIO frei und zum anderen weiß ich nicht wirklich was auf dem "Bus" passiert, wenn die ersten 16 Pins eben "belegt" sind. Hinzu kommt, dass hier auch Pegelwandler erforderlich sind. Die Problematik 3,3V und 5V wird in manchen "Beispielen" gern ignoriert weil es ja meist doch nicht gleich kaputt geht und man sollte schon darauf achten sich an die Spezifikationen zu halten!!!
Die Auswertung oder gar Steuerung der Anzeige auf ein zweites System zu verlagern halte ich nicht für sinnvoll. Natürlich möchte ich die Daten im ioBroker haben um damit weiter zu arbeiten aber der SmartPi mit seiner jetzigen Konfiguration soll einafch nur die Daten ermitteln, anzeigen und weiterleiten. Die Anzeige ist nur mal so für mich, wenn ich vor dem Schaltschrank stehe und nach dem rechten sehen möchte. Allenfalls für die Diskussion mit dem "Fachmann" von der Heizungsfirma um zu fragen warum die Anlage mal so und mal soviel Energie benötigt, mal taktet und mal eben nicht?Das Thema Datenübertargung von NodeRed auf den SmartPi (teilweise ja schon gelöst ) und dem ioBroker (direkt oder eben auch über Nodered wird dies offenbar die nächste "Baustelle" sein (?) Ich habe das bisher nur über den SONOff-Adaper geschafft, wenn ich spezielle Topic's benutze. Im Moment sieht es so für mich aus, daß ich den gasamten Datenstrom zusammenfassen muss um ihn anschließend zu analysieren aber auch auf plausiebiletät zu testen
-
@myiobroker ah Mist - ja habe nicht daran gedacht, dass die junctions erst ab Version 3 verfügbar sind, aber sonst müsste es eigentlich gehen. Alles andere sind eigentlich Standardnodes, die es auch in den NodeRed Versionen davor gab.
Ja kann das ja auch direkt miteinander verbinden. Nun musst halt ggf. Zeigen was für Daten rauskommen und wie die Zielausgabe aussehen soll. Bis auf die Raspberry Nodeskann ich den Flow ja wieder importieren. Ich muss halt mit inject nodes Deinen Dateninput nachvollziehen. Wie gesagt für weitere Hilfe müsstest du halt sagen, wie die Daten aussehen, die rein kommen und wie die Ausgabe aussehen muss.. ggf. muss man halt auch bestimmte Daten wegfilternDie Daten in den iobroker zu bringen ist nicht schwer. Entweder du machst es über mqtt, wobei ich aber wenn nichts vom Sonoff Adapter halte, aber du könntest die beiden Node-Red Instanzen auch direkt miteinander über http sprechen lassen.
-
@mickym Hallo, bin ein gutes Stück weitergekommen Das mit den "junctions" und das mit den "Gruppenrand?" war das kleinste Problem. Im NodeRed vom ioBroker ließ es sich ja einlesen und somit relativ leicht auf die Node vom SmartPi übertragen, da die Grundfunktionen ja gleichgeblieben sind. Im Grunde funktionierte es auch so wie ich es mir vorgestellt habe. Das mit der Phase konnte ich auch lösen, es bietet sich zwar an, dass man Phase 1 mit Schalterstellung 1 (etc.) verbindet aber muss ja auch funktionieren wenn man mehr als 3 Schalterstellungen hat. Hinzu kommt, dass man nicht nur Spannung(x), Strom(x) und Power(x) anzeigen möchte sondern z.B. auch Power_Total (gibt der SmartPi auch als "Injektnode" aus) und dann kommt noch eine weitere wichtige Funktion hinzu:
Da ich noch keinen SmartZähler habe will ich die Gesamtleistung aus der Umdrehung der Stromzählerscheibe ermitteln. Kein Hexenwerk mittels Reflexlichtschranke und der Angabe das bei (mir) 75 Umdrehungen eine 1KWh "verbraucht" ist, somit lässt sich über die Zeit zwischen dem Markierungsdurchlauf der Scheibe die mehr oder weniger momentane "Power" ableiten. Mit dem angedeuteten Problem, dass bei einem "plötzlichen" Leistungsrückgang durch abschalten massiver "Verbraucher" der letzte Wert nicht wirklich angeben werden kann, was in der "Langzeitstatistik" aber keine Rolle spielt, wäre halt nur ein nur eine falsche Anzeige für den "Moment" danach Aber das kann man relativ leicht lösen wenn man die "Anzeige" entsprechend flagt und ggf. approximiert.
Diese "Power-Anzeige-Werte" haben dann wenig mit einzelnen Phasen zu tun, es muss also auch eine neue Anzeigemaske her und somit ergibt sich, dass die "Displayausgabe" auch für die fixen Elemente (Masseinheiten [V, A, W etc.], Beschreibung [Spannung.Phase, Power_Total etc.] variabel sein sollte, da wenig Platz ( 2 x 16 Zeichen) für feste Positionen ist.
Denke ich kann das mit einer "fixen" Matrix lösen, die ich am Anfang ebenfalls initialsiere und je nach Schalterstellung abrufe und in die Display Ausgabe einfüge. Auf der anderen Seite werden ja nur die Werte angezeigt, die sich aus der Schalterstellung ergeben. Das Überschreiben der Anzeige mit neuen Werten aus einem anderen Zusammenhang lässt die Anzeige wahrscheinlich nicht ständig springen wenn man es richtig macht und letztendlich sind es ja auch nicht sooo viele verschiedene Anzeigeebenen sinnvoll (Es ist eine Anzeige im Schaltschrank, die man nicht täglich betrachtet(?) )
Die Verwendung von "mustache templates" sollte das relativ einfach ermöglichen(?) Die Idee dahinter ist mir schon klar aber den Begriff als solchen kannte ich bisher nicht, also wieder was gelernt
Das Übetragen der Daten an den ioBroker war bis jetzt noch nicht wirklich mein erstes Thema auch wenn es letztendlich natürlich grundlegend ist und ich genau das will! Der Sonoff-Adapter bot sich an, weil da mit den entsprechenden Topics auch was zu sehen war, aber eine andere "saubere" Lösung wäre mir natürlich lieber. Der SmartPi bietet ja auch mehrere Varianten an und diese funktionieren offenbar auch nach einen Update auf einen aktuellen Stand (?) Es gibt ja auch die Version V2 und V3 die aktuell sind und wahrscheinlich immer noch den gleichen Chip auf dem Analyseboard haben(???) also das, worauf die Datenerfassung beruht (?) Wenn dann auf meinem Board (V1) die "SmartPi-Injektnodes" nicht mer funktionieren, die Datenübertragung über andere Kanäle aber schon könnte man das ganze soweit treiben, dass man die Daten zurück auf den SmartPi zurück überträgt um eine Anzeige mit NodeRed anzusteuern die keiner anschaut weil sie ja im Schaltschrank ist aber ganau das macht ja den Reiz eines Hobbies aus
Nicht zuletzt könnte ich mir natürlich auch vorstellen im Schaltscharnk einen preiswerten 7" Monitor mit Tochfunktion zu instalieren / anzuschließen. Dann könnte man auch auf den ioBroker zugreifen und dem Heizungstechniker vor Ort zeigen was er auf seinem Laptop vielleicht sogar nicht so einfach sieht Der Raspi hat ja auch ein "Betriebssystem" mit Internetbrowser und all seinen Möglichkeiten
Erinnere mich noch gerne an die verdutzten Blicke eines Ausbilders bei einer Techniker-Schulung für ein medizinisches Messgerät das noch unter DOS lief und ich da auf dem Bildschirm plötzlich DonkeyKong gespielt habe -
@myiobroker Nochmal Dreh und Angel-punkt wo Du alle Werte sammelst ist das Objekt, das im Kontext steht. Bislang ist es so
{ "Strom" : [0,0,0], "Power" : [0,0,0], "Spannung" : [0,0,0] }
Das mit der Phase konnte ich auch lösen, es bietet sich zwar an, dass man Phase 1 mit Schalterstellung 1 (etc.) verbindet aber muss ja auch funktionieren wenn man mehr als 3 Schalterstellungen hat.
Nun wenn das mehr Schalterstellungen und Werte sind, dann werden halt einfach die Arrays erweitert. Wenn Du also 5 eingehende Tripels (Spannung, Strom und Power) hast - dann erweiterst Du einfach das Array:
{ "Strom" : [0,0,0,0,0], "Power" : [0,0,0,0,0], "Spannung" : [0,0,0,0,0] }
für andere Werte die unhängig von Schalterstellungen sind, dann erweiterst Du das Objekt halt entspreched und schreibst dort entweder direkt die Werte rein oder berechnet. Also Power_Total ist halt dann eine eigene Eigenschaft die Du beschreibst und diese werden entweder mit der Schalterstellung oder unabhängig abgefragt.
{ "Strom" : [0,0,0,0,0], "Power" : [0,0,0,0,0], "Spannung" : [0,0,0,0,0], "Power_Total": 0 }
Der Vorteil dieser Vorgehensweise ist , dass Du auch die anderen Daten mit ausgeben kannst oder eigens triggern kann. Der Flow über die Speicherung im Kontext entkoppelt die Zeitpunkte des Eingangs und des Ausgangs vollständig. Ich hab es zwar hier kombiniert, damit du immer sofort die aktualisierten Werte hast, das ist aber kein MUSS:
Generell sollte man halt solche Berechnungen mit Power etc nicht im Flow berechnen, sondern über Daten über Datenbanken speichern und dann Auswerten. Hier käme dann schon die iobroker Instanz in Frage und die Datenübertragung funktioniert ja grundsätzlich in beide Richtung.
Diese "Power-Anzeige-Werte" haben dann wenig mit einzelnen Phasen zu tun, es muss also auch eine neue Anzeigemaske her und somit ergibt sich, dass die "Displayausgabe" auch für die fixen Elemente (Masseinheiten [V, A, W etc.], Beschreibung [Spannung.Phase, Power_Total etc.] variabel sein sollte, da wenig Platz ( 2 x 16 Zeichen) für feste Positionen ist.
Vielleicht hilft Dir meine kleine Funktion Node - die ggf. Dein Begrenzung auf 2 x 16 Zeichen etwas entschärfen könnte. Funktioniert aber nur - wenn Du die Zeilen getrennt ansteuern kannst. Mit Zeilenumbrüchen kann die Node nicht umgehen.
https://forum.iobroker.net/topic/62610/laufschrift-in-einem-nodered-flow-erzeugenDer Sonoff-Adapter bot sich an, weil da mit den entsprechenden Topics auch was zu sehen war, aber eine andere "saubere" Lösung wäre mir natürlich lieber. Der SmartPi bietet ja auch mehrere Varianten an und diese funktionieren offenbar auch
Wie gesagt der Adapter wird - warum auch immer als Mqtt- Broker missbraucht - da würde ich dann lieber entweder den mqtt-Adapter verwenden oder besser ganz vom iobroker unabhängig über einen mosquitto Broker arbeiten. Wenn die Datenspeicherung eh doch die Node-Red Instanz im iobroker aufbereitet wird, kannst Du einfach in einer 1:1 kommunikation die Daten über Http vom SmartPi NodeRed zum iobroker NodeRed schicken. NodeRed ist quasi ein verfügbarer Webserver an den Du einfach Daten schicken kannst. Sprich Du schickst die an die iobroker NOde-Red instanz - machst mit den Daten was Du willst und schreibst es in iobroker-Datenpunkte, um diese anzuzeigen oder über einen der Datenbank-Adapter loggen zu lassen, um dann Summen oder sonstige Auswertungen zu machen. Auf diese kann man auch direkt wieder von der SmartPi Seite zugreifen.
Beispielsweise Du schickst die Daten via Node-Red Smart-Pi über HTTP an Node-Red iobroker. Du kannst Du ggf. die Daten noch modifizieren und speicherst sie dann in einem Datenpunkt. Via SQL oder Influx-DB Adapter lässt Du die Werte in eine Datenbank schreiben. Dann kann man versuchen diese Datenbank-Nodes direkt auf der SmartPI nehmen und die Datenbank direkt zur Anzeige anzuzapfen - ansonsten halt über die iobroker Instanz.
-
@mickym Mit unseren Vorstellungen zur Erweiterung liegen wir ja gar nicht so weit auseinader Da die Anzeigeparameter für diesen Fall ja wahrscheinlich recht beschränkt sind, macht es Sinn diese in einer "Matrix" gewissermaßen "Vorzubereiten" Soviel habe ich aus deinen Erklärungen schon gelernt
Den Parameter Power-Total kann man auch aus dem speziellen SmartPi Inject-Node ermitteln, die anderen Werte die offenbar noch zur Verfügung stehen sind (Netz-) Frequenz(x) und Phasenwinkel(x), allerdings eben nicht aus einem Inject-Node. Denke aber das diese Parameter für meine Anwendung im "(ersten-) Schaltschtank (Überblick)" auch nicht notwendig sind.
Power-Total kann man natürlich auch berechnen aber das würde ich dann auch eher aus einer "Datenbank" für weitere Auswertungen benutzen, für den "(ersten-) Schaltschtank (Überblick)" aber so übernehmen, wenn er schon da ist und vorher natürlich auch prüfen wie plausiebel das ganze ist, wenn man mehrere Ergebnise hat!
Ich denke ich komme so erst mal auf etwa 12 bis 16 "Anzeigen(Seiten)") (3 x Spannung, Strom, Power je Phase, 3 x Spannung(x), 3x Strom(x), 3x Power(x), Power Total Heizung, Power-Total Zähler und Berechnung daraus, sowie ggf., auch noch Power-BalkonSolar (exteren Quelle) und ggf. noch ein paar stastische Werte zur Info die ich zyklisch aus einen "Touchup" und "Toch down" Sensorswitch ermitteln kann.
Ein "Drehgeber/switch" mit Taster wäre hier naheliegend (gibt auch einen Node dazu!) aber ich habe bewußt auf "kontaktlose"Touchsensoren gesetzt. Diese funktionieren auch hinter "dünnen" Plastikabdeckungen und gerade wenn es um hohe Spannungen im Schaltschrank geht möchte man ein gewisses "Sicherheitsgefühl" haben wenn man so was bedient. Natürlich setzt das auch vorraus, dass das ganze Modul "Sicher" ist aber denke schon, dass ich Schaltungstechnisch alles getan habe (z.B. Mindestabstand zwischen den Leitern, immerhin >400V!) um diese Anforderungen zu erfüllen. Beim SmartPi muss ich mich allerdings darauf verlassen das es dort auch so ist, aber nach meiner Ansicht sind auch hier die diversen Vorgaben erfüllt (Abstand zwischen den Leitern und natürlich spannungsfeste Bauelemente, das ganze in SMD macht natürlich erst mal wenig Vertrauen aber ich habe auf jeden Fall in einem ExtraModul wie empfohlen Sicherungen vorgesehen)
Deine Lauftextanzeige hat mich natürlich neugierig gemacht! Sie funktioniert auch aber ich denke für mein Projekt bring es nichts. Spannung, Strom und Power mit mehr als drei Ziffern (Komma oder nicht) anzugeben ist eigentlich sinnfrei weil das unter 1% Messgenauigkeit läge die ich ohnmehin anzweifel, die restlichen Stellen hinter dem Komma könnte man auch würfeln und das sollte in eine Zeile mit 16 Stellen incl. Maßeinheit für drei Parameter passen. Könnte mir aber Vorstellen gewisse Statusmeldungen in meinem Smarthome damit zu posten ("Keine Internetverbindung", "eine Netz-Phase ausgefallen", "Sensor xyz meldet sich nicht seit drei Stunden" etc.) Alles Dinge die die Welt nicht verändert oder gar besser macht, aber man wissen sollte und wer schaut schon ständig auf sein Smartphone wenn man eine Anzeige im Schaltschrank hat (meiner ist nicht im Keller!)
Wenn wir schon so schön im Dialog sind;
1: Wie bekomme ich in NodeRed die einzelen Flow mit speziellen Punkten zusammen (also z.B. Ausgabe Ringzähler in Flow2 als Eingabe in Flow 4).
2: Speicher ich mit Export alle Flowebenen ab oder nur die akuelle?
Das Thema Sonoff-Adapter passt vielleicht nicht hierher bzw. gibt es schon(?) aber im Moment scheint es für mich der beste Adaper zu sein um all die "Tasmotafähigen" Sensoren relativ problemlos einzubinden und somit (denke ich) ca. 80% aller Sernsorprobleme im "Smarthome" abzudecken(?)
Fazit: Werde erst mal "alle!" interresanten Messwerte vom SmartPi auf die einzelen Anzeigeebenen bringen (bis jetzt funktioniert dein Konzept so wie ich es mir vorstelle ) Werde dann prüfen wie ich die Daten in den ioBroker bringe (NodeRed MQTT) und dann lass uns weiterdiskutieren
Es war für mich auf jeden Fall eine große Hilfe und hat ich habe viel dazu gelernt , Danke! -
doppelt, gelöscht
-
mehrfach, gelöscht
-
@myiobroker sagte in Eingangsmultiplexer?:
Noch was weil ich Deine Frage sehe, dass Du verschiedene Flows verlinken willst. Das Objekt das ich im Flow Kontext gespeichert habe, lässt sich natürlich auch im globalen Kontext speichern und steht damit allen Flows zur Verfügung. Das mal nut zur Vorabinformation.1: Wie bekomme ich in NodeRed die einzelen Flow mit speziellen Punkten zusammen (also z.B. Ausgabe Ringzähler in Flow2 als Eingabe in Flow 4).
Da zu gibt es entsprechende Link-In und Link-Out Nodes.
Also Ausgabe Ringzähler an link-out und link-in Node in Flow 4.
2: Speicher ich mit Export alle Flowebenen ab oder nur die akuelle?
Das liegt bei Dir - es stehen Dir alle Möglichkeiten offen.
Entweder alle Flows, nur den aktuellen Flow oder nur markierte Nodes.
-
doppelt, gelöscht
-
@myiobroker ???