raspberry-remote daemon ansprechen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe im Haus mehrere Raspberrys, welche u.a. mit raspberry-remote verschiedene Funksteckdosen steuern.

    Mit dem Befehl "sudo ./send 10001 1 1" schaltet die Steckdose wie gewünscht.

    Nun möchte ich das ganze zentral, von einem Pi aus steuern.
    Hierfür hat raspberry-remote einen Daemon am Start, nur wie man diesen anspricht, weiß ich leider nicht.

    Gleich vorweg:
    In Kombination mit Apache2 & PHP funktioniert es (nur wenn der Daemon aktiv ist).
    D.h. der Daemon scheint grundsätzlich zu funktionieren.

    Es gelingt mir aberr nicht, diesen Daemon alleine anzusprechen und ich finde auch keine Doku hierüber.
    Das einzige, was ich finden konnte, war dies hier:
    http://www.pcwelt.de/ratgeber/Funks…en-8655824.html

    Dort heißt es:
    ------------------------------------------------------------------
    echo -en "Codierung"|nc -w 1 <ip> <port>

    Als IP geben Sie die IP-Nummer ihres Raspberry Pi an und als Port den TCP-Port, auf den der Server lauscht. „Codierung“ besteht aus dem Systemcode wie bei send, gefolgt von „0“ und der Dosennummer. In unserem Fall wäre das etwa:

    echo -en "1000101"|nc -w 1 192.168.178.25 11337
    ------------------------------------------------------------------

    .. bei mir funktioniert es nicht!
    Port stimmt und die IP natürlich auch. Nur frage ich mich, ob die Erklärung des Codes so stimmt.
    Zumal ich mich frage, wo dort der Schaltstatus (1=ein, 0=aus)mitgeschickt werden soll.
    Wenn ich den Daemon deaktiviere, kommt eine Fehlermeldung.. wenn er aktiv ist, passiert einfach nichts.

    Wer kann mir hier weiter helfen ?

    Vielen Dank!

    Gruß
    mendowser

    GitHub-Raspberry-Remote: https://github.com/xkonni/raspberry-remote

  • Hallo Knut,
    vielen Dank, das hat mich auf die richtige Fährte gebracht!

    Ich bin noch nicht sonderlich gut darin, ganze Quellcodes zu interpretieren, da ich einfach noch zu viele Wissenslücken habe.

    Durch deinen Hinweiß, mit der Zeile:

    Code
    $output = $nSys.$nGroup.$nSwitch.$nAction.$nDelay;


    konnte ich erkennen, dass nicht nur die Aktions-, sondern auch die Sys-Nr. mitgegeben werden muss (Delay ist wohl optional .. geht zumindest ohne ;) )

    Ausserdem scheint die Erklärung im Tutorial nicht ganz korrekt zu sein

    Zitat

    „Codierung“ besteht aus dem Systemcode wie bei send, gefolgt von „0“ und der Dosennummer. In unserem Fall wäre das etwa

    echo -en "1000101"|nc -w 1 192.168.178.25 11337

    Scheinbar muss man die Device-Nr. in dezimal und 2-stellig (01 statt 1) mitsenden:
    (Binär: 1=Dipschalter oben. 0=Dipschalter unten)


    Dipschalter - Binär - Dezimal
    Dipschalter 1 = 10000 = 16
    Dipschalter 2 = 01000 = 08
    Dipschalter 3 = 00100 = 04
    Dipschalter 4 = 00010 = 02
    Dipschalter 5 = 00001 = 01


    Somit setzt sich die Codierung zusammen aus:
    System-Nr. = 1
    System-Code = 10001 (Hauscode: die linken 5 Dipschalter)
    Device-Nr. = 16 (Dipschalter 1)
    Aktion = 1 (Einschalten)

    Einschalten:

    Code
    echo -en "110001161" | nc -w 1 192.168.178.10 11337


    Ausschalten:

    Code
    echo -en "110001160" | nc -w 1 192.168.178.10 11337


    Nach vielem Hin-und-Herprobieren letztes Wochenende, funktioniert es nun endlich und ich brauche den Pi nicht mehr mit einem Webserver zu quälen :lol:


    Dass sowas vom Entwickler aber auch nicht Dokumentiert wird .. muss man sich immer durch den Code kämpfen um so etwas herauszufinden ?? Oder habe ich es einfach übersehen ?


    Vielen Dank Knut :danke_ATDE:

    Gruß
    mendowser

    Einmal editiert, zuletzt von Mendowser (22. Dezember 2016 um 19:25)

Jetzt mitmachen!

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