433mhz Steckdosen Steuerung

  • Erstmal musst du auf dem PI (hier im Tutorial bereich beschrieben) Apache, Mysql (mit PhpMyAdmin) und PHP installieren.
    Dann die DB (in meinen Files hier) mit dem PhpMyAdmin dort einfügen.
    Dann musst du noch 2 Programme laden.

    wiringPi und noch eins.
    Das andere Weiß ich nicht genau auswendig. Findest du aber glaube ich hier im Forum was zu. Daraus entsteht die Datei "send" womit die Dosen angesteuert werden.

    Gruß Simon

  • Hallo
    Habe da mal eine frage.

    Ich bekomme wenn ich das main.py script starte folgende meldung.

    starting script
    run -> 18:44:17
    stopping script -> DB-ScriptExit = 1

    Was bedeutet diese meldung ?

    Gruß
    Thomas

  • starrider

    Meldung das Script gestartet wurde:
    [font="Tahoma, Verdana, Arial, sans-serif"]starting script[/font]

    Meldung das Script läuft (kann auch weg)
    [font="Tahoma, Verdana, Arial, sans-serif"]run -> 18:44:17[/font]

    Script wird beendet aufgrund von Flag in DB
    [font="Tahoma, Verdana, Arial, sans-serif"]stopping script -> DB-ScriptExit = 1[/font]

    Guck mal in die Tabelle "system"
    Wenn der Eintrag ScriptExit gleich 1 ist wird das script beendet. Setze den mal auf 0

  • tl;dr: Wie Rechte optimal setzen, wenn "send" vom Webserver ausgeführt wird?

    Hi all,

    Fernsteuerung klappt prima!

    Ich starte "send" via PHP mit

    Code
    $output = shell_exec('sudo /home/pi/rcswitch-pi/send '.$hauscode.' '.$dose.' '.$status);


    Damit der User www-data (Webserver) das Programm "send" ausführen darf, habe ich www-data der Gruppe sudo hinzugefügt (forumsfund):

    sudo nano /etc/sudoers

    und ganz unten die Zeile:
    www-data ALL=(ALL) NOPASSWD: ALL
    hinzufügt.

    Sicherheitstechnisch ist das nicht so dolle, weil jetzt /jedes/ Script auf dem Webserver sudo benutzen kann. Habt ihr eine Lösung, wie ich das ein wenig sauberer machen kann?

  • Warum 'NOPASSWD: ALL' wenn er nur send ausführen soll?

    Code
    www-data ALL=(ALL) NOPASSWD: /home/pi/rcswitch-pi/send



    sollte reichen, allerdings würde ich dann 'send' nach /usr/local/bin verschieben und dem Benutzer 'root' zuordnen, da gehört es eher hin wenn es von mehreren Benutzern genutzt werden soll.

    Einmal editiert, zuletzt von orb (11. April 2013 um 19:22)

  • Danke erst mal für die ganzen Infos. Ich habe auch den umgebauten Handsender ans laufen gebracht - allerdings ging es erst, nachdem ich den 8k Widerstand auf 5k herabgesetzt habe.

    Da ich das hier im Thread noch nicht klar bestätigt gefunden habe: Es klappt mit den 5V als Spannungsversorgung vom Raspberry also auch mit den 12V der Batterie. Die high/low Erkennung des Senders kommt auch bei 12V Versorgungsspannung mit den 3.3V High-Pegel des Raspberry klar.

    Unten habe ich eine veränderte send.cpp angehangen; einfach in rcswitch-pi kopieren und nochmal "make" eingeben. Danach unterstützt send den bisherigen Syntax (Elro 440 mit DIP Schalter) als auch die Intertechno Produkte (Hauscode, Gruppe, Gerät). Als houseCode in Kleinbuchstaben a..p verwenden. Also beispielsweise ./send a 1 1 1.

    Hier nochmal der Syntax komplett:

    Code
    Usage for Elro 440: ./send <systemCode> <unitCode> <command>
     Usage for Intertechno: ./send <houseCode> <groupCode> <deviceCode> <command>
     Command is 0 for OFF and 1 for ON


    Da die API Layer das schon alles konnten, ist die Codeänderung in send.cpp ziemlich trivial gewesen.

    Weiterhin habe ich in meiner Grabbelkiste noch alte Elro AB601S Funksteckdosen (Code A,B,C,D mit Unit Code 1/2) gefunden. Diese sind übrigens bauglich mit den Düwi B402 Dosen. Auch diese lassen sich mit Hilfe des Intertechno Syntax ansprechen (Danke ans FHEM Forum):

    Code
    A1 = m 4 1
    A2 = m 4 2
    B1 = n 4 1
    B2 = n 4 2
    C1 = o 4 1
    C2 = o 4 2
    D1 = p 4 1
    D2 = p 4 2


    Eine Elro 601S mit Unitcode 2 und Schalterstellung C kann man also mit ./send o 4 2 1 einschalten.

    Für die angegebenen Modelle (Intertechno, Elro, Düwi) habe ich die Funktion geprüft.

  • da ich hier neu bin und überhaut neu bin. frag ich mal ganz doof!

    Was muss ich machen um aus dem internet meine funksteckdosen zu steuern?

    also Licht via " SSH + ./send 11111 1 1 " funktioniert schon.

    Webserver funzt auch und ich kann vom internet meine webserver "sehen" (dank dynamischer DNS )! ;)

    jetzt nur noch beides verbinden!??????

  • Ist halt die Frage wie du das machen willst.
    Das geht per PHP, hierzu musst du Rechte setzen. Ist glaube ich nicht das sicherste.

    Ich habe es mit einem Python Script gemacht, wo werte aus einer MySql-DB kommen.
    Dann setzt das Python Script die Send Befehle ab.

  • Sicher wäre mir schon lieber!

    problem ist, ich habe mir bis jetzt alles aus diversen Anleitungen zusammengebaut!

    gibt es eine anleitung wie ich ein solches Python Script "online" bekomme??

    und ein "Muster" Python Script welches ich denn nach belieben anpassen kann??

  • So erledigt! :)
    aber ich glaub ich bin zu doof dazu! :( jetzt ich ja alle dateien drauf, und nu!?
    wenn ich die index.php aufrufe kommt ja die frage nach benutzername und Passwort
    denn gege ich die Test/Test ein und denn kommt ne weiße Seite!

    in der config.php müssen die daten von mysql rein?! wo da?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!