Dämmerungsschalter ohne Fotozelle

  • Löschen der Datei in php mit dem Befehl unlink.


    Bei mir läuft es auch noch nicht rund...


    Irgendwas in der Schleife funktioniert nicht sauber, und deshalb wird das "False" in die Datei geschrieben.

    Also ich habe gemerkt, dass "False" geschrieben wird, wenn DoorPi läuft. Dann passiert das schon, wenn du nur mit nano die Datei offnest und schreibst. Allerdings dann auch nicht immer!!! Aber wenn DoorPi beendet ist (und somit auch das keyboard file) besteht das Problem nicht. Ich denke das hier ein "konflikt" beim Zugriff auf die Datei besteht. Das gleiche hab ich auch beim schlichten ausführen des PHP scriptes festgestellt.
    Mit DoorPi am laufen steht ab und zu False drin (beim neuerstellen der Datei und schreiben der 1) Ohne DoorPi am laufen funktioniert es immer.
    Den Schalter "w" und "wb+" hatte ich auch schon versucht. Ebenso ein "eigentlich" exklusives öffnen und schreiben.


    Peter

  • Hier mal mein PHP Skript:


    So läuft es bei mir und sorgt dafür, dass die LED ab- bzw. eingeschaltet wird.
    Nachteilig in diesem Fall ist, dass alle 5 Minuten bei Aufruf des PHP Skript über die doorpi.ini die Datei ON bzw. OFF nach Tageszeit neu geschrieben wird.
    Verwende ich die Schleifen, die im Moment auskommentiert sind, wird jeweils beim Wechsel von OFF zu ON oder ON zu OFF (je nachdem wann DoorPi neugestartet wurde) der Wert "False" in die neue Datei geschrieben. Dadurch wird aber geprüft, ob die Datei existiert und nicht wieder verändert. Somit wird dann auch die Datei mit dem Wert "False" nicht bearbeitet.
    Leider bringt auch ein vorgeschlagener Befehl clearstatcache() nach dem Befehl unlink nichts.


    Jemand noch eine Idee?

  • Vieleicht kann hier jemand etwas anfangen, ist allerdings in Python geschrieben und fürs Piface.

  • Moin.
    Ich bin immer noch der Meinung, dies als Event in DoorPi zu integrieren. Mir fehlen das insgesamt zwei:


    • Event zu einer beliebigen Uhrzeit (oder gibt es das schon?)
    • Event "Dämmerung"

    Beides wäre IMHO sinnvoll um Aufgaben rund um einen Eingangsbereich zu erledigen. Z.B. Licht, verriegeln von Türen, etc. Ich würde mich damit ja befassen, habe derzeit nur absolut keine Zeit und vor allem kein ausreichendes Python Know how um das in einem solchen Projekt einzubauen.

  • Hey Andy,
    so viel ich weiß gibt es diese Events (noch) nicht. Ich bin aber voll bei Dir dies über die Events in DoorPi laufen zu lassen. Alles wäre besser als dies unnötigerweise über ein Filesystem zu bewekstelligen. Ich denke hier bewusst in Richtung Lebensdauer der SD Karte.

  • Hier mal mein neues twilight Script für GPIO. Die Pin Nummer müsst Ihr natürlich anpassen.


    Es muss als erstes das Programm "ephem" installiert werden:

    Code
    sudo pip install pyephem


    Man lässt das Script am besten aus der crontab alle 5 min. starten:


    oder so muss man es nur einmalig, zB. aus der doorpi.ini, starten. Das Script läuft in dieser Variante in einer Schleife:


    Da meine Python Kentnisse sehr eingeschränkt sind könnte da vieleicht jemand der Python mächtig ist ein Keyboard daraus basteln. Ich hatte es zwar versucht daraus ein Keyboard für DoorPi zu basteln bin aber nicht sehr weit gekommen.
    Danke.

    • Offizieller Beitrag

    Kurz vom Handy aus - es gibt Events für Jahre, Monate, Stunden und Minuten.
    OnTimeYear bei Jahreswechsel
    OnTimeDay0 bis OnTimeDay31
    OnTimeHour0 bis OnTimeHour23
    ...
    Zu jedem dieser Zeiten gibt es noch passende Events mit ...EvenNumber und UnevenNumber (gerade und ungerade)
    OnTimeSecondEvenNumber ist z.B. alle zwei Sekunden.


    Es gibt aber aktuell keine für Sonnenaufgang und Sonnenuntergang...

  • Ahhh, Du meinst dann es wäre wohl besser als Event aufgehoben wie als Keyboard. Hmmm, wie ist dann z.B. mit den Koordinaten müssten diese dann fix gecodet werden oder bekommt man diese aus der .ini dann als Variable zurück in das Event?

  • Moin,


    ich habe mir mal ein SingleAction Event in DoorPi gebastelt. Hatte überlegt es einzusetllen und dieses Thema dazu hier gesehen. Daher füge ich es einfach mal hier an. Dann bekommt ihr alle eine Info, da Ihr schon dran gearbeitet habt.


    Die Class "sun" (Berechnung Sonnenaufgang/Untergang) habe ich mit in die *.py eingefügt von http://michelanders.blogspot.c…and-sunset-in-python.html. Da habe ich mir keine Mühe gemacht, das neu zu erfinden.


    Über einen oder mehrere EVENTS (siehe unten) wird der SingleAction "sunset" aufgerufen. Übergabe gibt es 2 Werte, der erste ist das Script was bei Sonnenaufgang ausgeführt wird, das andere bei Sonnenuntergang. Über Einträge in der DoorPi (siehe auch unten) werden der Ort und evtl. Delays übergeben. Delay kann auch negativ sein und entspricht Minuten. Das SCript übergebene Script wird nur beim Tag/Nacht und Nacht/Tag Wechsel ausgeführt und nicht dauerhaft am Tag. Umso geringer der EVENT (also every Minute statt every Stunde) umso genau wird es am eigentlichen Sonnenaufgang Wert ausgeführt.


    Viel Spass


    - Python tzlocal installieren https://pypi.python.org/pypi/tzlocal
    sudo pip install tzlocal


    - Script abspeichern

    sunset.py im Verzeichnis /action/SingleAction/ (siehe unten)


    - doorpi.ini Einträge
    [SunSet]
    location_lat = 52.386 # Default = 52.509 (Berlin BRB Tor)
    location_long = 13.261 # Default = 13.376 (Berlin BRB Tor)
    sunrise_delay = 60 # Default = 0
    sunset_delay = 60 # Default = 0



    - ACTION
    [EVENT_OnTimeMinute30]
    10 = sunset:/usr/local/etc/DoorPi/script/sunrise.sh,/usr/local/etc/DoorPi/script/sunset.sh



    - sunset.sh oder sunrise.sh (natürlich ausführbar)
    curl -s -k "http://<IP>/cgi-bin/hi3510/param.cgi?cmd=setinfrared&-infraredstat=open"

    sunset.py

  • Sicherlich kann das irgendwie auch als automatischer EVENT genutzt werden, aber ich hänge nicht so tief in Python das ich in dem ganzen Zusammenhang mit den EVENT im DoorPi angekommen bin.


    Sicherlich geht das irgendwie auch in die time_tick.py zu integrieren als eigener EVENT. Evtl. muss ich da nochmal schauen.

  • ich mache das Ganze über FHEM, da gibts die ganzen Funktionen und es einfach zu integrieren
    und Doorpi ist in FHEM auch schon gut integriert...
    hab so auf einen Blick die letzten Klingelaktionen incl Bild und Ton
    darüber hinaus immer das aktuelle Livebild
    das Ganze mit Lan Koppelung auch an meinem Arbeitsplatz
    und der Rest vom Haus ahb ich so auch auf einen Blick
    und das als DAU