HowTo Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hallo,

eine verdammt tolle Anleitung ich musste mir auch gleich das Zubehör holen/bestellen.
Die Hardware ist da und alles schick verlötet, kein Problem.

Aber: die Software-Seite macht mir Probleme, "git-core" ließ sich auf meinen Pi nicht installieren, brauche eine neuere Version von Git :-/ egal, habe mir das mit wget gezogen.

2 Verzeichnisse unter /home/pi/ anglegt:

rcswitch-pi
wiringPi

Bei beiden kommen Fehler:

bei /home/pi/wiringPi
sudo ./build

wiringPi Build script - please wait...

WiringPi library
[UnInstall]
make: Nothing to be done for `all'.
[Install]

GPIO Utility
[Link]
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_write_byte'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_read_byte'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_write_byte_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_write_word_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_read_word_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_read_byte_data'
collect2: ld returned 1 exit status
make: *** [gpio] Error 1
[Install]
cp: cannot stat `gpio': No such file or directory
make: *** [install] Error 1

Examples

wiringPi Examples
=================

There are now too many examples to compile them all in a sensible time,
and you probably don't want to compile or run them all anyway, so they
have been separated out.

To compile an individual example, just type

make exampleName

Where exampleName is one of:

test1 test2 speed lcd wfi isr piface gertboard nes pwm tone servo
delayTest serialRead serialTest okLed


All Done.



und bei /home/pi/rcswitch-pi/
sudo make

g++ RCSwitch.o send.o -o send -lwiringPi
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_write_byte_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_read_byte_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_read_byte'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_read_word_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_write_word_data'
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../libwiringPi.so: undefined reference to `i2c_smbus_write_byte'
collect2: ld returned 1 exit status
make: *** [send] Error 1


libi2c-dev-Paket habe ich schon installiert.


HAT SICH ERLEDIGT, ICH MUSSTE NACH DER INSTALLATION VON libi2c-dev bei wiringPi nur ein ./build clean und ./build uninstall machen, dann klappte ein
./build
Und in rcswitch-pi habe ich ein make clean gemacht, danach funzte ein make.




Würde ich unbedarft sagen, mehr oder weniger das gleiche Problem.

Hat jemand eine Idee?

Danke schon einmal!

Gruß Alex
 
Zuletzt bearbeitet:
Mitglied seit
16. Januar 2013
Beiträge
9
Gefällt mir
0
Punkte
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hast du die Software auf dem Pi auf den neusten Stand? (sudo apt-get update && apt-get upgrade).

Hast du die Treiber für spidev geblacklistet?

Ein # vor die beiden Zeilen in der Datei /etc/modprobe.d/raspi-blacklist.conf
#blacklist spi-bcm2708
#blacklist i2c-bcm2708

Gruß

regnets
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
libi2c-dev-Paket habe ich schon installiert.


HAT SICH ERLEDIGT, ICH MUSSTE NACH DER INSTALLATION VON libi2c-dev bei wiringPi nur ein ./build clean und ./build uninstall machen, dann klappte ein
./build
Und in rcswitch-pi habe ich ein make clean gemacht, danach funzte ein make.
Hallo Regnets,

es hat sich erledigt, ja das System war auf den neusten Stand, wie oben angedeutet brachte eine Nachinstallation von libi2c-dev Abhilfe, aber nicht sofort ich musste noch einmal alles bereinigen und neu erstellen.

Danke für die Tipps.

Jetzt funktioniert alles *freu*

Gruß Alex





Gesendet von meinem iPad mit Tapatalk HD
 
Mitglied seit
16. Januar 2013
Beiträge
9
Gefällt mir
0
Punkte
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hast du meine zip genommen und nach /var/www entpackt? Würde mich über Feedback freuen...
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hallo Regnets,

ja ich habe deine ZIP geladen, die SocketControl-fix.zip.
Die Installation lief sehr gut, ich muss nun die config.php anpassen, irgendwie läuft es nicht so, aber ich denke der
Fehler liegt bei mir.
Sage Dir bescheid.

Gruß Alex
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hallo Regnets,

tut leider nicht, habe die send in /var/www kopiert, die Oberfläche konfiguriert , aber geht nicht.

Muss ich noch Berechtigungen anpassen?
Wie kann ich irgendwie debuggen?

Gruß Alex
 
Zuletzt bearbeitet:
Mitglied seit
16. Januar 2013
Beiträge
9
Gefällt mir
0
Punkte
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Ich hoffe du kannst debuggen :)... Wenn nicht muss ich die aktuelle Version hochladen!

Normaleweise solltest du so eine URL aufrufen können:
http://<server>/send.php?name=1_1&state=1

Dann solltest du die Commandline Ausgabe als Website sehen:
sending systemCode[10000] unitCode[1] command[0]

Mit der URL hast du nur gesagt, das der Name der Steckdose aus der Gruppe 1 kommt (aus dieser holt er sich dann den Systemcode, in meinen Fall 10000 / 1. Dip Schalter nach oben) und die Steckdose mit der ID 1 betrifft (DIP Schalter A nach oben). Der State ist 1 (=an) oder 0 (=aus).

Falls es nicht klappt, hier meine aktuellen Dateien (bis auf die config.php, damit du dir die nicht überschreibst). Ich werde morgen noch etwas dokumentieren, damit man leichter versteht was zu tun ist und hoffentlich noch etwas weiter coden.

Anhang anzeigen 68621

Grüße

regnets
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
Hallo Regnets,

Debuggern kann ich, aber ich stehe mit debuggen+PHP auf Kriegsfuss, das hat sich bei mir bisher immer auf Echo Ausgaben und var_dump() beschränkt.
Ich liebe meinen Visual Studio .Net Debugger oder Xcode.
Ich habe gestern versucht mit Echo oder var_dump was herauszufinden war sehr spät und nicht von Erfolg gekrönt.

Leider bin ich heute und morgen unterwegs, werde es mir hoffentlich Sonntag Abend mal anschauen können. danke für deine Hilfe.

Aber die Oberfläche sieht echt gut aus, auch auf dem iPhone mit den Icon sehr genial.

Gruß Alex



Gesendet von meinem iPad mit Tapatalk HD
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
Hallo Regnets,

die Zeile in der install.sh ist mir nicht klar:


# Webserver zur Sudoers hinzufügen für den Befehl send
sudo echo "asdf" >> /etc/sudoers

Damit hängst du doch nur "asdf" als Zeichenfolge an die Datei?

Muss das nicht die sudoers Zeile für www-data sein?

Gruß Alex

Gesendet von meinem iPad mit Tapatalk HD
 
Mitglied seit
16. Januar 2013
Beiträge
9
Gefällt mir
0
Punkte
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Die install.sh ist noch nicht fertig... ;). Ja das müsste die Zeile für www-data sein, wie in der ersten Seite beschrieben.

Wie du an der ToDo.txt sehen kannst ist alles noch WIP...
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
Oh Sorry, die ToDo.txt habe ich überlesen,
Da hast du Dir richtig viel vorgenommen, das ist echt genial, bin gespannt.
Ich ärgere mich grad dass ich gleich zu einen Geburtstag muss und nicht am RPI "spielen" kann :-/

Viel Erfolg

Gruß Alex


Gesendet von meinem iPad mit Tapatalk HD
 
Mitglied seit
16. Januar 2013
Beiträge
9
Gefällt mir
0
Punkte
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Vielen Dank für die Blumen... Bastel nun auch mal gern und das ist ein noch "überschaubares Projekt", wenn du wieder da bist, gibs bestimmt schon was neues...
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hallo,

ich habe mir mal das Empfangen von den 433Mhz Signalen angesehen.
Also sprich die RCSwitch.h also die Funktionen, habe in den Arduino Bibiliotheken gesucht und versucht zu portieren.
Leider habe ich nicht die Hardware und nicht die 100%tigen Plattformkenntnisse, vielleicht kann es jemand mal probieren?

Code:
#include "RCSwitch.h"
#include <stdlib.h>
#include <stdio.h>


int main() {
    
    int PIN = 7; //BCM GPIO = 4, GPIO7
    
    
     if (wiringPiSetup () == -1) return 1; //Keine Ahnung was das soll auch nicht in den Bibliotheken gefunden
     //*************************************************************************************************************************************************
     //In Arduino Bibliothek gefunden.
     /*
     #include <RCSwitch.h>


    RCSwitch mySwitch = RCSwitch();


    void setup() {
    Serial.begin(9600);
    mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
    }


    void loop() {
        if (mySwitch.available()) {
            output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata());
            mySwitch.resetAvailable(); }
    }*/
    //*************************************************************************************************************************************************
    //Versuch das in CPP zu portieren
    RCSwitch mySwitch = RCSwitch(); // neue Instanz
    
    //Serial.begin(9600) kann IMHO weggelassen werden, weil wir keine Serielle Terminalsitzung benötigen
    
    mySwitch.enableReceive(PIN);  // Receiver on inerrupt PIN 
    if (mySwitch.available()) {
            //output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata());
            //Versuch mit printf.
            printf(%s,mySwitch.getReceivedValue());
            printf(%i,mySwitch.getReceivedBitlength());
            printf(%i,mySwitch.getReceivedDelay());
            printf(%s,mySwitch.getReceivedRawdata());
            mySwitch.resetAvailable(); 
    }
    
return(0);    
}
Kompilieren sollte so laufen:

Code:
[COLOR=#000000][FONT=Helvetica Neue]gcc -o receive receive.cpp[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]chmod 755 receive[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]./receive[/FONT][/COLOR]
Bitte nicht schlagen ist nur eine Idee ...

Gruß Alex
 
Mitglied seit
22. Januar 2013
Beiträge
16
Gefällt mir
3
Punkte
3
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Soo heute ist der 433MHZ Empfänger angekommen,
ich versuche es morgen zu löten und auszuprobieren, ich mache mir nicht viel Hoffnung, wäre ja zu einfach, aber ein Anfang ist es sicher.

Gruß Alex
 
Oben