NEWS
[gelöst] Poolsteuerung, Anfänger braucht[e] Hilfe
-
@mickym jepp den rbe habe ich jetzt schon mehrfach benötigt. Hat ein wenig Suche gekostet, aber wenn man weiß wonach man suchen muss..
Die eine Minute Ungenauigkeit ist nicht so wild...Für die Nachlaufzeit habe ich folgenden Schnipsel gebastelt:
und das dann hier verknüpft
Funktioniert und war easy...
Warst ein guter Lehrer!!!
-
Hi, da habt Ihr ja ein schönes Projekt umgesetzt, von dem Einige bestimmt noch was lernen können. Und Alles gut erklärt. Gefällt mir.
Ich selber würde da zwar keine Logic Nodes verwenden, sondern das mit den Standard Nodes lösen, aber da hat jeder seinen eigenen Weg und seine Vorlieben. -
@schneidy76 sagte in Poolsteuerung, Anfänger braucht Hilfe:
....Warst ein guter Lehrer!!!
Na dann hat sich das Ganze schon gelohnt. Ich habe Deinen Flow nicht mehr importiert, aber ich denke Du kommst ja jetzt alleine zu Recht. Ich denke das Prinzip des Nachrichtenflusses hast Du verstanden.
-
@schneidy76 Hab mir nur mal von der Logik Deine Laufzeitüberprüfung angeschaut. Meines Erachtens läuft ja die Laufzeitüberprüfung dauernd und nicht erst ab 20 Uhr.
Deine trigger Node sendet in Dauerschleife ja alle 1 Min.
In meinen Augen ist dann nach dem initialen Anstoß am 1 Tag 20 Uhr, dann läuft die Pumpe aber nach jedem zuücksetzen die 300 min runter. Also ab 0 Uhr.
Im Übrigen tust Du den Leuten beim Import einen Gefallen - wenn Du den Export in Code Tags packst </> dann können die das mit Select All einfacher in die Zwischenablage kopieren.
Ich würde mir mal Überlegen ob da Deine Logik noch einen kleinen Fehler aufweist.
In dem Fall wäre es sogar einfacher - Du schmeißt die trigger Node weg - und lässt die Inject Node ab 20 Uhr bis 0 Uhr in 1 Minuten Intervall prüfen. Dann bist wenigstens sicher, dass ausserhalb dieses Zeitraums diese Schleife nicht mehr läuft.
-
@schneidy76 Und das das Schalten der Homematic Aktoren nur mit command geht, ist auch klar ....
Der Unterschied zwischen command und value ist, dass bei command der Wert ohne ACK (also bestätigt = nein) und bei value der Wert mit ACK (also bestätigt = ja) geschickt wird.
Datenpunkte, bei den ein Adapter die Hardwaresteuerung übernimmt, darf man nie ein ACK mitgeben, da diese 1. nur noch Datenpunkten suchen, deren Werte nicht bestätigt sind und diese Adapter bestätigen den Datenpunkt selbst, wenn sie vom Aktor eine positive Rückmeldung bekommen.
Datenpunkte, die jedoch nicht von einem Hardwareadapter bestätigt werden müssen, wie Punkte unter 0_userdata.0 schreibst Du mit value (grün) also mit ACK, da es hier ja niemand mehr gibt, der die Ausführung bestätigt.
Das mit dem ACK (also bestätigt true oder false) hat nichts mit Node Red zu tun sondern ist ein Basismechanismus des iobrokers.
-
@mickym Hi, nein sie läuft nicht permanent. Sie läuft nur, wenn Laufzeit unter 300 "true" gesetzt ist.
Ist das erreicht, ist die Bedingung "false" und der Trigger läuft nicht mehr.
Auch nach dem deploy oder Neustart, denn die Variable hat den Standartwert "false" bekommen.
Erst nach dem täglichen Trigger 20Uhr läuft das los, bis die Laufzeit erreicht wird.
Habe es mehrfach mit ner Debug Node getestet..
Den Export habe ich geändert. -
@schneidy76 Ich bestreite ja nicht, dass die Pumpe nicht mehr läuft wenn Laufzeit über 300 ist, aber Deine trigger Node sendet doch unendlich. Anfangs nach Neustart erst ab 20 Uhr weil die Inject Node es triggert, dann sendet diese aber im Minutenrhythmus unendlich Nachrichten. Wenn also um Mitternacht die Laufzeit auf -1 gesetzt wird, startet ab Mitternaht Deine Pumpe wieder da die TriggerNode immer noch läuft - die wird doch durch nichts gestoppt. Du hast kein msg.reset noch sonstwas angegeben. Kannst ja mal schauen, ob nach 0 Uhr weiter von der trigger Node nachrichten geschickt werden - ich wüsste nicht, was die Stoppen sollte. Die trigger Node - triggert ja auch sich selbst und nicht über den Flow - deswegen ist das mE hier unsinnig und ich würde sie weglassen und die Inject Node entsprechend konfigurieren.
-
@mickym ich teste und berichte
-
@schneidy76 Im Prinzip ganz einfach zu testen - Du drückst die Inject Node - setzt den Datenpunkt auf 299 dann stoppt das nach 1 Minute. Dann setzt Du manuell den Punkt wieder unter 300 und dann startet es wieder - egal was für eine Zeit - da trigger Node weiter jede Minute sendet.
Wie gesagt die trigger Node wegschmeissen und Injekt Node anpassen - wie folgt - vereinfacht auch den Flow:
-
Oder den Trigger anders einstellen. Dann hört er auf zu Triggern wenn die Laufzeit erreicht ist, da er vom Flow nicht mehr angestoßen wird.
Edit: Sollte die Pumpe allerdings über Mitternacht hinaus laufen, wird auch in diesem Fall die Pumpe nach Mitternacht weitere 300 Minuten laufen, da der Wert Pumpenlaufzeit, ja zurückgesetzt wurde. Da ist @mickym Lösung wohl die bessere.
-
Ja, letzten Endes habe ich den flow so angepasst wie es @mickym geraten hat. Ich habe vergessen, zu schauen. Heute war die OPi aber mit ioBroker down.
Weiß nicht warum, könnte sich tot gelaufen haben.
Habe den max. RAM im Adapter erhöht und den Trigger angepasst.Dazu habe ich noch einen Bug gefunden: der Ausgang für die Pumpe wurde zyklisch angestoßen, was mir den DC über 100% geschossen hat. Dies habe ich auch noch entprellt.
Den Flow Export im 1. Post habe ich natürlich aktualisiert.
VG Torsten
-
@schneidy76 Hi, wäre möglich das es sich wegen dem Trigger tot gelaufen hat. Ich weiß nicht genau wie der sich verhält, wenn man auf jede Minute wiederholen stellt. Du schubst den dann ja auch durch deinen Flow jede Minute wieder an. Also theoretisch könnte es sein das der zum Beispiel nach 2 Minuten schon 2 mal jede Minute triggert, dann nach 3 Minuten 4 mal pro Minute usw. irgendwann würde das ins unendliche gehen.
Edit: Hab mir deinen alten Flow noch mal angeschaut. Bei der Einstellung des Triggers schmeißt der ja sofort ne Meldung wenn der angeschubst wird und der Flow wird sofort wieder durchlaufen und der Trigger wieder angeschubst und solange die Bedingung erfüllt ist immer weiter, also hattest du dir sozusagen ne Schleife gebaut. Und der Output wurde dann natürlich auch unendliche mal angesteuert. Das verkraftet dein System nicht. Allerdings kätte die RBE Node das eigentlich verhindern müssen.