NEWS
[gelöst] Schaltzustand Verzögern
-
@paul53
Keine Ahnung !
Was ist eine Freilaufdiode??? -
@Aphofis sagte:
Was ist eine Freilaufdiode???
Eine Diode, die beim Abschalten des Magnetventils hohe Spannungsspitzen vermeidet, aber auch dafür sorgen kann, dass das Magnetfeld nur langsam abgebaut wird, weil über der Diode nur ca. 0,7 V abfallen.
-
@paul53
Kann ich gerne kaufen und einbauen!
Daran kann es natürlich auch liegen das dass Magnetventil nicht abschaltet!
Schaltplan muss ich dann erstmal suchen! -
@paul53
meinst du sowas?
Freilaufdiode -
@paul53
Komtt die Freilaufdiode zwischen +/- vom Magnetventil mit dran!?
Kann man einen normalen widerstand nutzen ??? -
So in der Art meinst du !?
-
Ich habe Freitag frei! dann zappel ich mal zu Conrad und besorge eine nur muss die Diode am Magnetventil direkt angebracht sein oder kann sie auch an der Buchse angebracht werden damit die vor Wasser und Salz Luft geschützt ist !?
-
@Aphofis sagte:
meinst du sowas?
Es gibt keine speziellen "Freilaufdioden". Der Begriff Freilaufdiode bezeichnet die Funktion zur Spannungsbegrenzung beim Abschalten von Iduktivitäten. Eine Freilaufdiode muss nur die Anforderungen zum max. Durchflussstrom (> Stromaufnahme des Magnetvetils) und zur max. Sperrspannung (> Speisespannung des Magnetventils) erfüllen.
Bevor Du zu Conrad rennst, poste bitte eine Skizze des Stromlaufplans zur Ansteuerung des Magnetventils inkl. Auswertung über GPIO 21. -
@paul53 Weshalb GPIO 21?
-
@Aphofis sagte:
Weshalb GPIO 21?
Deswegen (Skript Verbrauch.Osmoseverbrauch):
// Magnetventil on({id: 'rpi2.0.gpio.21.state', change: "ne"}, function (obj) {
-
@paul53
Das ist alt!!!
Da waren die Geräte bzw. Relais noch am Raspberry Pi angeschlossen was seid einigen Wochen ein ESP übernommen hat, da diese viel zuverlässiger sind.
Aktuell ist das Magnetventil unter sonoff.0.Aqua_Control.POWER1 zu schalten
rpi ist nichts mehr angeschlossen außer einem Ein Aus Schalter für den Pi. -
@paul53 sagte in Schaltzustand Verzögern:
@Aphofis sagte:
Weshalb GPIO 21?
Deswegen (Skript Verbrauch.Osmoseverbrauch):
// Magnetventil on({id: 'rpi2.0.gpio.21.state', change: "ne"}, function (obj) {
rpi Adapter sind keine GPIOs mehr eingerichtet.
Aqua Power
Aqua Sensoren
Aqua Control
Aqua Float
Aqua Dosierer
sind alles ESPs -
Das ist meine Osmoseverbrauchssteuerung:
var ml_pro_Tag, ml_Kumulativ, Differenz, ml_Aktuell; ml_pro_Tag = getState("Aqua_Control.0.Osmose_System.ml_pro_Tag").val; ml_Kumulativ = getState("Aqua_Control.0.Osmose_System.Osmose_Max").val; // Magnetventil on({id: 'sonoff.0.Aqua_Control.POWER1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (!(obj.state ? obj.state.val : "")) { Differenz = (obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : ""); ml_Aktuell = Differenz * parseFloat(getState("Aqua_Control.0.Osmose_System.ml_multiplikator").val); setState("Aqua_Control.0.Osmose_System.Osmose_Aktuell"/*Osmose_Aktuell*/, Math.round(ml_Aktuell*100)/100, true); ml_Kumulativ = (typeof ml_Kumulativ == 'number' ? ml_Kumulativ : 0) + ml_Aktuell; ml_pro_Tag = (typeof ml_pro_Tag == 'number' ? ml_pro_Tag : 0) + ml_Aktuell; setState("Aqua_Control.0.Osmose_System.Osmose_Max"/*Osmose_Max*/, Math.round(ml_Kumulativ*100)/100, true); setState("Aqua_Control.0.Osmose_System.Osmose_Gesamtverbrauch"/*Osmose_Gesamtverbrauch*/, Math.round((ml_Kumulativ / 1000)*1000)/1000, true); setState("Aqua_Control.0.Osmose_System.ml_pro_Tag"/*ml_pro_Tag*/, (Math.round(ml_pro_Tag)), true); console.log((['Dosierung aktuell ',Math.round(ml_Aktuell),' ml'].join(''))); console.log((['Dosierung Gesamt ',Math.round((ml_Kumulativ / parseFloat(1000))*1000)/1000,' Liter'].join(''))); sendTo("telegram.0", "send", { text: (['Osmose Dosierung aktuell ',Math.round(getState("Aqua_Control.0.Osmose_System.Osmose_Aktuell").val),' ml','\n','Osmose Tages Dosierung ',Math.round((getState("Aqua_Control.0.Osmose_System.ml_pro_Tag").val / 1000)*100)/100,' Liter','\n','Osmose Gesamtverbrauch ',Math.round(getState("Aqua_Control.0.Osmose_System.Osmose_Gesamtverbrauch").val),' Liter'].join('')) }); } }); schedule("0 0 * * *", function () { ml_pro_Tag = 0; setState("Aqua_Control.0.Osmose_System.ml_pro_Tag"/*ml_pro_Tag*/, 0, true); });
-
@Aphofis sagte:
Das ist meine Osmoseverbrauchssteuerung:
Gut, entweder habe ich es in den vielen Posts übersehen oder Du hast die Änderung nicht erwähnt. Jedenfalls sagt dieses Log aus, dass die Reaktion der Ansteuerung des Magnetventils "sonoff.0.Aqua_Control.POWER1" auf den Osmose-Schwimmer funktioniert hat:
javascript.0 2019-10-02 21:04:23.577 info script.js.Verbrauch.Osmoseverbrauch: Dosierung Gesamt 851.192 Liter javascript.0 2019-10-02 21:04:23.571 info script.js.Verbrauch.Osmoseverbrauch: Dosierung aktuell 1069 ml javascript.0 2019-10-02 21:04:21.561 info script.js.Technik_Steuerung.Osmose_&_Filter_Max_Hauptsteuerung: Schwimmer: false
-
@paul53
Nur verstehe ich nicht warum das Magnetventil dann nicht abschaltet.
Es kann natürlich daran liegen das wie du sagst durch Spannungsspitzen das Magnetventil nicht schließt auch wenn das relais den Strom trennt.steht das Magnet Ventil noch angezogen da und das Wasser läuft weiter. -
@paul53
Heute hat die Osmose alles gemacht was sie soll! nicht zu viel nicht zu wenig dosiert.
Ich versuche mich gerade darin, das Javascript umzusetzen in Blöcke.
Leider scheitere ich an:createState(idRestzeit, 300, {type: 'number', unit: 's'});
Welcher Block ist das !?
Datenpunkt erzeugen fängt auch an mit createState aber beinhaltet eine Funktion aber man kann irgendwie keine Werte rein nehmen. -
@Aphofis sagte:
Welcher Block ist das !?
Das brauchst Du nicht, denn der Datenpunkt "javascript.0.Osmose.Restzeit" existiert bereits seit dem ersten Skriptstart.
-
@paul53 habe ich auch gefunden unter Javascript.0 Osmose Restzeit.
Also kann ich das weg lassen ??? -
-
@paul53
Danke