Übersetzungen dieser Seite:

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.

SARAH-BOX

Unterpunkte

Aufgaben

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:

http://[abbb::ba27:ebff:fed5:438a]/mysite/check_mk/

Hardware

Haussteuerungsserver

Agocontrol Ist in C++ und Python realisiertes Home Automation System mit Server, Webinterface und Android App. GPLV3

http://www.agocontrol.com/

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

http://www.openhab.org/

Eine Lösung die in Russland sehr beliebt ist und auf PHP MySQL und Javascript beruht. Hat einen Blockly Editor mit dabei.

http://majordomohome.com/

Homegenie ist eine Heimautomatisierungsläsung mit schöner GUI Oberfläche in c# für alle Plattformen

http://www.homegenie.it

Freedomotic ist eine in Java realisiertes Heimautomatisierungs Framework

http://www.freedomotic.com

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

http://www.pimatic.org/

the Thing System In Node.js geschriebenes System

http://thethingsystem.com/index.html

Ponte ein Restful-HTTP zu MQTT zu COAP Protokollumsetzter

http://eclipse.org/ponte/#

Flow Library

http://flows.nodered.org/

FHEM GPL lizensierter auf Perl basierender Server. Mit diversen Themes und Smartphone Apps. Läuft auch auf einer Fritzbox, etc

http://fhem.de/fhem.html

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.

https://github.com/cantino/huginn

Webserver

NGINX

Dieser Webserver ist auch für ARM Geräte wegen seinen geringem Ressourcenverbrauch empfehlenswert.

http://nginx.org/

Wiki

Man sollte ein Wikisystem ohne Datenbank wählen

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.

http://www.zoneminder.com/

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.

https://nextcloud.com/

Own Your Data

Sammle Daten über Deinen Alltag, speichere Sie sicher, und gewinne faszinierende Einblicke über Dein Leben.

Own Your Data Installationsanleitung

https://www.ownyourdata.eu/

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.

http://forums.openmediavault.org/index.php/Thread/5302-Howto-install-OpenMediaVault-on-Debian-7-x-Wheezy/

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.

http://mediatomb.cc/

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.

http://lnv-90208.sb.dfki.de/index.html

Spracheingabe

Jasper is an open source platform for developing always-on, voice-controlled applications.

http://jasperproject.github.io/documentation/

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.

http://redpin.org/

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

[4]: http://cetic.github.io/foren6/

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.90 linux-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

Linksammlung


de/projekte/sarah-box.txt · Zuletzt geändert: 2017/09/07 10:21 von kelvan