fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk

Begonnen von jojoja, 17 April 2017, 19:00:57

Vorheriges Thema - Nächstes Thema

jojoja

Ich habe unser Wochenendhaus mit fhem-Spielereien erweitert. Die Stromversorgung läuft über eine kleine Solar-Zelle mit alter Autobatterie als Zwischenspeicher und die Internetverbindung stellt ein altes Nexus 5 her. Und das funktioniert erstaunlich gut!


Bisheriger Stand
Ein 50W Solarmodul lädt über einen Laderegler die Batterie, Licht in 3 Bereichen per LED-Stripes oder LED-Strahler (alles auf 12V). Die Batterie ist mit 68Ah angegeben und hält auch einen langen Abend bei Vollbeleuchtung durch (die tatsächliche Kapazität ist mir natürlich nicht bekannt, ist BJ 2005).

Mobilfunkanbieter
Da bin ich auf den wunderbaren Anbieter Netzclub (https://www.netzclub.net/sponsored-surf-basic/) gestoßen, die eine werbefinanzierte Datenflat mit 100MB im O2/E+ Netz kostenlos anbieten können. Diese kann kostenlos bestellt werden und es fallen tatsächlich keine Kosten an. LTE ist mitinbegriffen, an meinem Standort praktischerweise auch verfügbar. Mit Edge funktioniert es aber auch.

Aufbau
Da es über Mobilfunk schwierig mit DDNS wird, habe ich mir überlegt, eine VPN-Verbindung nachhause herzustellen. Dann sind beide fhem-Instanzen im selben Netzwerk, wodurch ein Datenaustausch mit FHEM2FHEM sehr einfach geht und der Pi auch per SSH erreichbar bleibt (mit spürbarer Zeitverzögerung auch bei LTE). Ich lasse alle relevanten Daten auf meiner Hauptinstanz darstellen, damit ich keine Webaufrufe über den Mobilfunk starten muss.
Als fhem-Server dient ein Raspberry Pi 3, der per WLAN mit dem Telefon (welches einen Hotspot bereitstellt) eigenständig die VPN-Verbindung per vpnc herstellt. Vereinfacht:
RasPi3 -> WLAN -> Nexus 5 -> Internet
RasPi3 -> VPN -> Nachhause

Verwirklichung
Es empfiehlt sich, das Ganze ausgiebig Zuhause zu testen, da man bei Verlust der VPN-Verbindung keine Chance hat, von extern neuzustarten oä. Außerdem muss die ganze Paketinstallation nicht über Mobilfunk laufen (ich habe über die Drosselung ein apt-get update durchgeführt, hat ja nur 40 min gebraucht :D)... Vorerst läuft hier also alles im heimischen LAN:
1.   Rasperry Pi aufsetzen
2.   fhem installieren
3.   VPN-Verbindung einrichten
Ich verweise auf die Anleitung die ich genutzt habe: http://www.kuemmel.wtf/?p=363
Hier wird davon gesprochen, dass VPN-Verbindung immer wieder abbricht, in meinem Fall alle ~6h. Das ist natürlich fatal, aber das dortige Skript schafft Abhilfe. Ich habe das ganze noch ein klein wenig erweitert und auf englische Systemsprache angepasst (ist auch im Anhang):


#!/bin/bash
# set -x auskommentieren für den Debug Modus. Die Ausgabe erscheint in der Kommandozeile.
#set -x
# hier wird die Logfile-Datei definiert
# Logfile muss erst mit ,,sudo nano fritzbox.log" am Zielort erstellt werden erstellt werden
LOGFILE=/home/pi/VPN-fritzbox.log

# hier wird die IP-Adresse von Fritzbox definiert. wenn die VPN Verbindung steht, dann sollte ping funktionieren.
myHost=192.168.178.1

# Wert -> wie oft soll gepingt werden
wert=4

# Ausgabe Wert für ,,count" soll bei erfolgreichen ping 4 sein, bei erfolglosen ping 0.
count=$(ping -c $wert $myHost | grep 'received' | awk '{print $4 }')

if [ $count -eq 4 ]
then

# die kommenden echos sind die Info-Ausgaben in Logfile
echo ,,$(date +%Y-%m-%d:%T) :Fritzbox mit der IP $myHost  ist erreichbar und VPN Verbindung steht" | tee -a $LOGFILE

else

echo ,," | tee -a $LOGFILE
echo ,,$(date +%Y-%m-%d:%T) :Fritzbox mit der IP $myHost ist nicht erreichbar" |tee -a $LOGFILE
echo ,,$(date +%Y-%m-%d:%T) :VPN-Verbindung trennen" |tee -a $LOGFILE

#hier wird das VPNC-Demon gestoppt, damit es nicht meher im Hintergrund lauft
/usr/sbin/vpnc-disconnect

# oft ist die Wlan Verbindungen unterbrochen. hier werden alle Netzwerkverbindungen neugestartet.
#echo ,,$(date +%Y-%m-%d:%T) :Netzwerkverbindungen neu starten" | tee -a $LOGFILE
#/etc/init.d/networking restart

# 15 Sekunden warten
sleep 15

# auslesen von der Wlan Ip-Adresse
# grep Adresse muss bei Englischen Spracheinstellungen evtl. geändert werden. Mit dem Debug Modus ausprobieren
ipwlan=$(/sbin/ifconfig wlan0 | grep "inet addr" | cut -b 21-35)
echo ,,$(date +%Y-%m-%d:%T) :Netzwerkverbindungen wurde neugestart. WLAN IP-Adresse: $ipwlan " | tee -a $LOGFILE
echo ,,$(date +%Y-%m-%d:%T) :VPN Verbindung neu aufbauen, der Skript vpnc_fritzbox starten" | tee -a $LOGFILE

# starten von VPNC-Demon. PID und VPN-IP Adresse auslesen
/usr/sbin/vpnc fritzbox.conf
pid=$(pidof vpnc)
ipvpn=$(/sbin/ifconfig tun0 | grep "inet addr" | cut -b 21-35)
echo ,,$(date +%Y-%m-%d:%T) :Die VPN-Verbindung wurde erfolgreich aufgebaut. die VPN IP-Adresse ist: $ipvpn. VPNC-Demon ist aktiv unter id: $(pidof vpnc)" | tee -a $LOGFILE
echo ,," | tee -a $LOGFILE

#15 Sekunden warten
sleep 15

#FHEM Heartbeat auf 0 setzen
perl /opt/fhem/fhem.pl 7072 "set f2f_heartbeatDummy 0"
perl /opt/fhem/fhem.pl 7072 "set f2f_heartbeatDummy reference 0"

fi


Mehr zum Heartbeat später. Die Datei liegt auf /etc/init.d/autovpnscript.sh
Rechte anpassen:
sudo chmod 755 /etc/init.d/autovpnscript.sh
Dann kann man auch testen, ob das Skript funktioniert. Wenn ja, dann erweitere ich crontab, damit das Skript alle 3 Minuten ausgeführt wird und beim booten direkt die Verbindung hergestellt wird:
sudo nano /etc/crontab
Am Ende einfügen:
*/3 * * * *     root    sh /etc/init.d/autovpnscript.sh >/dev/null 2>&1
@reboot root sleep 20;/usr/sbin/vpnc fritzbox.conf


4.   Mobiler Hotspot auf Android-Gerät (mit iOS kenne ich mich nicht aus) bereitstellen, das ist wahrscheinlich je nach Hersteller anders. Man kann hier die Standard-Einstellungen verwenden, ich habe das Passwort verlängert.
5.   WLAN auf Raspi konfigurieren -> Google hilft.
6.   Raspi neustarten und dabei das LAN-Kabel ziehen. Wenn alles funktioniert hat, sollte er sich mit dem WLAN verbinden und kurz später auch die VPN-Verbindung starten. Das kann man auf der Fritzbox Oberfläche beim Online-Monitor überprüfen. Bei System -> Ereignisse -> Internetverbindung sieht man sehr gut wann VPN aufgebaut wurde etc. Nun hat man ein mobiles fhem :D


Ich wollte noch eine grafische Darstellung, um die VPN-Verbindung zu überwachen. Also lasse ich auf dem mobilen fhem einen Dummy hochzählen (dieser wird im autovpnscript.sh bei jedem reconnect auf 0 gesetzt) und die Hauptinstanz mit FHEM2FHEM mithören.
Mobile Instanz:
define f2f_heartbeatDummy dummy
define f2f_heartbeat at +*00:05 { fhem("set f2f_heartbeatDummy ".(Value("f2f_heartbeatDummy") + 1)); }
attr f2f_heartbeat alignTime 00:00:00

Hauptinstanz:
define f2f_RaspiExtern <IP intern> LOG:f2f_heartbeatDummy
define f2f_heartbeatDummy dummy
attr f2f_heartbeatDummy readingList state reference
attr f2f_heartbeatDummy setList state reference
attr f2f_heartbeatDummy stateFormat {return (substr(sec2Dauer(ReadingsVal("f2f_heartbeatDummy","state",0)*300),0,15))." | Beats: ".(ReadingsVal("f2f_heartbeatDummy","state",0))}

define f2f_heartbeatReference +*00:05:00 { fhem("set f2f_heartbeatDummy reference ".(ReadingsVal("f2f_heartbeatDummy", "reference", 0) + 1)); }
attr f2f_heartbeatReference alignTime 00:00:00


Wenn man in der Hauptinstanz die beiden Reading loggt könnte das wie auf dem Bild aussehen.

Es empfliehlt sich nun das Ganze über ein paar Tage laufen zu lassen und zu beobachten. Nachdem das alles funktioniert (hat), bin ich dann endlich umgezogen. Bisher sind es nur ein paar 1-wire Temperaturfühler, wird aber noch erweitert.
Also habe ich auf der Hauptinstanz das FHEM2FHEM Device um diese Temperaturevents erweitert und per CloneDummy dargestellt/geloggt.

Fazit: Hoffentlich habe ich alles richtig zusammengetragen :D Ich bin wirklich erstaunt, wie stabil das System ist. Seit ein paar Wochen läuft es dort vor sich hin, die Verbindung blieb erhalten und fhem hat gemütlich die Daten hergeschickt. Schön ist, dass auch bei gedrosseltem Internet alles funktioniert, da die Daten in der Hauptinstanz verfügbar sind, muss man auch nicht ewig darauf warten.
Was noch kommt: Ein DS2438 zur Batterieüberwachung, ein Feinstaubsensor von Luftdaten.info und ein zweites Solarmodul, da bei längerem, schlechtem Wetter die Batterie nicht ganz voll wird und bei gutem Wetter eine Kühlbox dauerhaft laufen kann/soll.

Gruß Johannes




Nachtrag zu den anderen Komponenten:
Es wurde gefragt, welche Komponenten sonst noch so verbaut sind, das möchte ich euch natürlich nicht vorenthalten.
- 50W Solarmodul von solarxxl, (scheint es im Moment nicht mehr zu geben, Link zum Shop: https://www.ebay.de/sch/solarxxl/m.html?_nkw=&_armrs=1&_ipg=&_from=
- 20A Laderegler: http://www.ebay.de/itm/LCD-20A-Solar-Panel-Laderegler-MPPT-Batterieregler-12V-24V-Z-Klammer-Set-KS/252943585630?_trksid=p2045573.c100505.m3226&_trkparms=aid%3D555014%26algo%3DPL.DEFAULT%26ao%3D1%26asc%3D43785%26meid%3D549fb5c4bc324d8eadf8ad44c6780641%26pid%3D100505%26rk%3D1%26rkt%3D1%26
- Alte Autobatterie, 68Ah
- LED-Strahler: http://www.ebay.de/itm/4X-12V-10W-Warmweiss-SMD-LED-Fluter-Ausen-Scheinwerferlampe-Strahler-Flutlicht-/322286727949?hash=item4b09c9330d:g:BgoAAOSwWxNYpAyS
- LED-Strips mit 5630 Chip: http://www.ebay.de/itm/1m-30m-Set-SMD-5630-5050-3528-LED-Strip-Streifen-Band-Leiste-Stripe-Lichterkette-/252701553880?var=&hash=item3ad62fb4d8:m:mHAzvVgxVB9IZtazerqyQAw
- beliebiges Autoradio mit Boxen

Litze mit 4mm² zur Verdrahtung hat bei mir gereicht. Wenns längere Strecken sind lieber 6mm² nehmen - Electrodroid hilft, falls man keine Lust auf Rechnen hat :D
Die Solarmodule von solarxxl sind klasse. Der Regler ist nicht ganz so geil, macht aber was er soll. Bei den Billig-Strahlern war ich erst skeptisch, sind aber durchaus zu gebrauchen und den Winter haben sie auch alle überlebt.
Einen Wechselrichter war anfangs noch geplant, muss aber sagen, dass ich 230V~ überhaupt nicht mehr vermisse. Das kommt aber auch drauf an, wie lang man sich dort aufhält etc.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

ext23

Zitat von: jojoja am 17 April 2017, 19:00:57
Mobilfunkanbieter
Da bin ich auf den wunderbaren Anbieter Netzclub (https://www.netzclub.net/sponsored-surf-basic/) gestoßen, die eine werbefinanzierte Datenflat mit 100MB im O2/E+ Netz kostenlos anbieten können. Diese kann kostenlos bestellt werden und es fallen tatsächlich keine Kosten an. LTE ist mitinbegriffen, an meinem Standort praktischerweise auch verfügbar. Mit Edge funktioniert es aber auch.

Das klingt ja nicht schlecht. Was heißt hier werbefinanziert? Wird die Werbung in die Webseiten integriert oder ist mein Briefkasten dann täglich voll? Die IP ist eine NAT IP richtig? Das wäre ja glatt etwas um meine Gartenlaube im Winter zu überwachen. Müsste man sich nur ein paar scripte bauen damit man das teil sauber steuern kann ohne ständig ein VPN Tunnel aufgebaut zu lassen.

Wie oft muss man da Geld aufladen damit die Karte nicht gesperrt wird?
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

jojoja

Zitat von: ext23 am 19 April 2017, 15:20:14
Was heißt hier werbefinanziert? Wird die Werbung in die Webseiten integriert oder ist mein Briefkasten dann täglich voll?

Briefkastentechnisch hat es sich auf jeden Fall nicht geändert (hab die SIM im Oktober 16 bestellt). Werbung kommt auf die e-Mail Adresse, die man dort angegeben hat ca. 2x in der Woche und seltener eine SMS aufs Handy (in dem Zeitraum vielleicht 2-3, kanns nicht mehr sagen).
Von der FAQ-Seite: https://www.netzclub.net/faq/
ZitatDu erhältst maximal 30 bzw. im Fan Tarif 150 Produktwerbungen innerhalb eines Monats - es wird allerdings auch immer wieder Monate geben, in denen du seltener von netzclub kontaktiert wirst. Diese Botschaften erhältst du entweder per SMS, MMS oder E-Mail.

Zitat von: ext23 am 19 April 2017, 15:20:14
Die IP ist eine NAT IP richtig?
Öh, kann ich nix dazu sagen. Außer du verrätst mir, wie ich das überprüfe :D

Zitat von: ext23 am 19 April 2017, 15:20:14
Wie oft muss man da Geld aufladen damit die Karte nicht gesperrt wird?
Das Prepaid-Gutenhaben ist ungegrenzt gültig, mehr hab ich dazu nicht gefunden. Muss nicht heißen, dass man nie aufladen muss, aber bis jetzt habe ich keinen Cent gezahlt...
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

ext23

OK, und wegen dem VPN Tunnel. Du nutzt das VPN der Fritze, also IP-Sec richtig? Was fließen da so im Monat an Daten nur um den Tunnel offen zu halten? Die 100MB sind vermutlich schneller weg als einem lieb ist oder?

Wegen dem NAT, du hast also keine öffentlich IP, sprich das in deinem Fall Telefon ist von außen nicht erreichbar, IP technisch...
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

jojoja

Ja, ist IP-Sec an ner Fritzbox.
Das Datenvolumen hab ich bei der Einrichtung innerhalb von 2 Tagen aufgebraucht. Bin jetzt im 2. Monat und da sind 33MB weg, aber da kann ich keine qualitative Aussage treffen, Android läuft ja auch noch usw... Juckt mich aber ehrlich gesagt auch nicht so, wie gesagt, gedrosselt funktioniert auch alles.

Zitat von: ext23 am 19 April 2017, 16:06:22
Wegen dem NAT, du hast also keine öffentlich IP, sprich das in deinem Fall Telefon ist von außen nicht erreichbar, IP technisch...
So ist es, IP ist nicht öffentlich, also kein DDNS, deshalb VPN. So war mein Kenntnisstand vorher :D
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

ext23

Ich werd mir auch mal eine Karte bestellen.

Ich brauch das nur fürn Garten im Winter. Ich möchte eine Webcam bauen die dann per Motion detection Bilder verschickt und auf ein FTP ablegt. Da spare ich mir dann auch den VPN Tunnel.

Also auch mit der Drosselung läuft das einigermaßen ja?

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

jojoja

Konnte bis auf die 32kbit/s keinen Unterschied feststellen. Dann dauerts halt ein bisschen, bis die Bilder da sind, aber so wie sich es anhört, wäre das ja verkraftbar.

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

ext23

Denke ich auch ja. Was ist so ein Bild, vielleicht 80kB, sind dann eben 20 Sekunden bis das durch ist, was solls.

Danke.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

bitbiter

Hi Johannes,

das ist ein (für mich) wirklich sehr interessantes Projekt, da ich auch einen Schrebergarten auf diese Weise überwachen möchte. Das ist ein klassischer
Schrebergarten (kein Kleingartenverein) umgeben von vielen anderen Schrebergärten. Ich habe auch ein Solarmodul mit ca. 300W (hab ich mal billig
bekommen, da Glasbruch) und einen Solarregler bei Amazon erstanden. Autobatterie natürlich auch vorhanden.
Nach einem Jahr Betrieb mit dem Solarpanel und -regler scheint es super zu klappen. Grosse Stromabnehmer sind (noch) keine installiert.

Diesen Sommer werde ich den Schrebergarten mit einer 12V Installation (ausschl. LEDs natürlich) ausstatten. Dann werd ich endlich mal erfahren,
wie Fit die Batterie noch ist, ggf. muss ich eine neue kaufen.

Und dann kommt ein "NanoPi Neo" (siehe https://forum.fhem.de/index.php/topic,58120.0.html) oder gar ein "Raspberry Zero W" als
FHEM-Server rein, und ein UMTS-Stick der auch eine AccessPoint Funktion hat (ich denke es ist für mich einfacher so den Mini-PC mit dem Internet zu
verbinden). Ein paar Temp / Humidity Sensoren, Bewegungsmelder und LED-Strahler, Webcam und eine Lampe mit FB zum beleuchten zum beleuchten beim
verlassen bzw. eintreten in der Dunkelheit. Dafür hab ich sogar ein 2-Kanal Sender / Empfänger aus China erworben mit einer FB für den Schlüsselanhänger.

Ich denke das die Leistung der beiden Mini-PCs ausreichend sein sollten was die Bewältigung der paar Sensoren angeht. Werde mir mal die Verbrauchswerte
der beiden genauer anschauen wg. der Stromersparnis. Dann per FHEM2FHEM mit dem Rechner daheim per VPN, und voilá hab ich eine kleine aber feine
Überwachung.

Mal sehen ob ich das so hinbekomme, da ich Linux nicht beherrsche. Aber evtl. habe ich hier ein paar Anregungen
gemacht, die den einen oder anderen interessieren und womöglich daraus hier ein schönes FHEM-Konformes Projekt machen.

Gruss
Alex
Raspi mit Homematic-CCU, KeyMatic mit FB, HM-SEC-MDIR-2, HM-Sec-Sco, HM-MOD-RPI-PCB, 2x LCGW m. CUL868 / CUL433. == BananaPi mit fhem + SSD, MAX! FK und TS, Cube read-only (demn. Umstieg --> CUL), mehrere TFA/LC Sensoren, Milight Controller + Bulbs, Revolt, ECO Taster, Home-Easy, ESP8266 etc....

chris1284

Zitat von: jojoja am 17 April 2017, 19:00:57
Ein 50W Solarmodul lädt über einen Laderegler die Batterie, Licht in 3 Bereichen per LED-Stripes oder LED-Strahler (alles auf 12V). Die Batterie ist mit 68Ah angegeben und hält auch einen langen Abend bei Vollbeleuchtung durch (die tatsächliche Kapazität ist mir natürlich nicht bekannt, ist BJ 2005).

magst du das noch ein wenig ausführen was die Komponenten angeht? Ich finde Solar und Gartenhaus/Wochenendhaus recht interessant. wenn man sich dann solche Sets anieht
http://www.pearl.de/a-NX2758-3034.shtml wirds aber recht teuer.

jojoja

Hallo Chris,

ich habe den Beitrag oben ergänzt.
Bei dem Set reißt denke ich mal der Wechselrichter raus, die sind recht teuer... Mir sind einzelne Artikel allerdings auch lieber, so habe ich eventuell noch eine Batterie herumfahren, dann brauchts vorerst mal nur Laderegler und Solarmodul, dann kann man ja testen, ob die Batterie noch taugt. Erweitern kann man dann immernoch :D

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue