Funksteckdosen mit dem Raspberry schalten

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #1

    Funksteckdosen mit dem Raspberry schalten

    Hallo zusammen!

    Erstmal vielen Dank an alle in diesem tollen Forum, denn einiges hier konnte ich schon selbst umsetzen, nun möchte ich auch mal etwas beisteuern, was der ein oder andere vielleicht auch umsetzen kann. Ein besonderes Dankeschön an Christian Fenzl, dessen Beitrag (https://www.loxforum.com/forum/faqs-...nd-ausschalten) mit der entsprechenden Dokumentation der Schlüssel für die Integration in Loxone brachte.

    Die Aufgabenstellung: in unserer vor 2 Jahren gekauften Wohnung renovieren wir Raum für Raum, ziehen also dann eine neue, sternförmige Verkabelung (dementsprechend sieht im Moment bis zur Vollendung auch im Flur aus ;-) ). Der Vorbesitzer hatte auf dem Balkon drei Außenlampe angebracht - Bodenleuchten, die an Steckdosen hängen, gesteuert über Outdoor-Zeitschaltuhren. Und da liegt auch schon das Problem: 1. pro Lampe existiert eine Steckdose, aber nur eine Zuleitung. 2. man bekommt die Zeitschaltuhren natürlich nicht wirklich parallel (waren analoge). 3. Ich möchte gerne, dass das Licht 30 Minuten nach Sonnenuntergang (also wenn's richtig dunkel wird) an- und um Mitternacht wieder ausgeht.

    Beim Googlen bin ich über die Möglichkeit, Funksteckdosen mit einem Raspberry zu steuern, gestossen. Die Anleitung findet ihr hier: http://www.einplatinencomputer.com/r...dose-schalten/ Auf dem Balkon hängt eine Webcam/Flightradar (wir wohnen nicht weit vom Flughafen entfernt) auf Basis eines Raspberry - der ist also schon da. Aber was ich nicht wollte, war eine separate Web-GUI für diese Steckdosen - wenn man schon einen Miniserver hat, sollte das auch hierüber geschaltet werden.

    Die Lösung sieht wie folgt aus: ich bin der Anleitung aus dem o.g. Link gefolgt und habe das Sendemodul (5 Euro) und Outdoor-Funksteckdosen (ca. 23 Euro - http://www.amazon.de/Arendo-Funkstec...funksteckdosen) erworben und die Verkabelung durchgeführt. Danach habe die Software wiringPi sowie raspberry-remote installiert. wiringPi wird für die Steuerung des Sendemoduls über die GPIO Pins benötigt, raspberry-remote generiert den "send"-Befehl zum Ansteuern der Steckdosen. Des weiteren muss auf dem Raspberry noch der inetd-Server (auch Superserver genannt) eingerichtet werden. Das geht auch schnell, eine kleine Anleitung findet ihr hier: https://debian-handbook.info/browse/...ect.inetd.html

    Dann kommt die Anleitung von Christian Frenzl ins Spiel. Dank dieser konnte ich im Loxone Miniserver das angehängte Konstrukt bauen, der Ausgangverbinder (Virtueller Ausgang) wird auf tcp://IP.des.Raspberry.Pi:gewünschter Port verbunden. Der Ausgangsbefehl ist in meinem Fall "lichtan" oder "lichtaus" (siehe Screenshot).

    In der /etc/services trägt man am Ende folgendes ein:
    # Local services
    aussenlicht "gewünschter Port"/tcp # Loxone Außenlicht-Kontrolle

    Damit sagen wir dem inetd Prozess auf dem Raspberry, dass "gewünschter Port" (z.B. 10401) mit dem Dienst "aussenlicht" verknüpft ist.

    In der /etc/inetd.conf trägt man ganz unten die folgende Zeile ein:
    aussenlicht stream tcp nowait root /home/pi/aussenlicht.sh aussenlicht
    Der Raspberry weiß nun, dass auf dem obigen Port etwas ankommt, diese Zeile ausgeführt werden soll - in unserem Fall wird die Datei "/home/pi/aussenlich.sh" ausgeführt. Und zwar in dem Fall als root.

    Die Datei "aussenlicht.sh" sieht dann so aus:

    #!/bin/bash
    read request
    if [ "$request" = "lichtan" ] ; then
    /home/pi/raspberry-remote/send 10101 1 1
    /home/pi/raspberry-remote/send 10101 2 1
    /home/pi/raspberry-remote/send 10101 3 1
    logger Außenlicht an
    elif [ "$request" = "lichtaus" ] ; then
    /home/pi/raspberry-remote/send 10101 1 0
    /home/pi/raspberry-remote/send 10101 2 0
    /home/pi/raspberry-remote/send 10101 3 0
    logger Außenlicht aus
    else
    logger Command unknown
    fi
    # Script Ende

    Eine einfache If/Then-Konstruktion. Wenn der Request "lichtan" kommt, wird mittels des "send"-Befehl die Steckdosen aktiviert (1), bei "lichtaus" deaktiviert (0). Außerdem wird in die syslog-Datei noch ein "Außenlicht an" bzw. "Außenlicht aus" eingetragen für Debug-Zwecke.

    Das war's auch schon. Bei mir gibt es im Miniserver eine Berechnung, wann es 30 Minuten nach Sonnenuntergang ist (für die Rolladen), den gleichen Merker nehme ich für die Lichtaktivierung. Und nein, die Rolladen werden nicht auf dem Balkon runtergefahren, auf dem die Außenleuchten sind ;-)

    Ich hoffe, die Anleitung ist nachvollziehbar (ist meine erste) und ich konnte den ein oder anderen inspierieren.

    Viele Grüße,

    Harald
Lädt...