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

  • Hab jetzt auch die Fernbedienung am Pi und es funktioniert einwandfrei.
    Die Widerstände, die ihr alle getestet hattet habe ich nicht gebraucht, hatte sie aber sicherheitshalber besorgt :)

  • 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

  • Bizkit83


    Danke da werde ich mal nachschauen.


    Danke das Du dein Script bereit stellst.
    Das ist einfacher als immer über die Konsole den ganzen send befehl einzutippen :)


    Danke


    Gruß
    Thomas

  • Also ich habe den Timer mittlerweile über die DB gelöst.
    Man kann den über die Webseite ändern. Erstellen und löschen geht noch nicht, arbeite ich dran.

  • 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.

    Edited once, last by orb ().

  • Prima, herzlichen Dank, das ist besser, wird sofort eingebaut!


    schönen gruss
    snafu


    PS:
    ich frage mich, wie viele linux - noobs, die mit dem raspi das erste mal in die linux-tiefen absteigen, wohl in den foren auftauchen...

  • 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??

  • Schau mal weiter oben (andere Seiten) da habe ich das als Download reingestellt, komplett mit PHP, python und MySQL Datenbank

  • Hört sich gut an. ;)
    Und das lade ich denn via filzilla auf meinen Webserver !?

  • 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?