Beiträge von janzeitler

    Habe bei meinem Update meiner Aktivitäten noch etwas vergessen (sorry aber das Alter...):

    Da ich leider kein Minimal System sauber installiert bekam startet mein Raspi B Rev.2 jetzt von SD und läuft dann auf einem USB-Stick. Auch im Standard-wheezy (Raspbian) - gefühlt sehr schnell. Zu diesem Schritt habe ich mich entschlossen nachdem ich das Tutorial von
    rafii6311 - Vom USB-Stick starten:

    Vom USB-Stick starten

    gelesen habe.
    Zusätzlich zu dienem tutorial habe ich dann noch per Gparted die Boot-Partition auf eine kleine SD-Karte kopiert (meine Bootpartition ist gerade mal 56MB groß). Also reicht eine kleine 1GB, die ich rumliegen hatte, ganz leicht. Wer wissen will wie ich das gemacht habe liest sich Beitrag #6 im oben genannten Tut durch.
    Jetzt kann ich bei Problemen ganz schnell beide Datenträger mit hier rumliegenden Teilen wiederherstellen.
    Ich bin mit der Lösung mehr als zufrieden.

    Ein weiteres Projekt ist mir noch eingefallen:

    Wenn auf meinem PI dann alles drauf ist dann hätte ich gerne noch eine "Kommandozentrale" - wird dann auch in PHP erfolgen. Wo doch der Rest schon in PHP ist bietet sich das an.

    Ich wollte mal ein Update meiner Aktivitäten machen (falls es jemanden interessiert, bzw. falls jemand mal ein ähnliches Projekt angeht ist es vielleicht eine Anregung):

    Da ja in den Tabellen, wie von meigrafd vorgeschlagen, alles eindeutig sein muß, habe ich nun für alle Schaltvorgänge 1 Skript (mit Array :fies: ). Dank der vielen Hilfestellungen von meigrafd war das dann nicht mehr so schwer. :danke_ATDE:
    schalten.sh:

    Zur Erläuterung wie es dazu kam:
    - Path = ... benötigte ich da crontab mir das Array sonst nicht ausgeführt hat. Tante Google hat mir aber dabei geholfen den Fehler zu finden.
    - Alle Steckdosen werden über die Zahlen 1-4 angesteuert
    - Alle Relais werden über die Zahlen 11-18 angesteuert
    - Die Relais 16-18 sollen eine Dosierpumpe anschalten die nach Ablauf einer bestimmten Zeit (jeweils separat einstellbar über Timer) dann selbsständig ausschalten
    - Zusätzlich wird über einen crontab-Eintrag jede Dosierpumpe nach 2min nochmals ausgeschaltet (zusätzliche Sicherheit eingebaut) - schadet ja nicht.
    - Es gibt, zugegeben, eine Menge if-Schleifen aber durch die zusätzliche Verwendung der case-Schleifen wird es (für mich) übersichtlicher und damit steuere ich die verschiedenen von mir gewünschten Schaltvorgänge

    Ich weiß es gibt sicherlich eine Menge Möglichkeiten wie man das schöner oder sogar besser machen kann. Falls jemand einen Vorschlag hat - bitte posten. Aber mein Skript tut z. Zt. was es soll und das ist mir wichtig.

    Was folgt als nächstes?
    Nun da ich nur noch 1 Skript habe und alles eindeutig ist werde ich mich an die SQL-Geschichte machen. Die Ausgaben des Skripts in die SQL-Tabellen umschreiben und die Überprüfung der Schaltzustände nach reboot oder Stromausfall angehen.
    Den Vorschlag von meigrafd:

    finde ich sehr gut. Soweit ich mit der SQL-Geschichte soweit bin wird auch das, wohl in php, angegangen werden.

    Da ich gerade nach diesem Tutorial gearbeitet habe, krame ich das Thema nochmal aus der Schublade:

    Ich habe es mit Windows Win32DiskImager.exe gemacht. Nachdem ich das Image gesichert hatte. Hab ich den USB-Stick damit bespielt und danach per Gparted vom USb-Stick die Boot-Partition auf eine kleine SD-Karte kopiert (Nach dem Kopieren "Markierung bearbeiten" nicht vergessen - hier 'ba' anklicken). Wenn man das nach dem Ändern der Datei "cmdline.txt" macht, dann spart man sich sogar das "Doppeländern".
    Es funktioniert bei mir wunderbar. Warnung aus eigener Erfahrung: an die Arbeit mit Gparted sollte man sich nur trauen, wenn man sich sicher ist was man tut. Sonst ist am Ende Euer PC auch platt! Für Unsichere empfehle ich die bei AUSGESCHALTETEM PC die Festplatte abzuklemmen, Gparted von einer Live-CD zu starten - das minimiert das Risiko.
    Ob es so möglich ist ein paar verschiedene System einzurichten - das kann ich nicht beurteilen. Sicherungskopien vor Änderungen sind jedoch möglich. So muß man nicht ständig neu installieren und das booten mit der Standard-Edition geht auch (gefühlt) schnell.
    Toller Anssatz rafii6311 :thumbs1:

    Hallo, veilleicht kann ich Dir auch mal helfen:

    Ich hab mir vor 6 Monaten den HP ENVY 5640 e-All-in-One zugelegt.


    Moin.

    Kann hier jemand einen Multifunktions-Farbdrucker für um die 100€ empfehlen?

    Anforderungen:

    • Eigentlich hauptsächlich A4 Normalpapier.
    • WLAN.
    • Duplex.
    • Einzelpatronen (mind. Schwarz von Color getrennt).
    • Scannen / Kopieren.
    • Sehr gute S/W Qualität.
    • geringe Druckkosten.
    • Nicht teurer als 150€.

    :danke_ATDE:

    Bin Wenigdrucker. Ab und an mal ein paar Fotos, und Internetseiten. Bin mit der Qualität in Farbe und Schwarz/Weiß sehr zufrieden. Habe immer noch die mitgelieferte Erstbestückung drin. Die ist sind halbleer. Hat ein extra Fotopapierfach Preise für die Ersatzpatronen

    Ergiebigkeit: 200 Seiten / schwarz und 165 Seiten / farbig

    liegen meines Erachtens in bezahlbaren Regionen.
    Hat Wifi. Bei mir steht die Verbindung absolut zuverlässig.
    Die Software ist etwas überladen aber die Fotosoftware ist, wenn man sich mal darn gewöhnt hat, einfach zu bedienen.

    Ich würde ihn jederzeit wieder kaufen. Kostet z. Zt. hier mit Prime 101,99 € (http://www.amazon.de/e-All--Drucker-Scanner-Kopierer-schwarz/dp/B00NEIOYO8/ref=sr_1_1?ie=UTF8&qid=1452094259&sr=8-1&keywords=hp+envy+5640&tag=psblog-21 [Anzeige]) Ich hab ihn bei einer Amazon-Aktion für 79,90 € geschossen.

    Dies ist meine Meinung und meine Erfahrungen. Ich arbeite nicht bei HP und bekomme für diese Empfehlung auch nichts bezahlt...
    Es gibt viel Auswahl in dieser Preisklasse - ich wollte einfach ein Markenprodukt.
    Da Druckerkauf immer auch Glücksache ist - wünsche ich Dir viel Glück beim Druckerkauf.

    Danke meigrafd. Wie immer ausführlich und sehr verständlich erklärt. :thumbs1:
    Das mit dem Array hab ich jetzt dank Dir gefressen

    Zur Datenbank:

    Du hast 3 Tabellen: Typ, Status und Vorgang.

    Dort gibt man an das sich 'id' von selbst erhöht, pro Eintrag der gemacht wird. Also der erste INSERT erhält die id 1, der zweite INSERT kriegt die id 2 usw. Löscht man einen Eintrag und fügt einen neuen Hinzu kriegt der ebenfalls eine andere id fortlaufend - also ist id immer eindeutig (unique). Diese 'id' kann man also verwenden um einen eindeutigen Eintrag auszuwählen, einen anderen Eintrag mit dieser id wird es nie geben.

    Die Tabelle Status wird sich nie verändern, dort steht einfach nur "Aus" oder "An" drin. Zum Beispiel hätte dann "Aus" die id 1 und "An" die id 2.
    Bei Typ wird sich so schnell denk ich auch nichts ändern, da trägst du ein mal die Standorte die geschaltet werden sollen/können ein und belässt das dann vermutlich erst mal so. So hätte dann zB. Nachtlicht die id 1 usw.
    Bei der Vorgang Tabelle ändert sich dann natürlich ständig etwas da dass dann dein Log wäre. In dieser Tabelle stehen dann alle Schaltvorgänge drin und anhand dessen kannst du nach einem Reboot dann auch ermitteln wie der letzte Schaltvorgang aussah - du brauchst also nicht noch eine weitere Tabelle.

    Du gehst also wie gesagt wie folgt vor:

    • alle 3 Tabellen erzeugen
    • Status befüllen.
    • Typ in der Reihenfolge befüllen wie später die 'id' passend wäre, damit du beim bash Script mit $1 arbeiten kannst... Ansonsten müsstest du für id_Typ auch eine SQL Abfrage machen.


    Richtig habe ich alles so gemacht. Allerdings hatte ich durch Befüllen mit phpMyAdmin (Deine Befehle aus Beitrag#18 im Reiter SQl eingefügt) jeden Eintrag 4x. Ich habe dann händisch die jeweiligen 3 überflüssigen Einträge gelöscht und die Nummerierung händisch geändert. Beim nachträgliche eintregen eines neuen Eintrags ist mir aufgefallen, dass SQL gemeldet hat "Zeile 18 eingefügt". ALso werde ich die 3 Tabellen löschen und nochmals neu anlegen. Damit alles sauber vorhanden ist.

    Mit der Eindeutigkeit des Typs muß ich mir was überlegen - es gibt Steckdose 1-4 und Relais 1-8. Eventuell nutze ich SQL und mache 2 Einträge zusätzlich zu den 8 Relais die ich wieder lösche. Dann würden die USB Steckdosen die Nummern 11-14 erhalten - ist leicht zu merken :D und eindeutig (unique).



    Wenn du nun nach einem Reboot die letzten Schaltvorgänge auslesen willst brauchst du dir nur den letzten Treffer der passenden id_Typ ausgeben lassen. Dazu holt man sich erst alle verfügbaren Typ's aus der Datenbank und fragt anschließend den jeweils letzten Eintrag aus der Vorgang Tabelle ab

    OK leuchtet mir auch ein. Danke


    Bei der Vorgang Tabelle ändert sich dann natürlich ständig etwas da dass dann dein Log wäre. In dieser Tabelle stehen dann alle Schaltvorgänge drin und anhand dessen kannst du nach einem Reboot dann auch ermitteln wie der letzte Schaltvorgang aussah - du brauchst also nicht noch eine weitere Tabelle.

    Die 4. Tabelle war mein Gedanke wegen der BeiträgeBeiträge von Rasp-Berlin (#6) und dbv (#8). Aber Du bist ja der einzige der mir hier weiterhilft.
    [font="Times New Roman"]

    [/font]


    [font="Times New Roman"]Du hast eine Datenbank, in der der Status zu jeder Zeit enthalten ist.[/font]
    [font="Times New Roman"]Du hast dann nicht unterschiedliche Crontab-Einträge, die zu dieser, oder jeden Zeit, diese oder jene Steckdose schaltet, sondern einen,d er regelmäßig nach sieht (z.B. stündlich oder halbstündlich) was geschaltet sein sollte, und dieses dann durchführt.[/font]
    [font="Times New Roman"]So musst du, nach einem Neustart, nur nachsehen (lassen) was zum aktuellen Zeitpunkt an und aus sein sollte, und hast den Soll-Status schnell auf den Ist-Status abgebildet.[/font]
    [font="Times New Roman"]

    [/font]
    [font="Times New Roman"]

    [/font]


    [font="Times New Roman"]So siehst aus ;). stehen in den .sh scripten dann aufrufe zu Python scripten drin? [/font]
    [font="Times New Roman"]Edit: du kannst ihn auch jede Minute über die db laufen lassen undefined[/font]
    [font="Times New Roman"] [/font]
    [font="Times New Roman"]Edit2: Obwohl ich persönlich die Scripte zusammenfassen würde. Ich krieg bei den Dateinamen schon Knoten im Kopf ;). Sprich 1 Script für Steckdosen, eins für Releais[/font]
    [font="Times New Roman"]

    [/font]

    Eventuell verfolgen die Beiden eine andere Strategie als Du. Sollte das so sein, dann lasse ich, der Einfacheit halber, die Zeiten in der crontab. Wird eventuell etwas unübersichtlich und voll... und mit einer 4. Tabelle könnte ich eventuell einige Zeilen aus crontab entfernen.. ???
    Bei einer 4. Tabelle würde jede Änderung in dieser Tabelle erfolgen und wäre schön übersichtlich (nicht so durcheinander wie in der crontab).
    Daher meine Frage wie ich dann mit crontab diese Zeiten auslese, bzw. wie die Verbindung crontab mit dieser 4. Tabelle aussieht. Aber wie immer hab ich keinen blassen Schimmer wie das gehen könnte... :blush:

    Erstmal vielen Dank Erleuchteter :angel:

    :bravo2:

    Zitat von meigrafd


    Nix gelernt? :D -> array

    Stimmt irgendwie... Habe es probiert mit dem Array aber ich hab das Array nicht wirklich kapiert. Gebe es zu =( Ca. 2h lang habe ich probiert meine relais.sh mit dem Array umzuschreiben - scheitere aber an einer Idee wie ich also beim Aufruf:


    [/quote]

    Siehe Beitrag#18.


    Denkbar wären zum Beispiel 3 Tabellen: Typ, Status, Vorgang.
    - "Typ" besteht aus 2 Spalten: id und Bezeichnung. id ist fortlaufend eindeutig und Bezeichnung beinhaltet jeweils "Nachtlicht", "Tageslicht" usw
    - "Status" besteht aus 2 Spalten: id und Bezeichnung. Hier gäbe es nur 2 Einträge: id=1, Bezeichnung=An ... id=2, Bezeichnung=Aus
    - "Vorgang" besteht aus 3 Spalten: id, id_Typ, id_Status und Zeit. id ist fortlaufend eindeutig, id_Typ enthält die jeweilige id aus der "Typ" Tabelle ebenso wie id_Status und Zeit ist der Timestamp wann geschaltet wurde.

    Habe ich genau so umgesetzt. Aber es gibt in jeder Tabelle die Spalte id...

    Zitat von meigrafd


    .. dann muss in der Tabelle 'Vorgang' die "id" von dem Typ hinterlegt sein


    genau hier steige ich aus :s - wie geht das? Also die "Hinterlegung der id in der Tabelle "Vorgang" aus der Tabelle "Typ"?
    SELECT'en wie hier:

    Zitat von meigrafd


    Du willst "aus" schalten, also SELECT'est du "id" aus der Tabelle dessen Eintrag "Nachtlicht" enthält :fies:


    geht ja meiner Meinung nach hier nicht - oder doch???

    Zitat von meigrafd


    Du kannst übrigens auch in dem Homedir deines Benutzers eine Datei ".my.cnf" anlegen in der alle Daten drin stehen und brauchst es dann in den Scripts nicht mehr einfügen :fies:

    Beispiel:

    Code
    nano ~/.my.cnf
    Code
    [client]
    host=localhost 
    user=Pi
    password="***passwort**"
    Code
    chmod 0600 ~/.my.cnf
    Code
    mysql aquariumsteuer -e "SHOW TABLES;"

    Nennt sich: User-specific options

    Das wäre ggf sicherer als wenn in der Prozessliste Benutzer und Password von dem Befehl zu sehen wäre ;)

    :angel:

    Das ist eine gute Idee werde mich daran probieren!


    By the way - nachdem ich eine 4.Tabelle mit Ein- und Ausschaltzeiten für die Überprüfung beim reboot und für die "UPDATES" erstellt habe

    Zum Beispiel:
    [code=php]
    - "Schalten" besteht aus 3 Spalten: id_Typ, Einschaltzeit und Ausschaltzeit und id_Typ aus der "Typ" Tabelle, /wenn ich sa mal überzuckert habe wie das geht).
    [/php]

    passt das so? Aber wie lese ich die Einschaltzeit und Ausschaltzeit mit crontable aus (Syntax)?

    Bitte nicht falsch verstehen - ich möchte es ja nicht als "drag and drop" haben. Aber mir fehlen die Denkansätze...
    Ich weiß ich bin anstregend... :rolleyes: Aber SQL, als Computer-Methusalem, im Schnelldurchlauf zu lernen ist nicht einfach... :s Hoffentlich kannst Du mir nochmals erklärend unter die Arme greifen... :danke_ATDE:
    Ich hoffe daher nochmals auf Deine :helpnew:

    So habe nun die 3 Tabellen erstellt.
    Administration über phpMyAdmin. User Pi angelegt mit Zugriffsrechten auf die Datenbank "aquariumsteuer".
    Weiter habe ich das bisherige relais.sh Skript angepasst:
    relaistest.sh:

    Die Statusabfrage in phpMyAdmin wie in meigrafd`s Beispiel:

    Hallo meigrafd,



    Wat is dat denn für eine Verunstaltung des Scripts? :D

    Hm wie Du sagtest " so hab ich auch etwas gemacht"... zumindest war ich mir sicher, daß es so funktioniert - zugegeben Deine Lösung mit dem Array ist cooler und schöner! Wenn man weiß, daß es diese Lösung gibt :bravo2: Ich bin ja am Lernen und glücklich, daß meine kleine Steuerung, Dank Deiner Hilfe, immer mehr zu dem wird was ich mir vorstelle :thumbs1:

    Hallo meigrafd,

    habe jetzt einiges ausprobiert. Dein regain.sh skript ( alles markiert und reinkopiert) wirft mir folgende Fehlermeldung aus:

    Code
    awk: line 1: syntax error at or near print
    awk: line 1: syntax error at or near print
    awk: line 1: syntax error at or near print
    awk: line 1: syntax error at or near print

    habs gefunden - liegt am awk-Aufruf im unteren Abschnitt. Da ist Dir ein $-zeichen reingerutscht. Habe ich bei mir geändert. Soweit läufts jetzt. Habe Deine Versoin abgeänderte (wegen den GPIO-Nummern) die läuft - ich hoffe auch zuverlässig ... :blush:
    Hier hab ich mein geändertes Skript (nur der Teil mit den GPIO-Definitionen ist anders, der Rest Original) zum Anschauen:


    Vielleicht kannt Du mal drüber scheuen ob das so passt, bzw. hast wieder eine tolle Idee was man da verbessern kann.
    Auf alle Fälle habe ich die Relais-skript und eines das meine Dosierpumpen als solche anspricht dank deiner Vorlage :bravo2: erstellt und alles funzt. Jetzt probier ich dann mal SQL / SQLlite aus... Mal sehen wie es dann damit läuft. :D

    LG

    Hey meigrafd Du bist mein Mann!
    Super was Du alles weißt!
    Ich wollte es mit SQLlite umsetzen weil ich meinem Raspberry für diese Projekt nur eine 4GB Karte gegönnt habe und SQL ein größeres Paket als SQLlite ist. Aber nach Weihnachten werde ich vielleicht meinem Raspberry eine 8GB Karte gönnen und dann setze ich es genauso um wie Du es vorgeschlagen hast.
    Wenn es für Dich interessant ist werde ich dann von meinen Misserfolgen / Erfolgen berichten.
    Schon jetzt wünsche ich Dir frohe Weihnachten und nochmals vielen Dank für Deine Mühen – Du bist echt klasse! Danke nochmals.

    OK. Es beruhigt mich, daß ich die Arbeitsweise des Skriptes verstanden habe. :thumbs1:
    Nochmals vielen Dank für Deine Mühen. Du hast mir sehr geholfen.
    Noch eine Frage zum Schluß: Wäre die Überprüfung der Zeiträume zwischen Einschalt -/ Auschaltzeile beim reboot mit SQLlite und einer deisbezüglichen Tabelle möglich? Also was ich gehnau wissen möchte ist - kann SQLlite mit Zeiträumen zwischen Start- und Endzeit umgehen?
    Dann müsste ich ja nur Deine Skripte in diese Richtung anpassen / ändern.

    Hallo meigrafd

    Ich habe seit gestern Abend Dein Skript "usbdose.sh" am Start und teste es mal durch...
    Update 22.12.02015, 7h01: Es funktioniert!!! Passt perfekt - Super Arbeit.

    Mit dem regain.sh Skript habe ich allerdings noch Probleme - ich bekomme immer die Fehlermeldung:

    ./regain.sh: Zeile 35: Dateiende beim Suchen nach `"' erreicht.
    ./regain.sh: Zeile 40: Syntax Fehler: Unerwartetes Dateiende.

    Habe den Code mit der Maus markiert und über strg+c kopiert, dann in nano eingefügt weil ich mit dem Button "alles markieren" + strg+c keinerlei Reaktion hatte und auch nichts eingefügt wurde.
    Das Skript habe ich mit chmod u+x ausführbar gemacht und dann beim Ausführen obige Fehlermeldungen erhalten.


    Ich habe gestern 1 Stunde Dein Skript regain.sh versucht zu verstehen in der Hinsicht wo die Überprüfung der Crontab Zeiten stehen aber nicht finden können. Fehlt ein Eintrag wird die entsprechnde Aktion "nachgeholt" - soweit klar. Abgesehen von der Fehlermeldung bim Ausführen.
    Für mich ist noch folgende Situation unklar:
    Annahme das Tageslicht ) Steckdose 1 wurde um 9h eingeschaltet -> Eintrag im LOGFILE=/home/pi/aquarium/log/steuerung.log erstellt. Nehmen wir an es ist ein Stromausfall / reboot um 10h dann wird doch beim reboot der Eintrag
    12212015 09:00:00 : usb-Steckdose 1 eingeschaltet
    erstellt. Nach dem reboot dieser Eintrag auf Vorhandensein überprüft - ist er da scheint alles in Ordnung und es wird nichts getan.

    Habe ich das so richtig verstanden??? Oder prüft Dein Skript auch die Zeiten zwischen ein- und ausschalten und ermittelt welcher Schaltzustand vorhanden sein müsste und schaltet dann diesen ein / aus?
    Sorry, daß ich so lästig bin aber ich bin einfach noch blutiger Anfänger.

    Vielen Dank für Dein Verständnis.

    Hallo meigrafd,

    ja jetzt verstehe ich was Du meinst. Sicher ändert sich nur der Zustand und die Adresse der Steckdose, bzw. des Relais. Somit ist ein Skript ausreichend. Mir hat einfach der Denkansatz gefehlt. Vielen Dank für Deine Mühe und die ausführliche Auskunft. Jetzt bin ich einen Schritt weiter.
    Was mir jetzt noch nicht klar ist: Beim reboot bleibt noch das Problem mit demSchaltzustand zu bestimmten Uhrzeiten abfragen oder nicht? Also müsste ich doch eine Tabelle benutzen und die Schaltzustände mit den -zeiten dort überprüfen, bzw. abgleichen? Oder ginge die Abfrage der Uhrzeit und ob ein Schaltbefehl während der Raspi offline war nicht ausgeführt wurde bei deiner Methode und meinem Logfile auch?

    Hallo,

    also ich bin ehrlich gesagt froh, daß ich das Schalten über die Befehle zusammengebracht habe und es funktioniert. Ich programmiere beruflich auch CNC Maschinen variabel und weiß, daß meine ersten Gehversuche nicht schön sind und man es sicher viel besser machen kann. Aber ehrlich gesagt ich keine Ahnung wie! Darum versuche ich meine Wünsche so gut ich es kann umzusetzen. Und bisher habe ich schon einiges dabei gelernt. Einen Raspberry Pi zur Prozesssteuerung zu benutzen anscheinend nicht so einfach wie eine SPS zu programmieren. ABER ich will es lernen und bin um jede Hilfe, bzw Denkansatz dankbar. Ich verlange ja gar nicht, daß mir jemand ein Skript schreibt - ich benötige nur die Ansätze, bzw. Befehle mit deren Möglichkeiten.

    Hier das Schaltscript für die Steckdose 4 (alle anderen sehn gleich aus, beim Einschaltscript ist nur der Befehl anders...)

    #!/bin/bash
    # Steckdose #4 AUS!

    LOGFILE=/home/pi/aquarium/log/steuerung.log
    RETAIN_NUM_LINES=50
    #
    sudo sispmctl -f 4
    #
    echo "$(date "+%m%d%Y %T") : usb-Steckdose 4 ausgeschaltet" >> $LOGFILE 2>&1

    exit

    Hier das Schaltscript für das Relais 6 (alle anderen sehn gleich aus, beim Einschaltscript ist nur der Befehl anders...)

    #!/bin/bash
    # Relais #6 AUS!

    LOGFILE=/home/pi/aquarium/log/steuerung.log
    RETAIN_NUM_LINES=50
    #
    sudo gpio write 4 0
    #
    echo "$(date "+%m%d%Y %T") : Relais 6 ausgeschaltet" >> $LOGFILE 2>&1

    exit

    Vielen Dank für Eure Mühen im Voraus.

    Klingt gut! Also sollte ich mich in SQLlite einlesen und mein Vorhaben:


    Du hast eine Datenbank, in der der Status zu jeder Zeit enthalten ist.
    Du hast dann nicht unterschiedliche Crontab-Einträge, die zu dieser, oder jeden Zeit, diese oder jene Steckdose schaltet, sondern einen,d er regelmäßig nach sieht (z.B. stündlich oder halbstündlich) was geschaltet sein sollte, und dieses dann durchführt.
    So musst du, nach einem Neustart, nur nachsehen (lassen) was zum aktuellen Zeitpunkt an und aus sein sollte, und hast den Soll-Status schnell auf den Ist-Status abgebildet.

    damit umsetzen? Leider habe ich bis jetzt keinen Schimmer wie ich das in die Tat umsetzen soll. Verstanden habe ich zumindest was Du meinst. Aber mir fehlt der Ansatz zur Durchführung. Was mir noch unklar ist:
    Wenn der Crontab-Eintrag nur halbstündig nachsieht, dann habe ich, im schlimmsten Fall halbstündige Genauigkeit - oder merkt sich der Cronjob was er in, sagen wir mal 20 Min tun soll?
    Sorry bin Newbie und muß noch vieles lernen! Aber ich bin gerne dazu bereit.

    Ich benutze zur Zeit Python. Wobei ich nur die Befehle ind einzelne .sh Skripte geschriben habe. In der crontab rufe ich dann das jeweilig Skript auf. Darum dachte ich, ich muß alles doppelt führen, weil die crontab, meines Wissens nach, nicht auf die Datenbank zugreifen kann (also wegen der Zeiten). Hier mal ein Beispiel für die USB Steckdose (crontab):


    #***Schaltbefehle USB STeckdose Anfang***
    # Nachtlicht, Steckdose #2 1.EIN!
    15 5 * * * /home/pi/usbdose2ein.sh
    # Nachtlicht, Steckdose #2 1.AUS!
    1 9 * * * /home/pi/usbdose2aus.sh
    # Tageslicht, Steckdose #1 EIN!
    0 9 * * * /home/pi/usbdose1ein.sh
    # Tageslicht, Steckdose #1 AUS!
    0 20 * * * /home/pi/usbdose1aus.sh
    # Nachfüllanlage, Steckdose #3 EIN!
    5 9,16,22 * * * /home/pi/usbdose3ein.sh
    # Nachfüllanlage, Steckdose #3 AUS!
    7 9,16,22 * * * /home/pi/usbdose3aus.sh
    # Nachtlicht, Steckdose #2 2.EIN!
    59 19 * * * /home/pi/usbdose2ein.sh
    # Nachtlicht, Steckdose #2 2.AUS!
    30 22 * * * /home/pi/usbdose2aus.sh
    #***Schaltbefehle USB Steckdose Ende***


    Für die Relais sieht das ähnlich aus. Vielleicht habe ich ja einfach einen Denkfehler, bzw. versteh nicht wie Du den Aufbau genau vorhast. Bin aber für jede Hilfe dankbar.
    Google gerade über SQLlite - das könnte eine Hilfe für mein Vorhaben sein???

    Danke für die schnelle Antwort. So ähnlich (Tabelle / Datenbank) habe ich mir das mschon gedacht. Hat halt den nachteil, daß ich die zeiten doppelt führen muß und bei Änderungen nichts übersehen darf.
    Hast Du noch Schlagworte mit denen ich die Umsetzung ergooglen kann? Ehrlich gesagt weiß ich nicht wie ich eine Datenbank / Tabelle erstelle und auch auslese...

    Danke im Voraus.

    Hallo Community,

    ich bin ein Fan Eurer Community und ein Raspberry-Newbie, nun habe ich mein Projekt: "Aquariumsteuerung" mit der USB-Steckdosenleiste und einer 8er Relaiskarte umgesetzt. Das klappte soweit ganz gut. Die Ein- und Ausschaltzeiten sind in der crontab definiert. Nun meine Frage: Wenn nun der Raspberry Pi B, Rev 2, z.B. nach Stromausfall, neu bootet, dann sind meine GPIO`s (Pin 11,12,13,15,16,18,19,22), zur Sicherheit, im Zustand 0, also ausgeschaltet. Wenn nun aber, ohne reboot, das jeweilige Relais, laut crontab, eingeschaltet sein sollte, bleibt es dennoch aus! Genau das ist mein Problem wie kann ich beim reboot prüfen welchen Schaltzustand das Relais um diese Uhrzeit haben sollte? Bei SPS Steuerungen, z.Bsp. Siemens Logo können das. Ich wollte mein Projekt aber mit dem Raspberry verwirklichen, da meine Logo leider defekt ist und eine neue Logo teuer ist und weniger fun beim umsetzen des Projektes macht.
    Sorry, wenn es zu diesem Thema schon Fragen hab aber ich habe schon Tage lang gegoogelt aber zu diesem Problem nichts gefunden - leider. Evtl. benutze ich die falschen Suchworte.
    Weiter hoffe ich, daß ich das Problem genau genug beschreiben konnte.

    Vielen Dank für die Hilfe / Denkansätze.

    LG

    Jochen