Digital Eliteboard

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwert bleiben

Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

lenny

Freak
Mitglied seit
7. Februar 2011
Beiträge
235
Erhaltene Reaktionen
250
Nach einigen Tagen testen und basteln möchte ich hier nun
ein neues Projekt vorstellen.
Ich habe mir überlegt was kann er denn noch der Raspi ;=)
und kam auf den Gedanken etwas mit den Gpio anzufangen.
Letzendlich bin ich dabei hängengeblieben Funksteckdosen mit dem
Rasbperry Pi ein und auszuschalten. In Erweiterung und mit Unstützung
von Aragorn sind diese jetzt sogar über Web bzw über IPC-Webif schaltbar.

Was wird benötigt ?
Raspberry Pi mit Debian (Version egal)
Funksteckdosen Set (Baumarkt ca. 15 € - 4 Steckdosen + 1 Handsender)
RF Link Sender 433 MHZ (wattenrott.com - ca 3,50 € )

Welche Software brauchen wir noch ?
rcswitch für den raspi -->>
wirinpi für den raspi -->>

Auf die Installation von Debian etc gehe ich hier nicht mehr ein.

Grundsätzliche Vorgehensweise:

1. Installation von WiringPi
apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi git pull origin
./build

2. Installation von rcswitch
git clone
cd rcswitch-pi
./make

3. Anschluss RF 433 Sender an den PI
Lediglich 3 Kabel sind anzuschliessen.
Wenn die Konfiguration in rcswitch nicht geändert wurde,
dann ist die aktive GPIO 17 / wiringPin 0 also letzendlich PIN 11
an der Stiftleiste.

Also grob skizziert :
RF433 Sender - Raspberry

PIN 1 GND - PIN 6 (GND) auf der Stiftleiste
PIN 2 Data in - PIN 11 (GPIO17) auf der Stiftleiste
PIN 3 Vcc - PIN 2 (5V)auf der Stiftleiste
PIN 4 Antenne - optional


4. Vorbereitung der Funksteckdosen
Die Funksteckdosen die ich habe sind aus dem Baumarkt mit einem PT2262 - Chip
und sind mittels 10 poligen Dipschalter konfigurierbar.
5 Pole für den Systemcode und 5 Pole für den Gerätecode - einstellbar mittels
0 und 1.
Wenn ich also die erste Steckdose mit der Fernbedienung ansprechen will
dann so >>
<gerätecode> <systemcode> <befehl>
11111 1 1 (1-an , 0 -aus) -> erste Steckdose
11111 2 1 -> zweite Steckdose
usw.


5.Schalten der Dosen per Konsole

In das Verzeichnis des rcswitch-pi wechseln
und dort das Programm send mit den entsprechenden Parametern
aufrufen.
./send 11111 1 1 -->> schaltet die erste Dose an
./send 11111 1 0 -->> schaltet die erste Dose aus.
./send 11111 2 1 -->> schaltet die zweite Dose an
./send 11111 2 0 -->> schaltet die zweite Dose aus.


6. Schalten der Dosen per Webinterface

Siehe Post 4 und folgende ...
 
Zuletzt bearbeitet:

berndhan

Newbie
Mitglied seit
5. September 2009
Beiträge
1
Erhaltene Reaktionen
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hallo,
nachdem ich die RCSwitch bereits von Arduino Projekten kenne, will ich ich auch mit dem PI schalten.
Meine Linuxkenntnisse sind wohl ehr bescheiden, daher ich schon beim Stepp 2

git clone ...
cd rcswitch-pi/
root@raspberrypi:~/wiringPi/rcswitch-pi# ./make
-bash: ./make: Datei oder Verzeichnis nicht gefunden

ls liefert als Ergebnis
Makefile RCSwitch.cpp RCSwitch.h README.md send.cpp

Nur das make File ist nicht zu sehen.

Was macht hier ein Anfänger falsch?

:fie:
 
Zuletzt bearbeitet:
A

aragorn

Guest
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

gib einfach nur " make " ein ohne ./
 

Soulfly2111

Newbie
Mitglied seit
9. November 2012
Beiträge
2
Erhaltene Reaktionen
10
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Danke lenny - hat alles super funktioniert.

Ich habe mir ein Web-Interface dafür gebastelt.
Habe dazu JQuerymobile UI und PHP benutzt.

Sieht ungefähr so aus:

Anhang anzeigen 64202

Leider kann ich das gesamte Projekt nicht mit anfügen. Falls jemand das Projekt haben möchte verschicke es aber auch gerne als PN.


Code:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>Plug-Controller</title>
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
        <link rel="stylesheet" href="my.css" />
        <style>
            /* App custom styles */
        </style>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.1.1/jquery.mobile-1.1.1.min.js">
        </script>
        <script src="my.js">
        </script>
    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-role="content">
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="dose1">
                            Steckdose 1
                        </label>
                        <select name="toggleswitch2" id="1" data-theme="" data-role="slider">
                            <option value="off">
                                Off
                            </option>
                            <option value="on">
                                On
                            </option>
                        </select>
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="dose2">
                            Steckdose 2
                        </label>
                        <select name="toggleswitch3" id="2" data-theme="" data-role="slider">
                            <option value="off">
                                Off
                            </option>
                            <option value="on">
                                On
                            </option>
                        </select>
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="dose3">
                            Steckdose 3
                        </label>
                        <select name="toggleswitch4" id="3" data-theme="" data-role="slider">
                            <option value="off">
                                Off
                            </option>
                            <option value="on">
                                On
                            </option>
                        </select>
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="dose4">
                            Steckdose 4
                        </label>
                        <select name="toggleswitch5" id="4" data-theme="" data-role="slider">
                            <option value="off">
                                Off
                            </option>
                            <option value="on">
                                On
                            </option>
                        </select>
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="dose5">
                            Steckdose 5
                        </label>
                        <select name="toggleswitch6" id="5" data-theme="" data-role="slider">
                            <option value="off">
                                Off
                            </option>
                            <option value="on">
                                On
                            </option>
                        </select>
                    </fieldset>
                </div>
            </div>
        </div>
        <script>
        
        $( "select" ).bind( "change", function(event, ui) {
            console.log($(this).attr('id') + ' - ' + $(this).val());
            $.ajax({
                  url: 'send.php',
                  type: "POST",
                  data: {id : $(this).attr('id'), status: $(this).val(), timestamp: new Date().getTime()},

                  success: function(data) {
                    console.log(data);                    
                  }
                });
        
            
        });
            //App custom javascript
        </script>
    </body>
</html>
PHP:
<?php

// ./send 11111 1 1 -->> schaltet die erste Dose an
// ./send 11111 1 0 -->> schaltet die erste Dose aus.

$id = $_POST["id"];

if($_POST["status"]==on)
    $status = 1;
else
    $status = 0;

$output = `sudo /root/rcswitch-pi/send 11111 $id $status`;
echo "<pre>$output</pre>";

?>
Gruß
Soulfly
 
A

aragorn

Guest
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

wieso kannst du das projekt nicht komplett einfügen? sollte eigentlich kein problem sein, einfach mehrere
PHP:
 oder [code]'s posten
es wäre besser es zu posten oder als *.zip anzuhängen (siehe forum rules §9)

jquery würde ich aber auch lokal speichern und den download link hier zur verfügung stellen bzw beschreiben wohin das gespeichert werden müsste denn sonst funktioniert der jquery kram nur wenn man mit dem rpi online ist
 

Soulfly2111

Newbie
Mitglied seit
9. November 2012
Beiträge
2
Erhaltene Reaktionen
10
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Anbei die detailierte Anleitung und das Projekt als ZIP

1.) Apache mit PHP installieren
sudo apt-get install apache php
(apache ist ggf. schon installiert)


2.)
Das Projekt ist nun gezippt und beinhaltet JQuery (Hochladen ging vom Arbeitsrechner nicht)
Download: Anhang anzeigen 64228

Der Inhalt sieht folgendermaßen aus:

|-index.html
|-send.php
|-css
|---jquery.mobile-1.2.0.min.css
|---plug-controller.css
|---images
|-----ajax-loader.gif
|-----icons-18-black.png
|-----icons-18-white.png
|-----icons-36-black.png
|-----icons-36-white.png
|-js
|---jquery-1.8.2.min.js
|---jquery.mobile-1.2.0.min.js
|---plug-controller.js

Den Inhalt in /var/www/plug-controller entpacken.

3.) die Datei send.php anpassen

Folgende Zeile suchen und den Pfad zu send entsprechend eurer Struktur anpassen:
$output = `sudo /root/rcswitch-pi/send 11111 $id $status`;

4.) Damit das aus dem PHP Script send ausgeführt werden darf muss www-data der Gruppe sudo hinzugefügt werden
(hier gibt es aus Sicherheitsaspekten vielleicht noch eine bessere Lösung - mich stört sowas nicht)

nano /etc/sudoers

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





weitere Information zu Jquery:





Viel Spass
Soulfly
 
Zuletzt bearbeitet:

matze5800

Newbie
Mitglied seit
11. November 2012
Beiträge
1
Erhaltene Reaktionen
0
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Das ist ja eine Wahnsinns-Idee! Hab mich extra deswegen hier angemeldet ;)

Sind in allen im Baumarkt erhätlichen Steckdosen die selben benötigten Chips verbaut oder müssten die nach ein paar bestimmten Herstellern ausgewählt werden?

Danke im Vorraus! :smile:
 
OP
L

lenny

Freak
Mitglied seit
7. Februar 2011
Beiträge
235
Erhaltene Reaktionen
250
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Es kommt Bewegung rein ;=) Ich bin zur Zeit und auch in den letzten Wochen beruflich viel unterwegs sonst hätte ich hier schon weitergemacht.

Die Steckdosen sollten einen bestimmten Chipsatzunterstützen - ich muss mal die Spezifikationen heraussuchen.

Aber derzeit gibt es im OBi eine Aktion da gibbet die Steckdosen plus Fernsteuerung für 3 oder 4,99 Euro.

Da kann man zugreifen. Ich habe das ganze ein wenig weiterentwickelt und schalte mittlerweile auch

die Garagen meiner Nachbarn ;=) **hehehe** - bin aber derweilen am umbasteln und möchte einen Rückkanal

für eine Betätigungs / Statusmeldung einbauen. Den entsprechen Receiver habe ich schon geordert.....


Wg. der Steckdosen schaut mal bei mydealz da gibbet mehr Infos.
 

lema67

Ist gelegentlich hier
Mitglied seit
31. Oktober 2010
Beiträge
78
Erhaltene Reaktionen
21
Coole Idee. Da ich aber keinen Raspberry habe sondern einen Igel mit Debian nutze habe ich mich mal am WE hingesetzt und eine kleine Schaltung entworfen.
Kernstück ist hier ein FTDI ft232rl ein Atmega16 und natürlich der RF Link Sender.
Für den Atmega16 habe ich ein kleines Programm geschrieben das die ankommenden Befehlessequenz in die entsprechenden Impulse für den Sender umsetzt.
Angeschlossen wir der Sender per usb, das Senden der Schaltsequenz per Linux wird mit Bsp. 'echo "00000f0fff0f" > /dev/ttyUSB0' erledigt, für Win7 habe ich ein kleines Vb.net proggi geschrieben.
Der Steckdosensatz den ich nutze kommt von OBI (ELRO)und hat mal 4,99€ gekostet im Sender ist ein HX2262 Chip verbaut. Mein nächstes Ziel ist es erstmal alles auf einer Leiterplatte zu vereinen( zur zeit befinden sich der rf232 allein auf einer Platine und der Atmega auf einem Breakoutboard) und dann ein Webinterface zu erstellen mit Timer und Manueller Steuerung.

Update:

Eigenen Beitrag verfasst: Funksteckdosensteuerung mittels Debian Server
 
Zuletzt bearbeitet:
A

aragorn

Guest
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

würdest du deine schaltpläne, genauere aufbau/zusammbau beschreibung sowie programme/scripts hier auch zur verfügung stellen?

und wenns geht ein bischen sortierter schreiben nicht alles in einem batzen, ruhig zwischendurch auch mal <enter> drücken..
 

lema67

Ist gelegentlich hier
Mitglied seit
31. Oktober 2010
Beiträge
78
Erhaltene Reaktionen
21
Ja geht los. Hatte den Beitrag mit tapatalk verfasst da sieht es ganz ordentlich aus. Der Rest geht los die Tage.
 

lema67

Ist gelegentlich hier
Mitglied seit
31. Oktober 2010
Beiträge
78
Erhaltene Reaktionen
21
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Eigenen Beitrag verfasst : Funksteckdosensteuerung mittels Debian Server
 
Zuletzt bearbeitet:

enop

Newbie
Mitglied seit
8. Mai 2010
Beiträge
5
Erhaltene Reaktionen
1
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Es kommt Bewegung rein ;=) Ich bin zur Zeit und auch in den letzten Wochen beruflich viel unterwegs sonst hätte ich hier schon weitergemacht.

Die Steckdosen sollten einen bestimmten Chipsatzunterstützen - ich muss mal die Spezifikationen heraussuchen.

Aber derzeit gibt es im OBi eine Aktion da gibbet die Steckdosen plus Fernsteuerung für 3 oder 4,99 Euro.

Da kann man zugreifen. Ich habe das ganze ein wenig weiterentwickelt und schalte mittlerweile auch

die Garagen meiner Nachbarn ;=) **hehehe** - bin aber derweilen am umbasteln und möchte einen Rückkanal

für eine Betätigungs / Statusmeldung einbauen. Den entsprechen Receiver habe ich schon geordert.....


Wg. der Steckdosen schaut mal bei mydealz da gibbet mehr Infos.
Hi lenny hast du diesbezüglich weitere Infos ... ? ... zu dem Chipsatz ... und wg. den Rückkanals ... infos würden mich freuen ... ;) Danke
 

darkwing_lpz

Newbie
Mitglied seit
4. August 2009
Beiträge
12
Erhaltene Reaktionen
2
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Sehr schönes Projekt :smile:
Ich hab die Schaltung schon unter Arduino und wechsle zum Raspberry da der einfach mehr Möglichkeiten bietet.
Leider reagiert er nicht auf mein Schaltsignal, bzw. es kommt nichts bei den Dosen an.
System ist Raspbian “wheezy”.
5V auf 2 GND auf 6 und Schaltung auf 11 was ja GPIO0 entspricht da ich an der send.cpp nichts verändert habe.

EDIT:
beim compilen bekomme ich aber auch seltsame rückmeldungen
RCSwitch.cpp: In member function 'char* RCSwitch::getCodeWordB(int, int, boolean
)':
RCSwitch.cpp:194:61: warning: deprecated conversion from string constant to 'cha
r*' [-Wwrite-strings]
 
Zuletzt bearbeitet:

Crypto

Newbie
Mitglied seit
8. Juli 2011
Beiträge
29
Erhaltene Reaktionen
5
AW: Rasperry Projekt Hausautomatik - Teil I Steuerung von Funksteckdosen

Hast du dran gedacht, die Befehle auch als root auszuführen?
Einfach sudo vor den Befehl schrieben.
 
Oben