NEWS
Selbst erstellter Datenpunkt, Problem <0 [gelöst]
-
@hardl
Keine Trigger innerhalb von Triggern anordnen!
Vorschlag: -
@paul53 @Homoran @Codierknecht, Ich habe jetzt einfach die inneren Trigger und auch die später eingefügte Zeile, damit unter 0 nicht gerechnet wird, entfernt.
Es sieht so aus, als ob damit auch mein Problem erledigt ist.
Der Datenpunkt nimmt jetzt problemlos negative und positive Zahlen auf.Ich danke Euch für die super gute und schnelle Hilfe und habe dabei auch Grundlagen des Debuggen gelernt.
Sollte noch etwas auftauchen, melde ich mich.
-
@hardl sagte: die inneren Trigger und auch die später eingefügte Zeile, damit unter 0 nicht gerechnet wird, entfernt.
Du liest aber nicht den Datenpunkt "Ist-Diff" gleich wieder ein, nachdem er geschrieben wurde? Das funktioniert wegen der asynchronen Ausführung von "steuere" nicht. Deshalb verwendet man Variablen.
-
@paul53 sagte in Selbst erstellter Datenpunkt, Problem <0:
Datenpunkt
Deinen Vorschlag habe ich nun umgesetzt und es läuft einwandfrei.
Bisher hatte ich noch nicht mit Variablen in Blockly gearbeitet sondern immer in Datenpunkte geschrieben.
Das Argument kann ich auch nachvollziehen und werde meine wenigen Skripte entsprechend überarbeiten. -
@hardl sagte: es läuft einwandfrei.
Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
-
@paul53 Ich bräuchte da noch eine Ergänzung. Wie Du geschrieben hast, sollte kein Trigger innerhalb von Triggern vorkommen.
Ich möchte noch einen Schalter integrieren, der meiner Poolsteuerung vorgelagert ist und bei 0 die Routine ausführt, bei 1 aber die Pumpe auf Dauer schaltet. -
@hardl sagte in Selbst erstellter Datenpunkt, Problem <0 [gelöst]:
Ich möchte noch einen Schalter integrieren, der meiner Poolsteuerung vorgelagert ist und bei 0 die Routine ausführt, bei 1 aber die Pumpe auf Dauer schaltet.
dann nimm einen Logikblock falls und prüfe den State.
je nach Zustand führst du aus was du willst.Aber ich denke du sagst nicht alles was du wirklich erwartest.
-
@hardl sagte: bei 0 die Routine ausführt, bei 1 aber die Pumpe auf Dauer schaltet.
Die Pumpe bei 1 einschalten und den Modus im Solartemperatur-Trigger auf 0 prüfen.
Den Rest innerhalb des mache-Zweiges ausführen.
-
@homoran sagte in Selbst erstellter Datenpunkt, Problem <0 [gelöst]:
Aber ich denke du sagst nicht alles was du wirklich erwartest.
Was meinst du damit?
Ich bin sehr zufrieden wie das in der Simulation funktioniert. Die Hardware ist auf dem Steckbrett auch nahezu einsatzbereit.
Eventuell könnte ich noch einen Pumpe-Dauer-Aus Schalter hinzufügen.@paul53: Ich habe nur 0 und 1 beim Switch und den Trigger gedreht zum besseren Verständnis.
-
@hardl sagte: 0 und 1 beim Switch und den Trigger gedreht zum besseren Verständnis.
Dann stimmt der Kommentar nicht, denn bei 0 wird eingeschaltet.
@hardl sagte in Selbst erstellter Datenpunkt, Problem <0 [gelöst]:
Eventuell könnte ich noch einen Pumpe-Dauer-Aus Schalter hinzufügen.
Statt eines zusätzlichen DP würde ich einen Multistate-DP verwenden.
"states": { "0": "Aus", "1": "Auto", "2": "Ein" }
-
@paul53 Ich habe doch auch den Trigger auf "kleiner als letztes" geändert.
-
@hardl sagte: Trigger auf "kleiner als letztes" geändert.
Ja, der passt, aber nicht der Kommentar darüber zum Einschalten.
-
@hardl sagte in Selbst erstellter Datenpunkt, Problem <0 [gelöst]:
Was meinst du damit?
Ich bin sehr zufrieden wie das in der Simulation funktioniert. Die Hardware ist auf dem Steckbrett auch nahezu einsatzbereit.soll die Pumpe wirklich Dauer an bleiben?
-
@paul53
So ist es besser: -
@homoran Zum Absaugen "Dauer" solange bis ich ausschalte,
zum Reinigen "Aus" bis ich wieder einschalte und die Automatik zum "Heizen" über Solarschläuche. -
@hardl sagte in Selbst erstellter Datenpunkt, Problem <0 [gelöst]:
@homoran Zum Absaugen "Dauer" solange bis ich ausschalte,
zum Reinigen "Aus" bis ich wieder einschalte und die Automatik zum "Heizen" über Solarschläuche.Das passt, ich hatte da wohl deine Frage damals irgendwie anders verstanden
ich hab da auch so einen "manual override" Button
Hauptsächlich dass die Pumpe nicht abschaltet während wir abends im Wasser sind, die minimale Laufzeit erreicht ist und die Sonne das Wasser nicht mehr erwärmt.
-
@hardl
Mit Multistate-Datenpunkt: -
@paul53 Scheint gut zu funktionieren. Ich habe noch ein Problem mit der Darstellung der Temperaturen. Die Ausgabe erfolgt auf einem LCD-Display.
Der Wert wird von ESP Easy über MQTT an ioBroker übergeben.
Ich hab keinen Weg gefunden um glatte Werte z.B. 20.0 statt 20 auszugeben. -
@hardl sagte: Die Ausgabe erfolgt auf einem LCD-Display.
Wie?
Wenn man den Wert als String ausgeben kann, dann funktioniert es mitsetState(idString, temperatur.toFixed(1)); // String mit 1 Nachkommastelle
-
@paul53 Die 1 Nachkommastelle wird schon in ESP Easy festgelegt und das klappt auch, aber 1.0 wird immer als 1 dargestellt.
Von Numerisch auf String habe ich schon konvertiert, aber das ändert nichts.