www.sebsys.de

Der Junge möchte <b>NICHT</b> aus dem Technikparadies abgeholt werden

News

chatten mit der Hausautomation

Contributed by s.waitz on May 09, 2016 - 09:52 AM

Pushnachrichten sind ne feine Sache. Im Moment lasse ich mir abends eine Pushnachricht schicken, wenn am nächsten Tag der Müll geleert wird. So vergisst man nicht den Müll an die Strasse zu bringen.
Openhab bringt mit dem my.openhab Service out of the box schon eine Push-Nachricht Möglichkeit mit, die ich im Moment auch einsetze.

Allerdings kann man den Nachrichten keinen Ton zuweisen so dass sie auch schon mal übersehen werden.
Für den nächsten Anwendungsfall den ich implementieren möchte, sollen auch Fotos mitgeschickt werden können.
Bei aktivierter "Alarmanlage" der Hausauto soll eine Pushnachricht mit angehängtem WebCam Foto verschickt werden.

Durch Zufall bin ich über das yowsup-cli Projekt gestolpert. Ein Whatsapp command line interface. Da mein Server schon auf Linux läuft, habe ich die schwerst Hürde schon mal genommen.
Nachfolgend ein kleines Howto wie ich Yowsup bei mir implementiert habe:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3 pip
su - openhab
git clone https://github.com/tgalal/yowsup/
cd yowsup
sudo python3 setup.py install


Damit war die Installation abgeschlossen. Jetzt gehts ans konfigurieren:
touch ~/config.yowsup
echo "cc=49 # Länderkennung
phone=4912345678987 # Handynummer
id= # frei lassen
password= # zunächst noch frei lassen" > ~/config.yowsup


Jetzt gehts ans Nummer konfigurieren.
Wenn man keine alte SIM Karte rum fliegen hat wo noch kein Whatsapp registriert ist, cool. Wenn das nicht der Fall ist, geht auch eine freie Festnetznummer. Dann darf man die nur nicht per "SMS" gegistrieren, sondern per "voice". Grund ist, dass man an diese Nummer eine SMS oder Sprachnachricht bekommt, in der ein Passwort durchgegeben wird. Das braucht man um die Nummer im zweiten Schritt zu aktivieren.
Also erst mal Token requesten.
yowsup-cli registration -c config.yowsup --requestcode voice

Da sollte hoffentlich so ein ähnlicher Output kommen.
Detected cc: 49
status: sent
retry_after: 1805
length: 6
method: sms

Dann auf die Nachricht von Whatsapp warten und sich das Passwort aufschreiben.

Später gehts hier weiter
Als näcshtes habe ich mir eine Whatsapp Gruppe zusammengeklickt, an die ich später Hausautomations Infos schicken möchte. Um an diese Gruppe per yowsup-cli Nachrichten zu schicken, braucht man die ID der Gruppe. Und so bekommt man diese:

yowsup-cli -c config.yowsup -y
[offline]:/L
connecting....
[connected]:/groups list
[connected]:Iq:
ID: 7
Type: result
from: g.us
Groups:
ID: 49173XXXXXXX-1462972491, Subject: Hausautomation, Creation: 1462972491, Creator: 49173XXXXXXX@s.whatsapp.net, Subject Owner: 49173XXXXXXX@s.whatsapp.net, Subject Time: 1462972491
Participants: 49173XXXXXXX@s.whatsapp.net, 49YYYYYYY@s.whatsapp.net


XXXXXXX = ist meine Handynummer mit der ich die Gruppe erstellt habe
YYYYYYY = meine yowsup Festnetz nummer

Um jetzt ein Nachricht an die Gruppe zu schicken, muss man yowsup folgendermassen aufrufen:
yowsup-cli demos -c ~/config.yowsup -s 49173XXXXXXX-1462972491 "Meine Gruppennachricht"



Quellenangaben: Details habe ich bei FHEM und bei Johannes Petz gefunden.


Openhab für Mosquitto konfigurieren

Contributed by s.waitz on May 04, 2016 - 12:33 PM

Nachdem Mosquitto läuft und man Topics publishen/subscriben kann, gehts jetzt an die OH Implementation. Also erst mal die Bindings für OH installieren

sudo apt-get update
sudo apt-get install openhab-addon-binding-mqtt openhab-addon-binding-mqttitude


Danach die openhab.cfg anpassen und auf die Mosquitto Installationverweisen

mqtt:mosquitto.url=tcp://localhost:8883


Als letztes noch ein Item definieren:
Number test_mqtt
"temp [%.1f]"
{mqtt="<[mosquitto:/aussen_allgemein/temperature:state:default]"}


Details gibts auch auf der Addon Wiki Seite.

Wie man sieht lauscht Openhab jetzt auf dem Topic "aussen_allgemein/temperature".
Nach einem OH restart, steht das neue Binding zur Verfügung und man kann mit dem mosquitto_pub binary mal einen Wert schicken. Also

mosquitto_pub -t "/aussen_allgemein/temperature" -m 22
von der Console geschickt und somit dem OH Item test_mqtt den Wert 22 gegeben.
Das kann man sich auch in der OH sitemap anschauen.
Cool, läuft alles. Jetzt kann man nach Herzenslust Topics in LAN publishen und OH darauf lauschen lassen.
Ich schaue mir als nächstes Locations per Owntracks via MQTT an. Und auch ein Python script das von der Smappee API daten holt und per MQTT an OH schickt.


Mosquitto Installation für Openhab

Contributed by s.waitz on May 04, 2016 - 09:28 AM
Picture 0 for Mosquitto Installation für Openhab

Lange hats gedauert, aber jetzt komme ich um MQTT nicht mehr drum herum :-)
So habe ich Mosquitto und Openhab konfiguriert. Los gehts:


sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients


Dann checken ob der Server läuft:

ps -fe |grep mosq
mosquit+ 1883 1 0 10:25 ? 00:00:02 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf


Super! Jetzt kann man in einer Shell per mosquitto cli zu erinem Topic "subscriben" und mit einer anderen Shell auf dem Topic etwas "publishen"

Shelll 1 (Subscribe):

mosquitto_sub -v -t 'test/topic'


Shelll 2 (Publish):

mosquitto_pub -t 'test/topic' -m 'helloWorld'


Und schon taucht auf Shell 1 folgendes auf:

test/topic helloWorld

Funktioniert ja prima. Alles cool! Next stop: Openhab konfigurieren


Openhab mit eigenem SSL Zertifikat

Contributed by s.waitz on Mar 24, 2016 - 12:54 PM
#create .key file
openssl genrsa -des3 -out sebsys.de.key 4096

# create signing request (.csr file)
openssl req -new -key sebsys.de.key -out sebsys.de.csr

# sign certificate & cretate .crt file
openssl x509 -req -days 1825 -in sebsys.de.csr -signkey sebsys.de.key -out sebsys.de.crt

# create PKCS12 file
openssl pkcs12 -export -inkey sebsys.de.key -in sebsys.de.crt -out sebsys.de.p12


# openhab specific!
# info grabed from here: https://gist.github.com/jpmens/8029383
mv /openhab/etc/keystore /openhab/etc/keystore.`date +"%Y-%M-%d"`
keytool -importkeystore -srckeystore /home/s.waitz/sebsys.de.p12 -srcstoretype PKCS12 -destkeystore keystore
keytool -keystore keystore -list -v
# below xxxxx are the passwords from above
java -cp server/plugins/org.eclipse.jetty.util_8.1.3.v20120522.jar org.eclipse.jetty.util.security.Password xxxxxx xxxxxx


Sobald LetsEncrypt meine Domain supported werde ich wohl mit dieser Anleitung umstellen


Sainsmart SSR 4 Port

Contributed by s.waitz on Mar 23, 2016 - 08:20 PM

Ich will das Garagentor auch Smart machen. Der Torantrieb hat einen Tastereingang mit dem man ebenfalls das Tor steuern kann. Da ich sowiso schon einen Pi in der Garage habe, der mir per DHT11 die Temperatur funkt, ist der Plan folgender:
- Ein Sainsmart 4-Port SSR bei Amazon holen
- Daran ein 10Meter Klingeldraht
- per GPIO das SSR als Push-button ansteuern und dem Garagentor so einen Taster vorgaukeln

SSR geordert und verkabelt. By the way: SSR heisst solid state relay und bedeutet dass es ohne mechanische Teile auskommt. Es gibt auch noch die mechanischen Relais. Diese sollen aber bei kälteren Temperaturen anfangen zu "kleben". Das heisst nicht mehr auslösen. Nachteil der SSR ist, dass sie nur bis 2A schalten. Bei nem 24Volt Garagentor Antrieb ist das aber Ok.

Hier als Gedankenstütze noch mal die PIN Belegung, da man sowas immer vergisst und ich nen T-Cobbler dran habe, der anders gelabelt ist.
5VO = VCC
GND = GND
GND (nicht belegt)
P0 = GPIO17 (SSR = IN1)
P1 = GPIO18 (SSR = IN2)
P2 = GPIO27 (SSR = IN3)
P3 = GPIO22 (SSR = IN4)
P4 = GPIO23 (nicht belegt)
P5 = GPIO24 (nicht belegt)
P6 = GPIO25 (nicht belegt)
P7 = GPIO4 (nicht belegt)

Ich habe testweise erst mal PIN1 und Strom angeschlossen. DAnn zum testen eine LED an den Ausgang von IN1.

Auf der Konsole des Pi den GPIO Port vorbereiten:

echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction

Und dann kann man mit 1 & 0 das SSR schalten. Wenn alles geklappt hat, geht mit 1 die LED an und bei 0 wieder aus.

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value


Bei mir ging die LED nicht wieder aus, da der Widerstand zu gering war das SSR zu schalten.

Edit: Kleines Script geschrieben, das den Umgang mit den GPIOs einfacher macht: *KLICK*


tcpdump

Contributed by s.waitz on Dec 31, 2015 - 07:02 AM

Ich hab mich mal als Beta tester für ein Android App eingetragen lassen. Das App soll ein neues Frontend speziell für Wall-mounted tablets zur Steuerung von Openhab sein.
Leider macht das App nach dem initialen konfigurieren nix. Aber auch gar nix. Um ein Netzwerk Problem auszuschließen habe ich mal nen tcpdump auf dem Openhab server mitlaufen lassen.
Hier der Befehl, falls ich den noch mal brauche :-=

root@nuc:~# tcpdump -nnvvXSs 1514 -i eth0 src port 8080

Und die Erklärung:
nn = Hostname und Port nicht auflösen
vv = verbosity Level
X = Payload
S = absolute Sequenz nummern
s = snaplen sollte 1514 sein um das ganze Paket aufzuzeichnen
i = Interface Name
src port 8080 = der Filter, da das Tablet die Webgui queriet
-w filename.pcap (falls man das File hinterher in wireshark analysisren will)


Noch kein Letsencrypt für die Spielwiese

Contributed by s.waitz on Dec 07, 2015 - 12:56 PM

bevor ich meine externen Seiten auf letsencrypt umstelle, wollte ich meine Owncloud installation zu Hause mal probe konfigurieren.
Leider stellte sich heraus, dass no-ip.com (da hab ich meinen DynDNS Eintrag) noch nicht soweit ist. Lesestoff gibts hier
Aber der Support arbeitet schon daran und hat eine pull request auf github eingestellt, um auch meine Domain frei zu geben.
Jetzt heisst es noch warten bis der Eintrag auf der public_suffix_list Liste ist und letsencrypt seine Liste aktualisiert.
Dann gehts weiter.


Owncloud mit neuem Repo

Contributed by s.waitz on Nov 20, 2015 - 10:50 AM

In owncloud kam heute eine Meldung, dass version 8.2.1 am Start wäre. Nach einem


sudo apt-get update
sudo apt-get -u upgrade

Kam aber nur die bisher installierte 8.1.4 rum. Nach ein wenig googlen ergab sich, dass sich die Repos geändert haben. Also hier der Anleitung gefolgt, und das neue Repo eingehängt.
Wieder

sudo apt-get update
sudo apt-get -u upgrade

durchgeführt, und schon tauchte die neue Version auf. Los geht!


BananaPro unter Bananian 8 von Festplatte starten

Contributed by s.waitz on Nov 16, 2015 - 07:44 AM

1) Festplatte vorbereiten: Anstecken, formatieren & Daten kopieren

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 74,5G 0 disk
└─sda1 8:1 0 74,5G 0 part
mmcblk0 179:0 0 3,7G 0 disk
├─mmcblk0p1 179:1 0 20M 0 part /mnt
└─mmcblk0p2 179:2 0 3,7G 0 part /
df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 3,7G 1,1G 2,5G 31% /
devtmpfs 486M 0 486M 0% /dev
tmpfs 98M 208K 97M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 195M 0 195M 0% /run/shm
/dev/mmcblk0p1 20M 5,3M 15M 27% /mnt
fdisk /dev/sda
mkfs.ext4 /dev/sda1
mount /dev/sda1 /mnt/
rsync -ax / /mnt/


2. Bootloader umstellen
sudo apt-get install u-boot-tools
sudo mount /dev/mmcblk0p1: /mnt
cp /mnt/boot.cmd /mnt/boot.cmd.bac
cp /mnt/boot.scr /mnt/boot.cmd.scr
sed -e "s#/dev/mmcblk0p1#/dev/sda1#g" -i /mnt/boot.cmd
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Execute uImage' -d /mnt/boot.cmd /mnt/boot.scr
reboot


3. checken ob alles fäuft
$ df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 74G 1,3G 69G 2% /
devtmpfs 486M 0 486M 0% /dev
tmpfs 98M 204K 97M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 195M 0 195M 0% /run/shm

Nachdem /dev/root jetzt die 74G von der Festplatte hat und nicht mehr die 4GB von der SD Karte ist alles gut gegangen.
Die S-Karte muss allerdings im Slot bleiben, da der PananaPro nur von ihr booten kann. Die dort vorgehaltene Konfig verweist allerdings direkt auf die Platte und der Rest läuft von da.
Alles super.

Infos zusammengeholt von *hier* and *hier*.


was braucht es für eine zentrale Steuerung der Hausautomation?

Contributed by s.waitz on Oct 30, 2015 - 10:43 AM
Picture 0 for was braucht es für eine zentrale Steuerung der Hausautomation?

Ich hatte mir das (naiv wie ich bin) etwas zu leicht vorgestellt. Vor allem wenn man den WAF erreich will/muss. So stand ich vor den folgenden Problemen:

Wie befestigt man ein Tablet an/in der Wand?
Wie lädt das Tablet wenn keine Kabel sichtbar sein sollen?
Wie stelle ich das Tablet ein, damit es nicht die ganze Zeit an ist, leuchtet und Strom verbraucht?
Welche Software setze ich auf dem Tablet ein?


Alles gar nicht so leichte Nüsse, wenn es ordentlich aussehen soll und funktionieren soll. In den nächsten Posts werde ich zu jeden Thema gesondert ein paar Zeilen schreiben.