FS20 - Hausautomatisierung

 

Da sich mit relativ g√ľnstigen Mitteln eine Hausautomatisierung umsetzen l√§sst habe ich mich nun mal zum Winter hin an diese Thema begeben.

Dazu soll der vorhandenen Raspberry PI (Homeserver) genutzt werden. Dieser kleine und kosteng√ľnstige ARM Rechner ist eine gute Basis.

 

 

Dazu wird noch ein Funkmodul benötigt. (Hier kann der Raspberry direkt mitbestellt werden).

Alternative:

Busware CC1101 Transceiver f√ľr Raspberry Pi inkl. Antenne

Die benötigte Software ist hier zu finden.

Raspberry Pi RBCA000 Mainboard (ARM 1176JZF-S, 512MB RAM, HDMI, 2x USB 2.0, 3,5 Watt)

Hier das neueste Modell: Raspberry Pi Model B+ (B Plus)

Das passende Netzteil:¬†NEU! MAREL Steckernetzteil Micro-USB 5V 2000mA f√ľr Raspberry Pi B+ & Raspberry Pi & Banana Pi

Das Modul CUL wird einfach oben aufgesteckt.

 

Vorbereitung Raspberry PI

Zun√§chste l√§dst du die aktuelle Debian Version f√ľr den Raspberry herunter. Die gibt es hier.

In meinem Fall war das Wheezy.

Als nächstes benötigt man ein Tool mit dem man Debian auf der SD karte installieren kann. Das gibt es hier.

In dem Tool die SD Karte und das Image ausw√§hlen und ausf√ľhren. - fertig.

SD Karte in den Raspberry stecken und booten.

Nun erscheint ein Setup Fenster. Hier erweitert man zunächst das root Dateisystem und rebootet.

Benutzer ist: pi / Kennwort raspberry - das sollte man auch ändern.

Folgende Befehle nacheinander ausf√ľhren:

 Show/Hidden bash code

View source
 
 
 
sudo apt-get update 
 
 
sudo apt-get dist-upgrade 
 
 
sudo apt-get install vim mc htop nano 
 
 
cd /etc/network sudo nano interfaces
 

Optional, wenn eine feste IP manuel vergeben werden soll (ggf im Router einfach sagen: Gerät immer selbe IP zuweisen).

Den Inhalt der Datei nun anpassen:

Show/Hidden bash code

View source
 
 
 
auto eth0
iface eth0 inet static
address 192.168.0.50 
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
 

Hinweis: Diese IPs sind ein Bsp. F√ľr dein Netz musst du ggf. andere vergeben.

 

Hinweis: nano ist ein Texteditor. Gespeichert wird mit STRG+O, geschlossen dann mit STRG+X

 

Raspberry PI FS20 fähig machen

Show/Hidden bash code

View source
 
 
 
nano /etc/inittab
 
 
Löschen / Auskommentieren: T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
 
 
Hier auch: /boot/cmdline.txt - Wenn es dort vorhanden ist
 
 
cd /tmp
 
 
wget http://fhem.de/fhem-5.2.deb
 
 
dpkg - i fhem-5.2.deb
 
 
nano /etc/init.d/fhem
 
 
Alles zwischen Start) und Stop) ersetzen:
 
 
echo "resetting 868MHz extension..."
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo out > /sys/class/gpio/gpio18/direction
echo 1 > /sys/class/gpio/gpio18/value
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
 echo "Starting fhem..."
 $fhz $conf
 RETVAL=$?
 ;;
 

STRG + O

STRG + X

 Show/Hidden bash code

View source
 
 
 
nano /etc/fhem.cfg
 
 
 
 

(die fhem.cfg lässt sich auch im Browser bearbeiten http://IPDESRASPI:8083/fhem --> Edit files)

Zeile am Ende hinzuf√ľgen:

 Show/Hidden bash code

View source
 
 
 
define COC CUL /dev/ttyAMA0@38400 1234
 
 
 

STRG + O

STRG + X

 Show/Hidden bash code

View source
 
 
 
reboot
 
 
 

Erste Ausbaustufe: Steuern einer Funksteckdose √ľber Iphone, Ipad, Android, Webgui.


 Show/Hidden bash code

View source
 
 
 
nano /etc/fhem.cfg
 
 
  

Oben, im globalen Teil definierst du einen Raum (Einf√ľgen):

 Show/Hidden bash code

View source
 
 
 
attr global room Wohnzimmer
 
 
   

An die Datei hängst du folgende Zeilen an:

 Show/Hidden bash code

View source
 
 
 
define Vitrine FS20 12344321 54
 
 
attr Vitrine fm_view 0,0
attr Vitrine model fs20st
attr Vitrine room Wohnzimmer
 
 
  

STRG + O

STRG + X

 

Erklärung:

12344321= Hauscode - dieser ist frei wählbar (8 Stellen, Zahlen 1-4)

54 = Gerätecode - frei wählbar

 

Dienst neu starten:

 Show/Hidden bash code

View source
 
 
 
/etc/init.d/fhem stop
 
 
/etc/init.d/fhem start
 
 
  
 

An der Webgui anmelden:

http://IP_DES_RASPI:8083/fhem

 

Oder die iphone App "fhemobile" starten...

 

Den Funkschalter in die Steckdose stecken, w√§hrend du gleichzeitig den Taster dr√ľckst.

Dieser sollte nun blinken. Nun einfach √ľber die GUI einen Schaltvorgang (AN/AUS) ausl√∂sen.

Jetzt ist der Schalter eingerichtet.

FS20 ST-3 Funk-Schaltsteckdose

 

Zweite Ausbaustufe: Programmierung Zeitschaltuhr

Show/Hidden bash code

View source
 
nano /etc/fhem.cfg
 
 
  
 

anhängen:

Show/Hidden bash code

View source
 
 
 
define VitrineANUm2000 at 20:00:00 set Vitrine on
 
 
define VitrineAUSUm2200 at 22:00:00 set Vitrine off
 
 
  
 

STRG + O

STRG + X

 

Dritte Ausbaustufe: IRDA Steuerung

 

FS20 IRF

 

Nach der Anleitung die gew√ľnschten IRDA Befehle programmieren. - Es k√∂nnen bis zu 16 werden.

 

fhem.cfg um einen Befehl erweitern.

Show/Hidden bash code

View source
 
 
 
define Sauger_start FS20 12344321 58
attr Sauger_start fm_type button-on
attr Sauger_start fm_view 0,0
attr Sauger_start room Wohnzimmer
 
 
 
 

Vierte Ausbaustufe: Heizungssteuerung

 

Thermostat FHT80b - Bei der Grundausstattung empfiehlt es sich die Heizungssteuerung im Set zu kaufen.

ELV FHT80b 1-Raum-Heizungsregelung pro (1x FHT80B + 1xFHT8V + 1x FHT80TF-2) 

Auch einzeln möglich: 

FS20 STR Funk-Raumthermostat einzeln, inkl. Batterien

Ich habe mich au√üerdem f√ľr die Bausatzvariante entschieden.

 

ELV FHT8V Funk-Stellantrieb mit Adapterset

 

Funk-T√ľr-Fensterkontakt FHT80TF-2

 

Die Geräte werden mit dem Thermostat FHT80b nach Anleitung verbunden.

Das Thermostat wird dann in fhem sichtbar.

Minimale nötige Konfiguration:

Show/Hidden bash code

View source
 
 
 
define Thermostat_Wohnz FHT 3c3c
attr Thermostat_Wohnz retrycount 3
attr Thermostat_Wohnz room Wohnzimmer
 
define FileLog_Thermostat_Wohnz FileLog /var/log/fhem/Thermostat_Wohnz-%Y.log Thermostat_Wohnz
attr FileLog_Thermostat_Wohnz logtype fht:Temp/Act,text
attr FileLog_Thermostat_Wohnz room Wohnzimmer
 
define weblink_Thermostat_Wohnz weblink fileplot FileLog_Thermostat_Wohnz:fht:CURRENT
attr weblink_Thermostat_Wohnz label "Thermostat_Wohnz Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_Thermostat_Wohnz room Wohnzimmer
 
 
define Schiebetuer CUL_FHTTK c8ecbc
attr Schiebetuer fm_fav 999
attr Schiebetuer fm_view 0,0
attr Schiebetuer room Wohnzimmer
 
 
 
define FileLog_Schiebetuer FileLog /var/log/fhem/Schiebetuer.log Schiebetuer
attr FileLog_Schiebetuer logtype fht80tf:Window,text
attr FileLog_Schiebetuer room Wohnzimmer
 
define weblink_Schiebetuer weblink fileplot FileLog_Schiebetuer:fht80tf:CURRENT
attr weblink_Schiebetuer label "Schiebetuer Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_Schiebetuer room Wohnzimmer
 
 
  
 

 

F√ľnfte Ausbaustufe: Heizungssteuerung f√ľr Fortgeschrittene

Meine Heizung (GAS) kann an und abgeschaltet werden.

Das hat fr√ľher eine Zeitschaltuhr √ľbernommen.

Jetzt habe ich das √ľber ein FS20 Funkrelais gel√∂st:

Show/Hidden bash code

View source
 
 
 
define Flamme FS20 12344321 59
attr Flamme fm_view 0,0
attr Flamme follow-on-for-timer 1
attr Flamme model fs20st
attr Flamme room Dachboden
 
 
 
 

Zudem habe ich eine Warmwassertherme (120l) die nur dann

gewärmt wird, wenn die Heizung läuft. Dazu habe ich dann einen Temparatursensor verwendet.

Dieser ist so eingestellt, dass er bei 45 Grad schaltet.

Show/Hidden bash code

View source
 
define Therme FS20 1be4 00
attr Therme follow-on-for-timer 1
attr Therme room Dachboden
 
 
 
  

Nach 45 Minuten Therme erwärmen wieder abschalten.

Show/Hidden bash code

View source
 
 
 
define ThermeAus at +*00:45 {\
 
 
my $zaehler=1;;\
while($zaehler <= 10) {\
fhem('set Therme off');;\
sleep(3);;\
$zaehler++;;\
};;\
} 

Dieses Script pr√ľft alle 5 Minuten ob das Thermostat die Heizung aufgedreht hat.
Wenn ja, muss die Heizung aktiviert werden.

Show/Hidden bash code

View source
 
 
 
define HeizAbsenkung at +*00:05 {\
 my $FHT_Actuator=ReadingsVal("Thermostat_Wohnz","actuator","101%");;\
 my $FS20_State=ReadingsVal("Flamme","state","off");;\
 my $Therme_State=ReadingsVal("Therme","state","off");;\
 my $zaehler=1;;\
 $FHT_Actuator=substr($FHT_Actuator,0,length($FHT_Actuator)-1);;\
 Log 0, "State: " . $FS20_State;;\
 Log 0, "Actuator: " . $FHT_Actuator;;\
 Log 0, "Therme: " . $Therme_State;;\
 \
$FHT_Actuator = $FHT_Actuator + $FHT_Actuator2;;\
Log 0, "Actuator: " . $FHT_Actuator;;\
 if ($FHT_Actuator>13 || $Therme_State eq "on" ){\
 if ($FS20_State eq "off"){\
 while($zaehler <= 5) {\
 fhem('set Flamme on');;\
 sleep(3);;\
 $zaehler++;;\
 };;\
 };;\
 };;\
 \
 if ($FHT_Actuator<11){\
 if ($Therme_State eq "off"){\
 while($zaehler <= 5) {\
 fhem('set Flamme off');;\
 sleep(3);;\
 $zaehler++;;\
 };;\
 };;\
 };;\
}

Und dieses Script pr√ľft ob ein Fenster auf ist.

Show/Hidden bash code

View source
 
 
 
define window_check notify .*:[Ww]indow.* { if("%" !~ m/Closed/) {\
my $Therme_State=ReadingsVal("Therme","state","off");;\
 if ($Therme_State eq "off"){\
 fhem('set Flamme off');;\
 Log 3, "@: Fenster %";;\
 };;\
 }\
}

Sechste Ausbaustufe: Batterien pr√ľfen

Auf der Linux Konsole:

Show/Hidden bash code

View source
 
 
 
apt-get update
 
 
apt-get install sendemail
 
 
nano /bin/batterie_mail.sh
 
 
In der Datei dann folgende Zeile einf√ľngen und anpassen:
 
 
sendemail -f SENDEREMAILADRESSE -t EMPF√ĄNGEREMAILADRESSE -u "Batterie leer" -m "Batterielevel kritisch" -s SMTPMAILSERVER -xu MAILSERVERUSERNAME -xp PASSWORT
 
 
 

STRG + O

STRG + X

Show/Hidden bash code

View source
 
 
 
chmod +x /bin/batterie_mail.sh
 
 
 

 

fhem.cfg

Show/Hidden bash code

View source
 
 
 
define batterie_check notify .*:[Bb]attery.* { if("%" !~ m/ok/) {\
 system("/bin/batterie_mail.sh");;\
 Log 3, "@: Batteriewarnung %";;\
 }\
}
 
 
 
 

 

Diese B√ľcher kann ich dir noch empfehlen:

Hier geht es weiter mit dem zweiten Teil zum Thema Hausautomatisierung.

Falls du schon immer mal Interesse an einem Multicopter (manche nennen es auf fälschlicher Weise Drohne) hast, bist du hier richtig.

Dir hat das Projekt gefallen? Dann¬†Unterst√ľtze mich, damit ich weiterhin solche Projekte vorstellen kann!

Kommentare   

0 #3 thewi 2016-02-17 20:41
:lol: :lol: :lol: :lol: DAnke
Dem Administrator melden
0 #2 Tim 2016-02-05 10:49
Hallo Michael,

super Tutorial. Kurze Frage, eigentlich m√ľsste es doch m√∂glich sein auch einen FS20 Funk-Rolladenschalter einzubinden oder?

Viele Gr√ľ√üe
Tim
Dem Administrator melden
0 #1 mizziTANTE 2015-02-23 14:01
8)
Hallo,
tolles Tutorial!

Liebe Gr√ľ√üe,
mizziTANTE
Dem Administrator melden

Kommentar schreiben

Sicherheitscode
Aktualisieren