www.sebsys.de

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

News

Grafana Installation um InfluxDB Daten aus Openhab anzuzeigen

Contributed by s.waitz on Sep 01, 2016 - 11:01 AM
Picture 0 for Grafana Installation um InfluxDB Daten aus Openhab anzuzeigen

Nach dem Openhab brav Daten in die InfluxDB schiebt, geht es jetzt darum diese Daten anzuzeigen. Und zwar mit Grafana. Also los:
Wir benutzen wieder den offiziellen Installations Guide

su -
echo "deb https://packagecloud.io/grafana/stable/debian/ wheezy main" > /etc/apt/sources.list.d/grafana.list
curl https://packagecloud.io/gpg.key | sudo apt-key add -
apt-get update
apt-get install grafana

118MB später ist Grafana installiert. Jetzt noch beim boot aktivieren und starten.
sudo systemctl daemon-reload
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

Und schon kann man sich das erste mal das Webfrontent anschauen (http://IP_ADRESSE:3000 admin:admin) und die InfluxDB als Backend konfigurieren. Hier die offizielle Doku.


Openhab mit InfluxDB

Contributed by s.waitz on Sep 01, 2016 - 07:10 AM

Da RRDtool ja schon etwas in die Jahre gekommen ist, wollte ich mal was "state of the art" ausprobieren. Da bietet sich InfluxDB und Grafana an. Also los.

1. InfluxDB installieren.
Am besten nach offizieller Anleitung: [Klick]
Dann das Init-Script installieren, damit Influx auch beim booten startet

cd /etc/init.d/
sudo wget https://raw.githubusercontent.com/influxdata/influxdb/master/scripts/init.sh
mv init.sh influxdb
chmod 755 influxdb
cd /usr/lib/systemd/system/
sudo wget https://raw.githubusercontent.com/influxdata/influxdb/master/scripts/influxdb.service
sudo systemctl enable influxdb.service
sudo systemctl start influxdb


Dann InfluxDB starten und auf der console datenbank uns Benutzer anlegen
sudo /etc/init.d/influxdb start
influx
InfluxDB shell version: 0.13.0
> create database openhab
> create user openhab with password 'mysecret'
> grant all on openhab to openhab
> exit


2. Weiter gehts mit der Openhab addon Installation
sudo apt-get update
sudo apt-get install openhab-addon-persistence-influxdb

Config anlegen:
sudo echo "
######################## InfluxDB Persistance ########################
# using defaults
#influxdb:url=http://127.0.0.1:8086
#influxdb:user=openhab
#influxdb:db=openhab
#influxdb:retentionPolicy
influxdb:password=mysecret
" >> /etc/openhab/configurations/openhab.cfg

Non noch die Persistenz konfigurieren. Da ich schon mapdb am laufen habe, das jedes Item persistiert, habe ich das einfach rüber kopiert. Könnt ihr euch so einstellen wie ihr das braucht.
cd /etc/openhab/configuration/persistance
cp mapdb.persist influxdb.persist

Nach einem Neustart von Openhab kann man schon mal schauen ob in der Datenbank was ankommt.
influx
> show databases
> use openhab
> show series
....
> select * from aussen_Temperature_Sensor
name: aussen_Temperature_Sensor
-------------------------------
time value
1472723036585000000 27.8
1472723207082000000 27.9


Läuft!
Im nächsten Post erkläre ich wie man Grafana insatlliert und coole Bilder aus den Daten macht. Das soll dann später die in die Jahre gekommenen RRD-Bildchen ablösen


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!