Hallo zusammen,
seit ein paar Wochen habe ich ein wenig mit Node-Red rumgetüftelt... ich nutze Node-Red direkt auf meinem internen GX-Gerät, und möchte dort auf den HA verzichten.
Nun hänge ich an einem Punkt, wo ich zwei (oder mehr) Bedingungen logisch verknüpfen möchte, und komme nicht so recht weiter... vielleicht gibt es hier einen Experten, der mir da ein wenig auf die Sprünge helfen könnte?
Folgendes möchte ich umsetzen: eine kleine Trinkwasser-Zirkulationspumpe soll unter bestimmten Bedingungen ein- und ausgeschaltet werden.
Bedingung 1 ist: eine eingestellte soll-Temperatur ist noch nicht erreicht.
Bedingung 2 ist: meine Solaranlage liefert eine Mindestmenge an Leistung.
Beide Bedingungen habe ich schon erstellt, es gibt zwei Knoten, ("compare temp" und compare power") die "on" ausgeben, wenn ihre jeweilige Bedingung erfüllt ist.
Die Pumpe soll aber nur dann einschalten, wenn beide Bedingungen erfüllt sind, und ausschalten, wenn eine der Bedingungen nicht mehr erfüllt ist. (also Zieltemperatur erreicht, oder PV-Leistung wird unterschritten.
Wie kann man sowas umsetzen? Ich dachte an WENN B1= "on" UND B2= "on" DANN -> Ausgabe "on" SONST -> Ausgabe "off"
Finde aber keinen geeigneten Node, der z.B. zwei Eingänge hat, die man dann vergleichen könnte.
Geschaltet wird dann über einen sonoff TH16, der mit tasmota geflasht ist. Ist ein Schalter mit Temperatur-Sensor. Funktioniert soweit auch schon.
Mir fehlt nur die logische Verbindung zwischen "compare temp" und compare power" zum Knoten "switch".
Weiß da jemand weiter?
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Hier nochmal mit boolean-Node "and" und debug-Nodes:
oben debug 16 gibt die Temperatur aus: 22,1°C, diese wird in "compare temp" mit der eingestellten Temperatur verglichen --> Ausgabe "true" von debug 17.
debug 18 spuckt immer "true" aus.
Beide "true" gehen an den "and"-node. Der sollte nach meinem Verständnis dann ebenfalls "true" senden. Macht er aber nicht, debug 19 bleibt stumm.
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Hab's nun hinbekommen... mit einem anderen logic-node aus "node-red-contrib-combine":
Das dashboard dazu schaut momentan so aus:
Da kann ich die Parameter mindest-SOC, mindest-PV-Leistung und maximal-Temperatur einstellen.
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
das ist interessant kann bestimmt einiges davon auch gebrauchen
blöd nur dass mein raspberry keine temperatureingänge hat
Projekt 48kWh / 12kWp Inselanlage - SMA Sunny Island
Sind Photovoltaik-Inselanlagen meldepflichtig?
Warum braucht man keinen 3phasen Batteriewechselrichter?
-- Sammelthread PV Anlagen Beispiele Umsetzung --
Die "Energiewende" kostet eine Kugel Eis..... pro kWh.
Ich kenn mich da nicht so aus, aber man müsste wohl schon einen Temp-Sensor an die GPIOs hängen können.
Ist aber gar nicht nötig, den Sensor am RasPi anzuschließen:
"Geschaltet wird dann über einen sonoff TH16, der mit tasmota geflasht ist. Ist ein Schalter mit Temperatur-Sensor."
Also der Sensor ist am WLAN-Schalter angeschlossen.
Funktioniert inzwischen ganz gut... es kam noch eine "oder"-Bedingung dazu, nämlich wenn der Akku voll ist, ohne dass die drei anderen Bedingungen erfüllt sind, wird auch eingeschaltet, bis der Akku auf 97% runter ist, dann wird wieder ausgeschaltet.
Melde dich, wenn du das mal zum Import haben möchtest.
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Etwas absolut schreckliches ist passiert: Von gestern auf heute (oder von vorgestern auf gestern) mag sich mein shelly nicht mehr mit dem mqtt-server im MP2 verbinden.
Es kommt immer eine Fehlermeldung, die ping Zeit wird überschritten.
Ich habe das nun ausgelagert, auf ein RasPi, insofern funktioniert das auch... aber warum nicht direkt im GX-device?
Hat jemand irgendwelche Erfahrungen oder Ideen dazu?
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Bei @saugnapf, zum Ausgangsproblem:
ich speichere in solchen Fällen alle relevanten Zustände in Flow-Context Variablen. Die Nachrichten zu Zustandsänderungen kommen ja nie im gleichen Moment in Deinem Flow an. In Deinem Fall also die Temperatur und die Leistung der PV in jeweils einer Flow Variablen speichern, siehe dazu https://nodered.org/docs/user-guide/context
Danach kannst Du dann bei jedem Eintreffen einer neuen Zustandsinformation die Info aus den Flow-Variablen auslesen und über eine Bedingung prüfen, ob die gewünschten Bedingungen erfüllt sind. Mache ich zB für eine Taupunkt-Lüftung, die abhängig von Temperatur und relativer Luftfeuchtigkeit im Keller und außen die richtige (Feuchtigkeit senkende) Methode für die Lüftung ermittelt - Fenster öffnen oder Luftentfeuchter anstellen.
Zu dem MQTT Problem: Hast Du den MP oder den Shelly in eine anderes IP Subnetz geschoben oder eine Firewall aufgesetzt oder an der Konfiguration einer Firewall etwas verändert? Oder hast Du den MQTT Server auf einen anderen Port gelegt oder auf TLS verschlüsselte Kommunikation umgestellt (das müsste eigentlich andere Fehlermeldung verursachen, aber man weiß ja nie, wie schlecht das übersetzt wird)
@saugnapf Hallo ich habe mit die Logig Node installiert. Ich möchte nun fragen wie dein Funktions Node aufgebaut ist. Ich bin neu und arbeite mich schritt für Schritt in Node Red ein. Es wäre super wenn du mir deine compare funktionsnode ur Verfügung stellen könntest.
Hallo Uli, ich habe das so gemacht, wie @CaCu15 empfohlen hat. 👍
Also ich stelle eine gewünschte soll-Temperatur ein, z.B. über einen Schiebe-Regler im dashboard. Dieser Wert wird dann im flow gespeichert, das geht mit einem change-node.
Hier wird z.B. die Ziel-Temperatur, die ich einstelle, im flow "targetTemp" gespeichert, wird zur msg.payload, und kann dann im dashboard dargestellt werden.
Dieser einfache Ablauf schaut dann bei mir so aus:
Mein compare-funktions-node holt sich dann den im flow gespeicherten Wert "targetTemp" und vergleicht ihn mit der eingehenden payload, die vom Sensor kommt.
Ist der Wert des Sensors (msg.payload) kleiner als "targetTemp", wird "true" ausgegeben, ansonsten "false".
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.