NEWS
Test Adapter Sprinkle Control 0.2.x mit neuen Funktionen
-
@friesenjung
Hallo,
Die Antwort lautet jein!
Das bedeutet wenn die Verbrauchswerte von Bewässerungskreisen und Pumpe korrekt angegeben sind, dann kombiniert das Programm die Bewässerungskreise so, das die Pumpe immer maximal ausgelastet ist. Hierbei kann es aber vorkommen das am Ende ein Kreis mit geringem Durchfluss übrig bleiben kann.
Ich denke mal das du das meintest.
Ansonsten werden natürlich mehrere Bewässerungskreise auch parallel bedient. Abhängig vom Durchfluss (sprinklecontrol.0.control.restFlow) und der Begrenzung der Konfiguration (sprinklecontrol.0.control.parallelOfMax).
Das Bedeutet, wenn deine Bewässerungskreise zu 100 % parallel laufen sollen, so würde ich sie Hardwaremäßig parallel schalten.
Bei mir laufen die Tropfschlauch wie zum Anfang beschrieben. Aber meine Pumpe schaltet sich ja auch nicht ab bei der Entnahme, da sie genügend lang sind.
MfG Dirk Peter -
Moin @dirk-peter ,
der Adapter ist in Verbindung mit einer frisch (jetzt gut 3 Monate in Betrieb) verlegten Bewässerung sehr erfolgreich im Einsatz.
Vielen Dank für die Arbeit, die hier von allen reingesteckt wird!
Ich hätte da allerdings eine Anregung / Erweiterungsanfrage:
Auf dem Haus Dach befindet sich eine PV-Anlage (Solar Anlage) die tagsüber einen Batteriespeicher für die Nacht auflädt, die Bewässerung läuft immer um 3:20 um Verdunstung zu vermeiden.
Allerdings reicht die Pumpe nicht, aus um sämtliche Bewässerungskreise gleichzeitig laufen zu lassen, 2 getrennte Rasen Stücke und in Summe 4 Beet abschnitte. (jeweils ein Rasen Stück vor und hinter dem Haus, jeweils ein Beet, das um den Rasen geht, sowie ein Beet das am Haus liegt (da es hier nicht hin regnet, braucht dieses Täglich Wasser))
Da die beiden Rasen Stücke und 2 Beete immer nur jeden zweiten Tag bewässert werden sollen, ist dies so im Adapter eingestellt.
Aktuell läuft dann erst das eine Rasen Stück mit allen Beeten zusammen und im Anschluss daran das zweite Rasen Stück komplett alleine.
Dies ist leider in Verbindung mit dem PV Speicher etwas ungeschickt, da dann die Pumpe nur für das eine Rasen Stück läuft. Dies bedeutet das der Akku Speicher dann nur sehr knapp über die Nacht ausreicht.
Nun zu meiner Anregung bzw. Frage ob die von mir hierzu angedachte Lösung umsetzbar ist.
Wäre es möglich, eine Option mit der man quasi zwei 2 Tages Zyklen hat einzubauen?
Das per Auswahl immer bestimmte Bereiche sich „Abwechseln“.
In meinem Beispiel dann eben:
Tag 1: Rasen Vorne, Beete Vorne, sowie beide Beete am Haus Tag 2: Rasen Hinten, Beete Hinten, sowie beide Beete am Haus
Ich habe zwar schon eine Idee, wie man das ganze vom Adapter getrennt mit einem Skript umsetzten könnte, finde es aber eleganter das ganze unter einem Hut zu haben und vielleicht gibt es auch andere mit einem ähnlichen Anliegen.
Danke für den wirklich tollen Adapter.
Viele Grüße
Paul -
@zeptran
Hallo,
wenn ich dich richtig Verstehe, möchtest du nur, das der eine Kreis um einen Tag versetzt startet.
Der Adapter kann damit schon umgehen, nur man kann es nicht einstellen.
Du müsstest ihn also überlisten!
Hierzu gehst du unter Objekte sprinklecontrol.0.sprinkle. ? .actualSoilMoisture auf den Bleistift und unter Objektdaten => Common => "write" und schreibst dort "true" rein. Jetzt kannst du den Wert (Wochentag) von actualSoilMoisture von einem Kreis um einen Tag erhöhen.
Wenn du jetzt den Adapter unter Instanzen neu startest, sollte es das schon gewesen sein.
MfG Dirk Peter
Werde mir überlegen wie ich es am besten bei einen der nächsten Versionen umsetze. Wahrscheinlich so ähnlich, mal sehen. -
@dirk-peter
Hallo Dirk, hallo Hunter-Freunde,mit der SuFu habe ich keine Antwort auf meine Frage erhalten.
Welchen Wert stellt ihr beim Sprinklerverbrauch ein?
Ich habe mehrere MP Rotatoren im Einsatz. Mit der Milchmädchenrechnung, dass ein MP Rotator z.B. 1,40 Liter pro Minute, also 84 Liter pro Stunde benötigt, würde ich meinen kompletten Bewässerungsstrang ausrechnen.
Quelle:
https://novelta-shop.de/montage-anleitungen/mp-rotatoren-leistungen/In Summe komme ich dann auf circa 1.100 l/h. Das ist doch dann die Zahl, welche ich dort einzutragen haben, richtig?
Ich bin ein wenig Irritiert darüber, dass ich dem Adapter keine Größe der zu beregneten Fläche mitgeben muss. Macht es nicht einen gewaltigen Unterschied auf die Niederschlagsmenge, ob ich mit 1.100l/h nur 1m2 oder 100m2 bewässere?
-
@saschas
Hallo,In Summe komme ich dann auf circa 1.100 l/h. Das ist doch dann die Zahl, welche ich dort einzutragen haben, richtig?
richtig!
Ich bin ein wenig Irritiert darüber, dass ich dem Adapter keine Größe der zu beregneten Fläche mitgeben muss. Macht es nicht einen gewaltigen Unterschied auf die Niederschlagsmenge, ob ich mit 1.100l/h nur 1m2 oder 100m2 bewässere?
Die Wassermenge wird über die Zeit bestimmt. Ich brauche die Durchflussmenge für die Pumpe! Weil diese ja entscheidet, welche Kreise zusammen laufen können.
MfG Dirk Peter
-
Ich brauche die Durchflussmenge für die Pumpe! Weil diese ja entscheidet, welche Kreise zusammen laufen können.
Macht Sinn. Habe ich bei mir aber auch schon extra durch "Maximaler Parallelbetrieb der Ventile = 1 " vorgegeben.
Die Wassermenge wird über die Zeit bestimmt.
Wenn die Durchlussmenge der Ventile nicht in die Bewässerungsdauer eingeht, dann verstehe ich das noch nicht. Kannst du mir das bitte Erklären @dirk-peter.
Mit meinen Einstellungen habe ich in den letzten Zyklen festgestellt, dass die Bewässerungszeit jeweils deutlich über den 60min, eher bei 120 min lagen. Beim letzten Vorgang 1:44 Std. Das ist ja laut Vorgabe auch i.O., da < 200%.
Frage: Wie errechnet sich die Bewässerungsdauer? Und wo genau kommt in der Formel die Restriktion zur Variable "maximale Bodenfeuchtigkeit nach der Bewässerung in (mm)" vor?
Zum Start der Bewässerung lag der actualSoilMoisture bei 13.60 %.
Die Steigung von actualSoilMoisture ist nahezu konstant. Hast du da eine fixe Steigung hinterlegt?
Wenn ich jetzt rechne, dass die Hunter MP Rotatoren im Durchschnitt 10mm/h/m2 (bei quadratischer Kopf-zu-Kopf Anordnung) abgeben, dann habe ich nach 1:44 Std circa 17,5 Liter / m2 ausgebracht. Das ist schon ne ordentliche Portion Wasser. Insbesondere sind das dann mehr als die 8mm, welche ich vorgegeben habe.
So ganz klar ist mir die Berechnung noch nicht.
Ansonsten ist das ein affengeiler Adapter!!! Schon lange nicht mehr so was pragmatisches und nützliches gesehen! Großes Lob und vielen Dank für deine Mühe, insb. zu den physikalischen Formeln.
-
@saschas
Hallo,Habe ich bei mir aber auch schon extra durch "Maximaler Parallelbetrieb der Ventile = 1 " vorgegeben.
Der Adapter ist aber auch für kräftigere Pumpen entwickelt. Bei mir laufen z.B. bis zu 3 Kreise Parallel
Diese Zeichnung sollte alles erklären! Alle grau eingekreiste Werte stammen aus deiner Konfiguration und mit diesen kann man alles erklären und berechnen.
MfG Dirk Peter -
@dirk-peter Herzlichen Dank für dein Diagramm. Kleine Rückfragen habe ich noch.
Entsprechend die Parameter
immer
Bewässerungszeit in min = 50 % acutalSoilMoisture auf der (Y-Achse deiner Grafik)
Maximale Bewässerungsverlängerung in % = 0 % acutalSoilMoisture auf der (Y-Achse deiner Grafik)Wenn dem so ist, dann hätte ich verstanden, dass ich die zwei Parameter
- Maximale Bewässerungsverlängerung in %
- maximale Bodenfeuchtigkeit nach der Bewässerung in (mm)),
habe, welche mir die Steigung (dunkelblaue Linie) festlegen.
So ganz macht meine Annahme keinen Sinn.
Gedankenexperiment:
Wenn ich meinen Einstellungen Maximale Bewässerungsverlängerung in % = 100% (also keine Verlängerung erlaubt) setze, würde ich dann folgendes Bild erhalten? Meine Annahme habe ich mit rot eingetragen. -> Steigung wird steiler.
Oder unter der Annahme, dass Bewässerungszeit in min = 50 % acutalSoilMoisture auf der (Y-Achse deiner Grafik) gilt, sich zunächst das gleiche Bild ergibt mit Schnittpunkt (120,0), aber lediglich 60 Minuten bewässert wird. Dann würde ich errechnen, dass ich nach 60 Minuten Bewässerung bei acutalSoilMoisture = 63,44 % (=13,6 + 49,84) lande.
Herleitung: (100% - 13,6%) = 86,4%. => 86,4% in 140 Minuten => 0,83076% Pro Minute => In 60 Minuten 49,84% -
@saschas Hallo,
falsche Annahme! Die Gerade bleibt die gleiche, da ja immer noch runningTime = 60 min (≙ max. Bodenfeuchtigkeit = 8 mm) und Einschaltpunkt = 50 %. Die Bewässerungszeit wird nur auf 100 % begrenzt und der Bewässerungskreis fährt mit der braunen Gerade zurück auf 100 %.
MfG Dirk Peter -
ich habe eine frage zur pumpensteuerung:
meine "hauptpumpe" ist die in der Zisterne...
sehe ich es richtig, dass die hauptpumpe immer ausgeschaltet ist, wenn gerade keine bewässerung läuft?
Kann ich das auch verhindern? Hintergrund ist, dass ich auch Wassersteckdosen habe, auf denen immer druck anliegen soll (ohne ventile).
Müsste ich dann einfach die Angabe der Pumpe weglassen, oder wir löst man das?Danke
-
@dirk-peter Ich hab mit vielem gerechnet, aber das Bild ergibt in meinem Kopf am wenigsten Sinn. Sorry, dass ich da jetzt noch einmal nachfrage - ich will das unbedingt verstehen. Ich hoffe du kannst mir erneut helfen. Ich erkläre mich auch gerne bereit das anschließend Idiotensicher aufzuschreiben, dass wir das der Doku beifügen können.
Was mich an deinem letzten Bild irritiert ist die Aussage, dass man bei den 13,6% man innerhalb von 60 Minuten (braune Linie von dir) wieder bei den 100% (≙ max. Bodenfeuchtigkeit = 8 mm) ist. Wäre ich jetzt anstatt bei 13,6% bei 40% (rote durchgezogene Linie), dann folgt doch nach der gleichen Logik wieder, dass ich nach 60 Minuten (rote gestrichelte Linie) bei 100% (≙ max. Bodenfeuchtigkeit = 8 mm) bin.
Ich hätte erwartet, dass ich es aber doch von der runningTime einen Unterschied machen muss, ob ich bei 13,6% oder 40% (beides unterhalb des Schwellwertes von 50%) mit der Bewässerung beginne.Vielleicht hilft ein weiteres fiktives Beispiel:
Bewässerungszeit in min: 40
maximale Bewässerungsverlängerung in %: 300
Einschaltpunkt (Bodenfeuchtigkeit) des Bewässerungsventile in %: 60
maximale Bodenfeuchtigkeit nach der Bewässerung in (mm): 8Diese Größen kann ich in das Diagramm noch einzeichnen
Aber ab dann verstehe ich die Zusammenhänge nicht nicht mehr.
Nach deiner letzten Aussage, hatte ich jetzt verstanden, dass runningTime = 40 min (≙ max. Bodenfeuchtigkeit = 8 mm) und Einschaltpunkt = 60% maßgeblich für die Steigung sind.
Aus dem Bild würde ich dann schon einmal ablesen, dass der Bewässerungskreis niemals länger als 100 Minuten laufen muss um wieder auf 100% zu kommen?
Bei einer Feuchtigkeit im Boden von 20 % zum Start der Bewässerung würde ich dann eine runningTime von 80 Minuten erwarten?
-
@saschas Oh Sorry, da habe ich Mist erzählt!
Berechnung der Rücklauf Gerade:/** @type {number} */ newThread.soilMoisture15s = 15 * (myConfig.config[res.sprinkleID].soilMoisture.maxIrrigation - myConfig.config[res.sprinkleID].soilMoisture.triggersIrrigation) / (60 * myConfig.config[res.sprinkleID].wateringTime);
Da dies aber auf Dauer Quatsch ist und der Bewässerungskreis Täglich starten würde gibt es die Funktion Bodenfeuchtigkeit = 100% nach der Bewässerung, womit wir wieder bei 100% sind.
So das sollte es jetzt gewesen sein,
MfG Dirk Peter -
@dirk-peter Sowohl das Bildchen als auch die Funktion Bodenfeuchtigkeit = 100% nach der Bewässerung machen Sinn. Damit kann ich/man was anfangen. Ich schreibe das die Tage mal auf
Kannst du mir noch kurz beantworten, was in unserem Beispiel die Werte in der Formel wären:
maxIrrigation = 8mm
triggersIrrigation = 4mm
wateringTime = 60min-> soilMoisture15s = 15 * (8mm-4mm) / (60 * 60min) = 15 * 4 / 3600 mm/s = 60 / 3600 mm/15s
-> Alle 15 Sekunden steigt Bodenfeuchte um 0,016666667 mm.Das passt dann auch zu der Grafik: Anhand der Grafik (blaue Linie) errechne ich eine Steigung von (8-0) / 60* (120-0) = 8 / 7200 = 0,001111111 mm/s --> Also 0,016666667mm alle 15 Sekunden.
Yeah! Es macht einfach Spaß, wenn die Zahlen und Formeln aufgehen.
-
maxIrrigation = 8mm
maximale Bodenfeuchtigkeit nach der Bewässerung in (mm)
triggersIrrigation = 4mm
Einschaltpunkt (Bodenfeuchtigkeit) des Bewässerungsventils in % x maxIrrigation [8mm * 50% = 4mm]
wateringTime = 60min
Bewässerungszeit in min
MfG Dirk Peter
-
Hi,
ich habe 3 Ventile - davon habe ich Nr. 1 & 3 per option "autoOn" deaktiviert.
Dennoch startet die Bewässerung mit einem dieser Ventile (Bewässerung Garage:3.STATE).
Wo liegt das problem?{ "_id": "system.adapter.sprinklecontrol.0", "common": { "name": "sprinklecontrol", "version": "0.2.11", "title": "Sprinkle Control", "authors": [ "Dirk Peter <dirk.peter@freenet.de>" ], "keywords": [ "Sprinkle", "Irrigation", "Bewässerung", "Steuerung", "ioBroker" ], "docs": { "en": "docs/en/sprinklecontrol.md", "de": "docs/de/sprinklecontrol.md" }, "license": "MIT", "platform": "Javascript/Node.js", "main": "main.js", "icon": "sprinklecontrol.png", "enabled": true, "extIcon": "https://raw.githubusercontent.com/Dirk-Peter-md/ioBroker.sprinklecontrol/master/admin/sprinklecontrol.png", "readme": "https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/README.md", "loglevel": "info", "mode": "daemon", "type": "garden", "compact": true, "materialize": true, "messagebox": true, "stopBeforeUpdate": true, "connectionType": "local", "dataSource": "assumption", "dependencies": [ { "js-controller": ">=2.0.0" } ], "installedFrom": "iobroker.sprinklecontrol@0.2.11", "installedVersion": "0.2.11", "host": "iobroker" }, "native": { "triggerControlVoltage": "", "maximumParallelValves": 1, "switchingDistance": 500, "triggerMainPump": "hm-rpc.1.SEQ0343973.4.STATE", "triggerMainPumpPower": 750, "cisternSettings": false, "triggerCisternPump": "", "triggerCisternPumpPower": 1800, "actualValueLevel": "30", "triggerMinCisternLevel": 25, "wateringStartTime": "livingTime", "timeShift": 0, "weekLiving": "21:10", "publicWeekend": true, "weekEndLiving": "23:00", "publicHolidays": true, "publicHolInstance": "feiertage.0", "latitude": "50.22116135719122", "longitude": "8.683589310246877", "notificationEnabled": false, "sensorOutsideTemperature": "", "sensorOutsideHumidity": "", "sensorWindSpeed": "", "sensorBrightness": "", "sensorRainfall": "", "weatherForecast": false, "weatherForInstance": "", "thresholdRain": 2, "notificationsType": "Telegram", "telegramInstance": "", "telegramUser": null, "telegramNoticeType": "longTelegramNotice", "telegramWaitToSend": 0, "telegramSilentNotice": false, "telegramOnlyError": false, "whatsappInstance": "", "whatsappNoticeType": "longWhatsappNotice", "whatsappWaitToSend": 0, "whatsappOnlyError": false, "pushoverInstance": "", "pushoverNoticeType": "longPushoverNotice", "pushoverWaitToSend": 0, "pushoverDeviceID": "", "pushoverSound": "", "pushoverSilentNotice": false, "pushoverOnlyError": false, "emailReceiver": "xxx@xxx.com", "emailSender": "xxx@xxx.com", "emailInstance": "", "emailNoticeType": "longEmailNotice", "emailWaitToSend": 0, "emailOnlyError": false, "events": [ { "enabled": true, "sprinkleName": "Bewässerung Garage:1.STATE", "name": "hm-rpc.1.SEQ0343973.1.STATE", "triggerID": "", "wateringTime": "20", "wateringAdd": "130", "wateringInterval": "0", "maxSoilMoistureIrrigation": "8", "maxSoilMoistureRainPct": "120", "triggersIrrigation": "50", "pipeFlow": "1100", "booster": false, "endIrrigation": true, "methodControlSM": "fixDay", "inGreenhouse": false, "triggerSM": "", "analogZPct": "0", "analogOHPct": "100", "startDay": "fixDay", "sun": true, "mon": true, "tue": true, "wed": true, "thur": true, "fri": true, "sat": true }, { "enabled": true, "sprinkleName": "Rasen", "name": "hm-rpc.1.SEQ0343973.2.STATE", "triggerID": "", "wateringTime": "50", "wateringAdd": "130", "wateringInterval": "0", "maxSoilMoistureIrrigation": "8", "maxSoilMoistureRainPct": "120", "triggersIrrigation": "50", "pipeFlow": "370", "booster": false, "endIrrigation": false, "methodControlSM": "fixDay", "inGreenhouse": false, "triggerSM": "", "analogZPct": "0", "analogOHPct": "100", "startDay": "fixDay", "sun": true, "mon": true, "tue": true, "wed": true, "thur": true, "fri": true, "sat": true }, { "enabled": true, "sprinkleName": "Bewässerung Garage:3.STATE", "name": "hm-rpc.1.SEQ0343973.3.STATE", "triggerID": "", "wateringTime": "20", "wateringAdd": "130", "wateringInterval": "0", "maxSoilMoistureIrrigation": "8", "maxSoilMoistureRainPct": "120", "triggersIrrigation": "50", "pipeFlow": "700", "booster": false, "endIrrigation": true, "methodControlSM": "fixDay", "inGreenhouse": false, "triggerSM": "", "analogZPct": "0", "analogOHPct": "100", "startDay": "fixDay", "sun": true, "mon": true, "tue": true, "wed": true, "thur": true, "fri": true, "sat": true } ] } }
-
@gyle
Hallo, das ist ein Fehler im Adapter! Wenn man die Konfiguration speichert, so wird autoOn nicht neu ausgelesen. Am besten du deaktivierst die Bewässerungskreise direkt in der Konfiguration. Ich ändere es in der nächsten Version.
Danke für die Info, Dirk Peter -
@dirk-peter super danke dir!
-
Hat man denn die Möglichkeit die einzelnen Sprinkler zu resetten?
Bin ja noch am Experimentieren. Wenn ich acutalSoilMoisture im Expertenmodus schreibe, dann wird bei der nächsten Berechnung wieder der alte Wert errechnet. Ich würde gerne gezielt den acutalSoilMoisture vorgeben können. -
@saschas adapter stoppen, wert ändern und wieder starten
-
@dirk-peter
Hallo,ich habe das ganze entsprechend deiner Anleitung umgestellt.
Funktioniert soweit super bis auf ein kleines Problem.Bei jedem Regen Tag wird der Tages Unterschied wieder überschrieben und laufen wieder parallel.
Hast du hierfür noch einen Tipp für mich, wie ich das manuelle Umstellen umgehen kann?
MfG
Paul