Ankündigung

Einklappen
Keine Ankündigung bisher.

Logic und Howto für 433Mhz Steckdosen

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

  • usr
    antwortet
    Auf dem aktuellen Image von Smarthome.py + SmartVisu heißt der User doch "Admin" oder ?

    Bei mir läuft es leider auch nur unter root wie bei giase. Bekomm das auch mit den Rechten nicht so recht hin.

    Gruß Mathias
    Zuletzt geändert von usr; 04.12.2015, 22:21.

    Einen Kommentar schreiben:


  • Tontechniker
    antwortet
    Hallo (Netsrac80) Carsten,
    vielen Dank für die Anleitung!
    Bei mir war nach befolgen der Install-Anleitung die Datei "rcswitch.pi" im Verzeichnis "/home/admin/" gelandet. Nach manuellem Umkopieren in das Verzeichnis "/usr/smarthome/" funktionierte der Befehl "/usr/smarthome/rcswitch-pi/send 10000 1 1" ohne Probleme.
    Gruß
    Hans

    Einen Kommentar schreiben:


  • Netsrac80
    antwortet
    Ich habe mittlerweile auf einen Cubietruck gewechselt und dort das ganze auch zum laufen gebracht. Allerdings nur, wenn der apache auch als root läuft. Sonst kann smarthome.py den Befehl nicht absenden. Bisher habe ich noch keine Lösung gefunden die nicht "gebastel" ist.

    Aber ich starte den Apache und ordne nachher den Benutzer www-data in der /etc/passwd der Gruppe "Root" zu.
    Code:
    www-data:x:0:0:www-data:/var/www:/bin/bash
    Apache selbst lässt sich nicht als Root starten, deswegen erst der Start und dann die Rechteänderung in der /etc/passwd.

    Wie gesagt, das ist gebastel und Apache sollte eigentlich niemals als Root gestartet werden. In meinem eigenen WLAN und IPTables im Raspi die nur Zugriff von festgelegten IP-Adressen erlauben mag das gehen, aber nie auf einem Produktivsystem beim Kunden o.ä.!

    Bei einem Reboot wird der Apache auch nicht starten, da ja vorher die Rechte wieder zurückgeändert werden müssen.
    Anders habe ich es derzeit noch nicht zum laufen gebracht.
    Zuletzt geändert von Netsrac80; 15.11.2015, 23:15.

    Einen Kommentar schreiben:


  • Giase
    antwortet
    Nochmal ein update:

    Nachdem ich folgendes ausführe, geht jetzt auch das Kommando als nicht-root:
    Code:
    sudo  /usr/local/bin/gpio export 17 out
    sudo chown -R smarthome:smarthome /sys/class/gpio/
    Dabei funktioniert das ganze nur, wenn ich gpio export als der user aufrufe, der danach auch ./send aufrufen möchte. D.h. als root muss ich
    Code:
     [COLOR=#454545][FONT=Helvetica][SIZE=12px]sudo -u smarthome /usr/local/bin/gpio export 17 out[/SIZE][/FONT][/COLOR]
    aufrufen. Wenn ich das als root aufrufe funktioniert das mit dem user smarthome schon nicht mehr.

    D.h. das ganze ist äußerst sensibel gegenüber Rechten.

    Jetzt meine Frage: Als welcher user läuft denn smarthome.py normalerweise (habe nach Anleitung installiert)?

    Gruß,
    //giase

    Einen Kommentar schreiben:


  • Giase
    antwortet
    Und noch ein bisschen mehr info: Ich habe wiringPi im debug-modus kompiliert. Die Ausgabe ist für den sudo sowie den nicht-sudo Befehl die gleiche.

    sudo
    Code:
    smarthome@raspberrypi ~/rcswitch-pi $ sudo /home/smarthome/rcswitch-pi/send 10100 1 0
    wiringPi: wiringPiSetup called
    piboardRev: Hardware: Hardware    : BCM2709
    
    piboardRev: Revision string: Revision    : a01041
    piboardRev: This Pi has/is (force_turbo || current_limit_override || temp_limit>85) && over_voltage>0
    piboardRev: last4Chars are: "1041"
    piBoardRev: Returning revision: 2
    piboardId: Revision string: Revision    : a01041
    sending systemCode[10100] unitCode[1] command[0]
    nicht-sudo:
    Code:
    smarthome@raspberrypi ~/rcswitch-pi $ /home/smarthome/rcswitch-pi/send 10100 1 1
    wiringPi: wiringPiSetupSys called
    piboardRev: Hardware: Hardware    : BCM2709
    
    piboardRev: Revision string: Revision    : a01041
    piboardRev: This Pi has/is (force_turbo || current_limit_override || temp_limit>85) && over_voltage>0
    piboardRev: last4Chars are: "1041"
    piBoardRev: Returning revision: 2
    sending systemCode[10100] unitCode[1] command[1]
    Beim ersten passiert was, beim zweiten leider nicht.

    Ich kann mit
    Code:
    gpio write 0 1
    oder
    Code:
    gpio write 0 0
    den GPIO 0 auf High bzw Low schalten, das funktioniert auch ohne sudo.

    Wo hängt das denn hier??

    Einen Kommentar schreiben:


  • Giase
    antwortet
    Hallo zusammen,

    Vielen Dank erstmal für die gute Anleitung!

    Ich habe das jetzt soweit auch alles gemacht, allerdings scheitere ich gerade daran, das ganze als nicht-root zum laufen zu bekommen.
    Wenn ich alles nach Anleitung mache, schaltet gar nichts.

    Wenn ich dann in send.cpp den port wieder zurück auf 0 setzte, und dann anstatt
    Code:
    wiringPiSetupSys()
    wieder
    Code:
    wiringPiSetup()
    aufrufe, geht der ./send 11111 1 1 Befehl.
    Bevor ich send zum ersten mal kompiliert habe, habe ich mit
    Code:
    gpio export 17 out
    den Port exportiert. Meine Export-Table sieht jetzt so aus:
    Code:
     +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
     | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
     |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
     |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
     |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
     |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
     |  17 |   0 | GPIO. 0 |  OUT | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
     |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
     |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
     |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
     |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
     |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
     |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
     |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
     |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
     |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
     |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
     |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
     |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
     |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
     |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
     +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
    Hat jemand eine Idee an was das liegen kann?

    Gruß,
    //giase


    Einen Kommentar schreiben:


  • SchnickSchnuck
    antwortet
    Hi Carsten,

    besten Dank!
    scheinbar gibt's einige Befehle nicht in der abgespeckten smarthome Version.
    konnte alles mit
    apt-get install make
    apt-get install gcc und
    apt-get install g++ ans Laufen bekommen.

    Grüße
    Grünther

    Einen Kommentar schreiben:


  • Netsrac80
    antwortet
    Zitat von SchnickSchnuck Beitrag anzeigen
    Hallo,

    wiringPi Build script
    =====================
    WiringPi Library
    sudo: make: command not found
    ./build: 59: ./build: make: not found

    Make Failed...
    hey, wie mir scheint kennt dein Raspi den Compiler nicht.

    Ich bin jetzt nicht der Debian Guru, aber vielleicht reicht einfach eine Installation aus

    sudo apt-get install make


    Grüße
    Carsten

    Einen Kommentar schreiben:


  • SchnickSchnuck
    antwortet
    Hallo,

    wollte gerade die Steckdosen ebenfalls in Betrieb nehmen, scheitere aber schon an WiringPi. Habe mich genau an die Anleitung gehalten, allerdings kommt nach dem letzten Befehl "./build" der Fehler

    wiringPi Build script
    =====================
    WiringPi Library
    sudo: make: command not found
    ./build: 59: ./build: make: not found

    Make Failed...

    Auch wenns gerade mit sh.py nichts am Hut hat, vielleicht hat ja jemand einen Tip für mich, woran es liegen könnte. Habe den Raspi B mit dem Smarthome.py-Image

    Danke!
    Grüße
    Günther

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Carsten,

    danke dafür. Es wäre toll wenn Du das ins Wiki packen würdest. Hier geht es sonst leider zu schnell unter.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • carver0510
    antwortet
    Hallo Carsten,

    danke dir schon mal für den Code. Bei mir funktioniert es soweit ganz gut.

    Leider habe ich Probleme die Funksteckdosen in die HTML einzubinden.
    Hättest du hier ein Beispiel für mich?

    Habe folgendes probiert, leider funktioniert es aber nicht

    Code:
    {{ basic.flip('Funksteckdosen.System1.TasteA', 'Funksteckdosen.System1.TasteA', '1', '0')}}
    Danke dir schon mal =)

    Schöne Grüße

    Sebastian

    Einen Kommentar schreiben:


  • Netsrac80
    antwortet
    Hallo,
    du hattest recht. Mein einfach kopiertes Beispiel funktioniert nicht. Ich hab es oben schon aktualisiert. in der send.cpp muss

    Code:
    mySwitch.switchOn(systemCode, unitCode);
    und
    Code:
    mySwitch.switchOff(systemCode, unitCode);
    beibehalten werden.

    Ab Zeile 113 werden stehen hier im Quellcode auch nochmal die Funktionsdeklarationen wie switchOn() aufgerufen werden muß um unterschiedliche Endgeräte anzusprechen.

    Einen Kommentar schreiben:


  • carver0510
    antwortet
    Hallo Carsten,

    oh das ist super! Vielen Dank dir =)

    VG

    Sebastian

    Einen Kommentar schreiben:


  • Netsrac80
    antwortet
    Denn sie wissen nicht was sie tun. :/ Sorry! Bei mir hatte das "ohne-Root-senden" mit dieser Anleitung auf Anhieb geklappt. Deswegen hatte ich mich gar nicht mit den eigentlichen CPP-Quellcodes beschäftigt.

    Leider.
    Denn das Beispiel ist für Befehle wie `./send ab 2604607 1` ausgelegt. Der UnitCode ist dort schon der eindeutige Bezeichner für ein Schaltgerät und muss nicht in Kombination mit dem SystemCode gesendet werden.

    Ich geb Dir heute abend nochmal eine Info warum das bei mir trotzdem Funktioniert.

    Grüße
    Carsten

    Einen Kommentar schreiben:


  • carver0510
    antwortet
    Hallo Carsten,

    erst einmal vielen Dank für diese Anleitung! Sie hat mir schon sehr geholfen
    Ich habe gestern versucht den ./send Befehl zu implementieren. Soweit funktioniert es ganz gut, leider habe ich es noch nicht hin bekommen, dass ich den Befehl ohne sudo senden kann, obwohl ich wiringPiSetupSys() verwendet habe.

    Bezüglich "mySwitch.send(unitCode, 24);" habe ich jedoch ein paar Fragen:
    1. Wieso nutzt du nicht die vorgegebenen Befehle mit ON/OFF?
    2. Dieser Befehl arbeitet, so wie ich die Doku verstanden habe, nur mit Binärwerten. Müsste man hier nicht den systemCode, unitCode und command zu einem Binärwert umwandeln und dann übergeben? Hintergrund ist, dass es so bei mir nicht funktioniert. Ich vermute auch, weil hier nur der unitCode übergeben wird. Weiß jemand was die 24 bedeutet?

    VG

    Sebastian

    P.S.: Bin gerade noch dabei, die Logic zu implementieren, musste aber leider aufhören, weil die Augen schon zugefallen sind

    Einen Kommentar schreiben:

Lädt...
X