Autor Thema: fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk  (Gelesen 384 mal)

Offline jojoja

  • Jr. Member
  • **
  • Beiträge: 76
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.shDann 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/crontabAm 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
FHEM 5.8 @ Raspberry Pi 2;  FB 7490;  2x SCC (HM & FS20/FHT);  Sonos Play 1 & 3;
Gefällt mir Gefällt mir x 3 Liste anzeigen

Offline ext23

  • Hero Member
  • *****
  • Beiträge: 2120
    • Homepage
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #1 am: 19 April 2017, 15:20:14 »
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, FS20, 1-Wire, PanStamp, AVR-NET-IO, SIS-PM, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Offline jojoja

  • Jr. Member
  • **
  • Beiträge: 76
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #2 am: 19 April 2017, 16:01:04 »
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/
Zitat
Du 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.

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

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 5.8 @ Raspberry Pi 2;  FB 7490;  2x SCC (HM & FS20/FHT);  Sonos Play 1 & 3;

Offline ext23

  • Hero Member
  • *****
  • Beiträge: 2120
    • Homepage
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #3 am: 19 April 2017, 16:06:22 »
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, FS20, 1-Wire, PanStamp, AVR-NET-IO, SIS-PM, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Offline jojoja

  • Jr. Member
  • **
  • Beiträge: 76
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #4 am: 19 April 2017, 21:24:34 »
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.

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 5.8 @ Raspberry Pi 2;  FB 7490;  2x SCC (HM & FS20/FHT);  Sonos Play 1 & 3;

Offline ext23

  • Hero Member
  • *****
  • Beiträge: 2120
    • Homepage
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #5 am: 20 April 2017, 21:28:55 »
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, FS20, 1-Wire, PanStamp, AVR-NET-IO, SIS-PM, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Offline jojoja

  • Jr. Member
  • **
  • Beiträge: 76
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #6 am: 20 April 2017, 22:40:11 »
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 5.8 @ Raspberry Pi 2;  FB 7490;  2x SCC (HM & FS20/FHT);  Sonos Play 1 & 3;

Offline ext23

  • Hero Member
  • *****
  • Beiträge: 2120
    • Homepage
Antw:fhem im Wochenendhaus - Betrieb mit Solar und Mobilfunk
« Antwort #7 am: 21 April 2017, 08:22:40 »
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, FS20, 1-Wire, PanStamp, AVR-NET-IO, SIS-PM, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

 

decade-submarginal