NEWS
UNSOLVED [Vorlage] Poolfilterpumpensteuerung
-
Ich habe einen Problem mit den variable Meldung. Was könnte das sein? wir die Variable nicht erzeugt?
Habe alle Datenpunkte automatisch erstellt.
folgende Meldungen bekomme ich im LOG:javascript.0
2019-06-15 10:36:49.563
warn
at script.js.common.Pool_Pumpe.Poolpumpe_Script:134:3
javascript.0
2019-06-15 10:36:49.563
warn
at Laufzeiterzeugung2 (script.js.common.Pool_Pumpe.Poolpumpe_Script:103:3)
javascript.0
2019-06-15 10:36:49.563
warn
at Meldung (script.js.common.Pool_Pumpe.Poolpumpe_Script:8:7)
javascript.0
2019-06-15 10:36:49.561
warn
getState "javascript.0.Pool.Meldung" not found (3) -
@locito09 Hast du meine Objekte Automatisch hinzugefügt oder hast du die Objekte selber erstellt und dann die OB_Variablen geändert?
Dir fehlt das Objekt "javascript.0.Pool.Meldung"
Bitte mal das neue Script von der GitHub Seite holen ich habe die ObjektId erstellung nun umgeschrieben. Diese wird jetzt die ObjektIDs auch gleich richtig formatieren.
-
@georgs Hallo, ich bin bei der Suche nach einer Möglichkeit meine Poolpumpe zu steuern über die Poolfiltersteuerung gestolpert. Habe das Skript in IoBrober implementiert und die Visualisierung auch gestartet. Alles läuft soweit auch ohne eine Fehlermeldung, nur die Laufzeiten laufen nicht die angegebene Zeit ab. Bei eingestellter Laufzeit1 von 120min laufen nur 60min und bei Laufzeit2 bei 210min nur 134min. Bin gerade etwas überfagt, an was das liegen könnte.
Ich muss aber zugeben, dass ich von Skrip programmierung keine Ahnung habe und bei Blockly nur einfache Blöcke hinbekomme.
Vieleicht gibt es hier ja jemanden de mir Helfen könnte.
Grüße in die Runde -
@georgs Moin Georg, dein script ist Top Vielen Dank dafür!
Ich hätte noch einen Vorschlag bzw. eine Idee dazu... Ich habe als erstes noch einen Block eingefügt, der die aktuelle Tageshöchsttemperatur vom daswetter adapter prüft. Den Wert teile ich durch 2 als Faustregel für die Pumpenlaufzeit und rechne mal 60 Minuten. Damit aktualisiere ich um 7 Uhr morgens die Filterzeit 2 nachdem ich die eingestellte Filterzeit 2 vom Ergebnis abgezogen habe..
Hintergrund: Die Laufzeit der Pumpe sollte (laut div. Foren) 1/2 Zeit in Stunden der Tagestemperatur laufen. Ich verwende einen Chlorinator der Abends das Becken chlort damit es über nacht wirken kann. Dazu muss die Pumpe eh laufen... ich starte um 18 Uhr mit 4 Stunden. Der Rest ist dann eben variabel, abhängig von der Tagestemperatur.
Hier ist der Codebaustein wenn die Ihn einbauen magst:
<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="{On=]L?/+veq/[gbXc|W" x="-1162" y="-2262"> <field name="SCHEDULE">0 7 * * *</field> <statement name="STATEMENT"> <block type="comment" id="8znNY$$+0DSgaGv9S32%"> <field name="COMMENT">Laufzeitberechnung um 7 Uhr mit das Wetter / Tageshöchsttemperatur geteilt durch 2 abzüglich Laufzeit 2</field> <next> <block type="variables_set" id="iq#O{)]O[ros.6d+{nx|"> <field name="VAR" id="Bcx-@%4B@gt-0F}K:f(m">Tagestemperatur</field> <value name="VALUE"> <block type="math_arithmetic" id="kKA)~_2HvSc%-gs54@Id"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="iUTQPNqUiEXe7ROWM;~["> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="P/:6%u^Kt}S@:+h@pLA%"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="rj`fcd)$q{!/BkMP_G,6"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";1BA(hLKSMeJXkw!+j+S"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="-Cvsb1{4.tX-]H%I=N%x"> <field name="NUM">1</field> </shadow> <block type="get_value" id="xIq5WxS(#itC8pCxtwD2"> <field name="ATTR">val</field> <field name="OID">daswetter.0.NextHours.Location_1.Day_1.tempmax_value</field> </block> </value> <value name="B"> <shadow type="math_number" id="#YRwS=AX6eRxD{#~RcA5"> <field name="NUM">2</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="EcQfUgZSn]?w/kAwKmpK"> <field name="NUM">60</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="=lG7gc?Yo(|(JM^/s_fo"> <field name="NUM">240</field> </shadow> <block type="variables_get" id="1sI*w71rft{|0!p1BZ!!"> <field name="VAR" id="bd$x:fR[|5BNbw+MyPx2">Laufzeit2</field> </block> </value> </block> </value> <next> <block type="control" id="jLF)0=.qSK7zC$1Zd8Di"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Pool.Filteranlage.Laufzeit1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="7w;|cXlU!|PrpL[RR8b7"> <field name="VAR" id="Bcx-@%4B@gt-0F}K:f(m">Tagestemperatur</field> </block> </value> <next> <block type="debug" id="ZK`o`|PEVP_xw@#o543a"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="v=V75F5m6T}0-Djp%Je:"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="En+wE8T~)~)VFZ_b.VAT"> <field name="VAR" id="Bcx-@%4B@gt-0F}K:f(m">Tagestemperatur</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block>
Als nächstes würde ich die Redoxsteuerung einpflegen, dazu fehlt mir aber noch die Pool-ID vom Blueconnect...
-
@georgs
Guten Morgen. Erst einmal vielen Dank das du dies hier zur Verfügung stellst. Ich finde das genial das es Leute gibt die anderen in so einer Community helfen. Großes Lob. Ich bin gerade dabei meine poolsteuerung mit Shelly Aktoren zu realisieren. Dafür werde ich dein blockly importieren. Leider bin ich absoluter Leie was IObroker angeht . Ich habe minimale wissen weil ich mir den raspi sowie iobroker erst vor ein paar Tagen angelegt habe weil ich mich da ein arbeiten will. Meine Herausforderung besteht jetzt aber darin, dass ich zusätzlich einen Stellmotor schalten will der den Weg zu meinen Solarmodulen öffnen soll. Dazu habe ich zwei Temperatursensoren am Pool bzw solar angebracht. Hättest du für sowas auch einen Vorschlag oder eine fast fertige Lösung. Das wäre genial. Ich werde das nachher mal testen was du hier veröffentlicht hast. vis habe ich bisher auch noch nicht genutzt. Das muss ich jetzt auch unebdingt machen. -
@shadow79 Hallo Shadow, ich habe bei mir ein solches 3-Wege Mischventil im einsatz, welches ich umgebaut habe mit einem High Torque Motor.
Mittels 3D-Druck habe ich mir Teile angefertigt um den Motor und Endschalter auf das Ventil zu bringen.!
Um den Motor zu steuern habe ich einen Wemos D1 Mini mit Tasmota in IoBroker und 2 Relais in ein Gehäuse gepackt. .Wäre als Ideenspender gedacht. Ich bin aber auch gespannt ob alles so läuft, weil ich bis jetzt nur Trockentests machen konnte. Der Pool steht auf grund des bescheidenen Wetters noch nicht.
Grüße an alle. -
@fhepfussel cool. ich schicke mal fotos von meiner Konstruktion. Heute sollten die letzten teile eintreffen. Vielleicht schaffe ich es am Wochende.Dann melde ich mich. Dann brauche ich nur die Blockly hilfe. aber dringend
-
@soerenkaiser99 hallo, kannst du mir vielleicht helfen. Ich würde gern diese Blocky auch nutzen. Ich bin aber absoluter neuling und weiß überhaupt nicht was da wie abläuft. bräuchte echt jemand der das schritt für schritt mir erklärt um da rein zu kommen und es für meinen teil anzupassen.
-
@fhepfussel Coole Idee funktioniert das ganze denn nun zuverlässig?
@shadow79 Brauchst du denn noch Hilfe bei der Implementierung des Blockly?
-
@georgs Hi, sorry die späte Antwort, waren im Urlaub. Die Idee ist Cool, aber es läuft nicht zuverlässig. Die Steuerung arbeitet so ein bis zwei Tage, dann plötzlich läd sie die Parameter neu mitten im laufen und schaltet die Pumpe nicht mehr ab oder ein, je nachdem zu welcher Zeit der neue Load kommt. Dann muss ich das Skript stoppen und neu starten, damit es wieder funktioniert. Oder was auch schon war das Zeit 1 eingeschaltet wurde und gleich darauf wieder aus, obwohl die ausschaltzeit eine ganz andere ist.
Grüße -
Hast du noch irgend etwas hinzugefügt? Denn bei mir läuft das ganze jetzt seit 3 Jahre problemlos.
Warum läd er denn die Parameter neu? Wenn er nämlich die Parameter neu läd schaltet er eigentlich die Pumpe aus.
Kannst du mir mal dein Skript schicken?
-
@georgs Hi, danke für die schnelle Antwort. Leider weis ich im Moment gar nicht mehr ob ich etwas verändert hatte, in der VIS ja da hab ich etwas gemacht, was allerdings darauf keinen Einfluss habes sollte. Wie kann ich dir das Skript schicken?
Gruß -
@fhepfussel Du gehst in das Blockly Script rein und drückst oben rechts auf "Blöcke exportieren" dann öffnet sich ein neues Fenster und den Inhalt dann einfach mal Posten
Laut deinem Beitrag von damals wolltest du deine Solaranlage noch einbinden
-
-
@georgs Hier mal noch ein Bild von Telegram.
wo mitten drin die Grundeinstellungen geladen wurden.
Vieleicht finde ich noch das andere wo ich vorhin meinte
oder hier mitten in der Nacht
-
@fhepfussel Ist ja sehr komisch... ich lass mal ein paar Tage das Skript laufen und schau ob das bei mir auch passiert... Das sollte das Skript nicht machen sehr komisch
Das mit dem Mischer kannst du genau so in das Blockly stecken in dem du es Exportierst und dann wieder Importierst
-
@georgs Erstmal Danke das du das Prüfst. Könnte auch sein das die Abbrüche oder fehler durch schlechte Verbindung im Wlan kommen. Da bin ich gerade am Planen wie ich ein Kabel von meinem Switch im Keller zu meinem Gartenhaus, wo sich die Steuerung ( Hardware) vom Pool befindet, hin bekomme. Wird ne wilde Fummelei werden.
Arbeitest du als Visualisierung nur mit VIS oder benutzt du auch Node Red? Mir würde das Node Red Dashboard für die Poolsteuerung besser gefallen, weil ich schon viel über das Dashboard visualisiere vom Haus.
Grüße -
@fhepfussel Bisher lief das Skript ohne Neustart durch und hat auch alle Funktionen richtig ausgeführt...
In deinem Skript gibt es 2 Codeabschnitte die nicht von mir sind. Hast du da was ausprobiert?
-
@georgs Hi, könnte sein, nur weiß ich nicht mehr welche. Könntest du sie bitte markieren, damit ich vielleicht meinem Hirn wieder auf die Sprünge helfen kann . Ich hatte etwas verändert um etwas zu testen, aber was ???????
Grüße -
@georgs Jetzt ist es mir wieder eingefallen, ich habe dies Codeschnipsel eingefügt um zu sehen wie der Timer abläuft, weil die Timer ab und zu nicht richtig abgelaufen sind.
Dazu habe ich mir Datenpunkte angelegt um das zu sehen.
Die Timer sind bei mir immer weitergelaufen über den eingestellten Wert hinaus.
Danach lief das Skript besser.
Grüße