Zeitschaltuhr für Gartenbewässerung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Fahne1981
User
Beiträge: 4
Registriert: Dienstag 18. April 2017, 22:21

Hallo Leute,

ich bin neu hier im Forum und auch neu was es angeht mit Scripten umzugehen.

Ich habe mir ein Raspberry zugelegt um eine Bewässerung für meinen Garten zu realisieren.
Raspberry und ein 8er Relaisboard sind vorhanden.
Derzeit kann ich die 8 Relais über ein Webinterface ein und aus schalten.

Möchte aber gerne eine Zeitschaltuhr aktivieren können und eine direkte Zeit von 30 Minuten aktivieren können(falls mehr Wasser benötigt wird). Leider habe ich derzeit noch nicht so viel ahnung was ich dazu noch alles benötige.

Kann mir hier jemand helfen, wäre echt super.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Das ist schwer zu sagen und kommt auch darauf an wie viel Geld du ausgeben willst.

Du kannst einen Schalter an die GPIO Pins hängen . Diesen Pin Abfragen und dann z.B Fix 30min Bewässern. Da gäb es dann keine Einstellmöglichkeiten außerhalb von Software ändern. (<5€)

Dann könntest du dir aber auch einen LCD Display mit mehrern Knöpfen kaufen. Nur um mal ein Bild zu zeigen, BITTE NICHT KAUFEN.. Da könntest du dann auch was einstellen weil du eine Anzeige und mehrer Knöpfe hast. (<10€)

Für beide Varianten braucht man aber keinen RaspberryPI, ein Mikrocontroller reicht da vollkommen aus. Wenn man den PI Nutzen will dann könnte man zum Beispiel den Rasspberry PI Touch Screen kaufen, eine GUI in Python schreiben und dann darüber alles einstellen was deine Bewässerung zu bieten hat. (30-80€)
BlackJack

@Sr4l: Es gibt schon einen Raspi und eine Weboberfläche und in diese Weboberfläche soll neben dem simplen, direkten schalten, ein zeitgesteuertes schalten integriert werden. So habe ich das jedenfalls verstanden.

@Fahne1981: Habe ich das so richtig verstanden?
Fahne1981
User
Beiträge: 4
Registriert: Dienstag 18. April 2017, 22:21

Das hast du richtig verstanden. Blackjack

Vorhandene Hardware:
Raspberry pi
Relais board mit 8 Relais

Folgendes funktioniert bereits:
Webinterface mit php
Ein und aus schalten per webinterface
Vorgegebene Einschaltzeit 10min, 20min und 30min, allerdings ist in dieser Zeit keine weitere eingabe möglich

Was fehlt:
Einstellen eines Tagesprogramm max 3 Zeiten pro Kanal/Tag und mehrere Kanäle gleichzeitig aktivieren.


Ein Display hatte ich auch überlegt, leider wird nur der RPi im Schuppen montiert.
Deshalb ja auch eine Steuerung über webinterface.

Ich hoffe das es zu realisieren ist.
Ich hoffe ich habe nichtso vergessen.

Danke für jede Hilfe.
BlackJack

@Fahne1981: Die Relaisansteuerung würde man dann am besten in einen eigenen Dienst stecken der zum Beispiel eine REST-API zur Verfügung stellt. Man könnte sich da beispielsweise etwas mit Bottle und APScheduler basteln.
Fahne1981
User
Beiträge: 4
Registriert: Dienstag 18. April 2017, 22:21

Gibt es da schon Beispiele für die man nutzen kann.

Ich habe schon sehr viel danach gegooglet aber nichts passendes gefunden.
Ich kann mir nicht vorstellen, das ich der erst bin der eine derartige Zeitschaltuhr haben möchte.

Danke für die hilfe
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

BlackJack hat geschrieben:@Sr4l: Es gibt schon einen Raspi und eine Weboberfläche und in diese Weboberfläche soll neben dem simplen, direkten schalten, ein zeitgesteuertes schalten integriert werden. So habe ich das jedenfalls verstanden
Den wichtigen Satz habe ich vollkommen überflogen. :oops:
Fahne1981 hat geschrieben:Ich habe schon sehr viel danach gegooglet aber nichts passendes gefunden.
Ich kann mir nicht vorstellen, das ich der erst bin der eine derartige Zeitschaltuhr haben möchte.
Du musst dich von dem Gedanken Zeitschaltuhr vll etwas lösen.

Du hast deine Weboberfläche dort kannst du immer nur während die Seite aufgerufen wird Aktionen ausführen, dannach läuft ja der Code nicht mehr. Diese Problematik ist dir auch schon selber aufgefallen deshalb suchst du nach einem verzögerten Ausschalten.

Du Speicherst "Einschalt und Ausschalt Evente" in irgend eine Form von Datenbank (Textdatei, CSV, SQLite, MySQL, Postgres ...). Dann hast du einen Dienst, ein Programm was sich nicht beendet und optimalerweise mit dem Betriebsystem gestartet wird, so wie dein Webserver selber auch. Diese prüft jetzt in regelmäßigen Abständen die Datenbank Quelle ob es für ihn einen Einschalt oder einen Ausschalt Event gibt und falls ja führt er den aus.

Für die Aufgabe hat BlackJack schon AppScheduler vorgeschlagen. Da wird dir nicht übrig bleiben als die Dokumentation ( http://apscheduler.readthedocs.io/en/3.0/userguide.html ) zu durchstöbern bzw. ein Beispiel habe ich schon gefunden https://pythonadventures.wordpress.com/ ... -examples/

Du hast ja geschrieben das du Anfänger bist. Ich kann daher verstehen das du dich jetzt nicht in das nächste Große Thema einarbeiten willst, deshalb hier mal einen Vorschlag: Versuch das ganze doch erstmal mit einer Website, die du manuell aktualisierst und schau ob du es schaffst dir Anzeigen zulassen wie viel der 30 Min schon vorüber sind und führe dann deine Aktion aus.

Um eine Art von Datenaustausch bzw Datenhaltung wirst du nicht herum kommen.
Benutzeravatar
noisefloor
User
Beiträge: 3853
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

es gibt übrigens ein verblüffend ähnliches Thema auch im deutschen Raspi-Forum: http://www.forum-raspberrypi.de/Thread- ... uer-relais

Da ist die eigentliche Fragebestellung aber eher zu "nimm' Bottle statt PHP" abgedriftet.

Gruß, noisefloor
Fahne1981
User
Beiträge: 4
Registriert: Dienstag 18. April 2017, 22:21

Ja das weiss ich.
Ich bin ja auch noch dabei.
Ich bin halt auf diesen Thread gestossen nachdem der andere schon voll im gange war. Hatte halt gedacht dass ich das nutzen könnte bevor ich das Rad neu erfinden muss.
Aber trotzdem danke für die Hilfe.
Bulli
User
Beiträge: 10
Registriert: Mittwoch 22. Februar 2017, 12:45

HI!
Bin da an dem gleichen Thema dran.
Zurzeit habe ich eine Zeitschaltuhr, die 24 Stunden, soviele Schaltzeiten du willst (60 pro Minute)auf 8 Kanälen schalten kannst.
Funktioniert mit einer Sqlite3 Datenbank und Python. Ist aber noch nicht ganz fertig.Bin aber auch nicht der Schnellste :wink:
Benutzeravatar
Damaskus
Administrator
Beiträge: 995
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

BlackJack hat geschrieben:@Fahne1981: Die Relaisansteuerung würde man dann am besten in einen eigenen Dienst stecken der zum Beispiel eine REST-API zur Verfügung stellt. Man könnte sich da beispielsweise etwas mit Bottle und APScheduler basteln.
Also ich verwende für eine komplette Haussteuerung bestehend aus Bewässerung, Rolladen, Wetterstation, Beleuchtung, usw. als "Zeitschaltuhr" APScheduler. -> https://pypi.python.org/pypi/APScheduler
Damit bilde ich in einem separaten Daemon die reine zeitliche Steuerung ab.
z.B. Licht an um 20 Uhr, 20 Minuten Rasen sprengen um 23 Uhr (wenn aber die Außentemp. über 30°C war, dann 40 Minuten sprengen) usw.

Als Input dienen verschiedene Systeme wie eine Django Seite, ein Tinkeforge Display mit Touchfeld und einem eigenen Python Programm und eine einfach Android App um einzelne System gezielt ein/aus zu schalten.

Kernstück bildet APScheduler, mit einem Job der alle 2 Sekunden nach neuen Jobs in einer Datenbank sucht und entsprechend die vorhandenen Jobs aktualisiert oder abändert. Das ganze Läuft auf einem Raspi2.
Antworten