Inhaltsverzeichnis
SARAH Box
SARAH (Self Actuated Residential Automated Habitat) Im Eigenheim hilft uns Smart-Home, energieeffizient zu wohnen und den Alltag angenehmer zu gestalten. Das vorliegende Projekt verwendet eine offene Hardware- und Softwareplattform, die es den Nutzern ermöglicht, ihr Zuhause einfach und bequem zu steuern. Eine Schlüsselrolle spielen moderne Kommunikationsgeräte wie Smart-Phones, Tablets, Smart-TV und Webtechnologien. Zur Vernetzung der Aktoren und Sensoren dient IP, die Software basiert auf Linux und Contiki-OS und ist dank freier Lizenzen beliebig erweiterbar.
Unterpunkte
Aufgaben
- Monitoring der IT-Infrastrukturen
- Webserver mit Reversproxy Infrastruktur
- 6loWPAN-EdgeRouter Infrastruktur
- IPv6DNS Infrastruktur
Linux Installation
Olimex A20-OLinuXino-LIME
Plattformen: olimex-A20-lime
wget http://sarahbox.osdomotics.com/images/latest/olimex-A20-lime.img.xz sudo dd bs=4M if=olimex-A20-lime.img of=/dev/sdX # neues device scheint in dmesg auf, sichergehen dass device nicht Partition angegeben ist
Logindaten User (schnellstmöglich ändern): osd PW: osd (bzw root | root)
ssh -l osd -6 abbb::ba27:ebff:fed5:438a
Smart-SARAH
apt-get update apt-get upgrade apt-get install locales apt-get install ca-certificates apt-get install unzip wget https://github.com/osdomotics/smart-sarah/archive/master.zip unzip master.zip
RADVD
apt-get install radvd cp smart-sarah-master/banana-edge/etc/radvd.conf /etc/radvd.conf service radvd start
OMD
gpg --recv-keys 24BFF712 gpg --armor --export 24BFF712 | apt-key add - # Add our repository for Debian 8 (jessie): echo "deb http://dl.bananian.org/packages/ jessie main" > /etc/apt/sources.list.d/bananian.list apt-get update apt-get install omd-1.30
Coap
apt-get -y install libnagios-plugin-perl libnetaddr-ip-perl wget http://downloads.sourceforge.net/project/libcoap/coap-18/libcoap-4.0.3.tar.gz tar -xzf libcoap-4.0.3.tar.gz cd libcoap-4.0.3 apt-get install autoconf autoconf apt-get install build-essential ./configure make cp examples/coap-client /usr/local/bin/ cd ..
check_coap
omd create mysite wget https://github.com/osdomotics/check_coap/archive/master.zip unzip master.zip cd check_coap-master cp check_coap* /omd/sites/mysite/lib/nagios/plugins/ cd nagios-conf.d/ cp coap_templates.cfg /omd/sites/mysite/etc/nagios/conf.d/ cp triops.cfg /omd/sites/mysite/etc/nagios/conf.d/ cd .. cd .. omd restart
Webinterface
http://[abbb::ba27:ebff:fed5:438a]/mysite/omd/
user: omdadmin PW: omd
Ich bevorzuge als Nagios Oberfläche Check_mk:
Hardware
Haussteuerungsserver
Agocontrol Ist in C++ und Python realisiertes Home Automation System mit Server, Webinterface und Android App. GPLV3
LinKnx/WebKNX Server in C++
https://raw.github.com/selfbus/linux-bus-tools/master/raspberry/Scripts/selfbus_eib.sh
GUH ist eine in c++ QT geschriebenes Home Automation System mit Server
http://www.guh.guru http://www.github.com/guh
OpenHAB Server in Java
Eine Lösung die in Russland sehr beliebt ist und auf PHP MySQL und Javascript beruht. Hat einen Blockly Editor mit dabei.
Homegenie ist eine Heimautomatisierungsläsung mit schöner GUI Oberfläche in c# für alle Plattformen
Freedomotic ist eine in Java realisiertes Heimautomatisierungs Framework
Domogik is a free (GPLv3) Home Automation solution. Sieht modern aus, ist in Version 0.4 erschienen (09.05.2016)
http://www.domogik.org/en/index.html
Home Automation Framework in node.js
https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
the Thing System In Node.js geschriebenes System
http://thethingsystem.com/index.html
Ponte ein Restful-HTTP zu MQTT zu COAP Protokollumsetzter
Flow Library
FHEM GPL lizensierter auf Perl basierender Server. Mit diversen Themes und Smartphone Apps. Läuft auch auf einer Fritzbox, etc
Huginn is a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf. Huginn's Agents create and consume events, propagating them along a directed graph. Think of it as a hackable Yahoo! Pipes plus IFTTT on your own server. You always know who has your data. You do.
Webserver
NGINX
Dieser Webserver ist auch für ARM Geräte wegen seinen geringem Ressourcenverbrauch empfehlenswert.
Wiki
Man sollte ein Wikisystem ohne Datenbank wählen
- Dokuwiki https://www.dokuwiki.org/dokuwiki
Videoüberwachung
ZoneMinder ist eine freie Software zur Videoüberwachung, entwickelt für Linux. Sie wird unter der GNU General Public License freigegeben.Hinter ZoneMinder verbirgt sich eine komplette Video-Überwachungsumgebung, die professionellen Ansprüchen genügt. So kann man die Überwachung beispielsweise Event-gesteuert ablaufen lassen oder Zonen einrichten, die nicht beobachtet werden sollen/dürfen beziehungsweise im Gegensatz dazu als Region of Interest gelten.
ownCloud
ownCloud ist eine Software-Suite, die einen ortsunabhängigen Speicherbereich für Daten zur Verfügung stellt. Als Grundlage setzt das Projekt auf PHP und einer angebundenen SQLite-, MySQL- oder PostgreSQL-Datenbank. Die ownCloud kann über eine Weboberfläche bedient werden.
http://de.wikipedia.org/wiki/OwnCloud
https://www.security-blog.eu/raspberry-pi-als-owncloud-server/
http://developer-blog.net/hardware/raspberry-pi-als-cloud-nutzen-teil-1/
Nextcloud
Der Gründer von OwnCloud hat das Unternehmen verlassen und Nextcloud gegründet.
Own Your Data
Sammle Daten über Deinen Alltag, speichere Sie sicher, und gewinne faszinierende Einblicke über Dein Leben.
Own Your Data Installationsanleitung
IoT Cloud
CloudSync
CloudSync ist ein Programm speziell zum sicheren Backup privater Daten in der Cloud.
Anforderungen:
- Portabel
- Verschlüsseln sämtlicher Daten einschließlich der Dateinamen
- Komprimieren der Daten
- Inkrementelle Sicherung
- Einfaches Wiederherstellen der Daten
- Sicherung aller Metadaten wie Zugriffsrechte, Eigentümer, Link-Ziele
- Schnelles Feststellen der Änderungen
Projekt CloudSync unter: http://github.com/HolgerHees/cloudsync
Config-System
Ein Configurationssystem auf Python Basis. Es ist unter Debian Jessie lauffähig. http://ajenti.org/
NAS-Distribution
OpenMediaVault auf Debian Wheezy basierendes NAS System mit Config Service und mit Plugin Funktionalität. Eine Portierung auf Debian Jessie ist in Arbeit.
DLNA
Die Digital Living Network Alliance (DLNA) ist eine internationale Vereinigung von Herstellern von Computern, Unterhaltungselektronik und Mobiltelefonen mit dem Ziel, die Interoperabilität informationstechnischer Geräte unterschiedlicher Hersteller aus dem Heimbereich sicherzustellen.
Music Player Daemon
Der Music Player Daemon (kurz MPD) ist ein Unix-Systemdienst, der das Abspielen von Musik auf einem Computer ermöglicht. Er unterscheidet sich von gewöhnlichen Musik-Abspielprogrammen dadurch, dass eine strikte Trennung von Benutzeroberfläche und Programmkern vorliegt. Dadurch ist die Benutzerschnittstelle auswechselbar und auch eine Fernsteuerung des Programms über das Netzwerk möglich. Die Schnittstelle zwischen Client und Server ist dabei offen dokumentiert und der Music Player Daemon selbst freie und quelloffene Software.
apt-get install mpd
Sprachausgabe
MaryTTS eine in Java geschrieben Sprachausgabe mit sehr guter Qualität.
Spracheingabe
Jasper is an open source platform for developing always-on, voice-controlled applications.
Monitoring
Nagios
OMD - The Open Monitoring Distribution Rasperry
Repository für OMD 1.0 ARM HF:
http://labs.consol.de/repo/stable/debian/dists/wheezy/main/binary-armhf/
https://labs.consol.de/repo/stable/#_debian_wheezy_7_0
Cacti ist eine Open Source Software für das Sammeln und grafische Darstellen von Daten. Diese Daten können via SNMP oder über eigene Scripte von cacti ausgelesen werden.
http://www.nwlab.net/tutorials/cacti/cacti-tutorial.html
Erfahrungen:
Cacti config ist nicht trivial [H.P]
OMD einfach genial
[H.P]
Indoor Navigation
Redpin an der ETH Zürich als Open-Source Projekt entstanden.
6LoWPAN
Um unseren Server mit einem 6LoWPAN Netz zu Verbinden und mit Routingfunktionen auszustatten benötigen wir Zusatzhardware und Software.
- 6LoWPAN Shield oder Stick
- tunslip6 Demon
- Routing Demon RADVD or BIRD
Es existiert auch eine Benutzerfreundlichere Version namens 6LBR mit Routing Webinterface
- 6LoWPAN Shield oder Stick
- 6LBR Firmware für das Shield oder Stick
- 6LBR Packete für den Linux Server
[1]: https://github.com/cetic/6lbr/wiki
Weiters ist ein Verschlüsselung unserer Daten zwischen den 6LoWPAN-Aktoren und Sensoren und unserem Netzwerk sinnvoll.
[2]: https://github.com/cetic/tinydtls [3]: https://github.com/vjutvik/Contiki-IPsec
Zur Analyse eines 6LoWPAN Netzes existiert auch Software für Linux und MacOS
IPv6DNS
DHCP-Server Dnsmasq verteilt IPv6-Präfixe und -Adressen. Der etwa auf dem Router-Linux OpenWRT laufende DNS-Proxy und DHCP-Server Dnsmasq arbeitet seit einiger Zeit auch als IPv6-Router, der IPv6-Netzwerkpräfixe im LAN bekannt gibt (Stateless Address Autoconfiguration, SLAAC) oder IPv6-Adressen per DHCPv6 an Clients verteilt. Ab Version 2.60 kann die Software erstmals auch IPv6-Netzwerkinformationen verteilen
SarahBox v2
Mit dem neuen Image-Builder für SarahBox v2 lässt sich einfach ein aktuelles Debian mit mainline Kernel in einer VM bauen.
Damit sind die Systemanforderungen minimal (CPU mit VT oä empfehlenswert), kein Ärger mehr mit Cross-Compilern auf diversen Distributionen.
Das eigene OSD-Debianrepository sorgt für einfaches Updaten auf neue Kernelversionen und bietet zusätzliche Software wie zB tunslip6.
Howtos
Um die Infos des angeschlossenen Boarderrouter-Merkurboards (Nachbarn, Routen) vom lokalen Netz zugreifbar zu haben muss aktuell noch ein Reverseproxy händisch konfiguriert werden.
Dafür verwenden wir nginx
# apt install nginx
Nun brauchen wir die IP des angeschlossenen Boarderrouters
# journalctl -u tunslip6@ttyUSB0
Hier suchen wir nach der Zeile nach „Addresses [4 max]“, die Adresse beginnt mit dem in der tunslip6 config festgelegten Präfix (zB: aaaa::)
Nun muss in /etc/nginx/sites-enables/default nur noch der reverseproxy eingetragen werden
location /merkurboard/ { proxy_pass http://[<IP vom tunslip log>]/; }
Anschließend nginx neustarten
systemctl restart nginx
Jetzt müsste unter http://sarahbox.lan/merkurboard/ die Nachbarn/Routen erscheinen (Unter Windows funktionieren teils keine avahi/zeroconf announces, dort muss die IP der Sarahbox verwendet werden)
Todos (Prototypen)
Basis
- uboot kompileren (done)
- build script in vagrant für simples bauen
- Funktionierender Linux Kernel finden/kompileren (done,
linux-sun7i-3.4.90linux-4.4-mainline)- build_kernel.sh Script baut version die in settings.sh definiert ist
- tunslip6 kompileren (done)
- tunslip6.c patchen
- bird6 installieren (done)
- Versorgungsleitung für Merkurboard herauslegen (done, Pin3 auf GPIO-3)
- tunslip6 Verbindung aufbauen (done)
- Route announcen
- IPv6 prefixes vergeben lassen
- PROFIT
Advanced
- Ajenti Adminpanel? (SSL-Bug workaround)
Linksammlung
- GPIOs am A10-Lime (Boarddesign sollte gleich sein mit A20-Lime)
- GPIO-Leisten am A10-Lime (gleich mit dem A20-Lime)
- Doku über A20 (nur Allwinner Chip)
Anleitung zum ArchLinux bauen fürs A20-Micro (Vorgehen fürs A20-Lime ähnlich, aber nicht 1:1 gleich)(archlinuxarm)