Gigaset Elements in FHEM

Begonnen von spynick, 03 November 2015, 20:37:42

Vorheriges Thema - Nächstes Thema

spynick

Guten Abend

Hatte mir so aus Spass Gigaset Elements gekauft und vor kurzem habe ich FHEM entdeckt. Scheinbar hat das noch niemand integriert und ich hab mir mal mehr oder weniger die Mühe gemacht und es "versucht".

Es gibt leider kein fertiges Perl-Modul oder ähnliches. SW zu schreiben überlasse ich lieber immer anderen - habe ich keine Nerven dazu. Adaptieren kann ich dafür einigermassen ganz gut.

Jedenfalls gibt es ein Kommandozeilenprogramm in Python das man verwenden kann. Installiert wird das ganze mittels folgender Anleitung unter:

https://github.com/dynasticorpheus/gigaset-elements

Danach ist es eigentlich nur noch ein Problem die richtigen Stati zu erwischen. Dafür habe ich mir ein Shell-Script gemacht, dessen Inhalt man im Anhang sehen kann und dieses per Cron-Job jede Minute starten

Nun "nur" noch die entsprechenden Definitionen erledigen:


define Gigaset CustomReadings
attr Gigaset interval 10
attr Gigaset readingDefinitions Eingang:qx(cat /Data/gigaset/status.log | grep Eingang | cut -f5 -d:),Schrank:qx(cat /Data/gigaset/status.log | grep Schrank | cut -f5 -d:),Office:qx(cat /Data/gigaset/status.log | grep Office | cut -f5 -d:),SZ-links:qx(cat /Data/gigaset/status.log | grep SZ-links | cut -f5 -d:),SZ-rechts:qx(cat /Data/gigaset/status.log | grep SZ-rechts | cut -f5 -d:)
attr Gigaset room Wohnung


Und schon hat man die entsprechenden Daten in FHEM, sieht dann ungefähr aus wie im 2. Anhang.

LG

Stefan

flacoonb

Guten Abend

Bin absoluter FHEM und Perl Anfänger. Habe auch ein Gigaset Elements und nach einer Möglichkeit gesucht, diese in FHEM einzubinden. Mit deiner Anleitung hat dies recht gut geklappt. Vielen Dank!

Ich habe allerdings lediglich einen Door und einen Motion Sensor. Beim Motion Sensor in FHEM hatte ich das Problem, dass dieser nicht das Datum und die Zeit aus dem Log des Gigaset Elements, sondern aus der Log Datei nahm. Ich habe das Ganze wie nachfolgend gelöst. Hier noch der ganze Code, damit nicht alles abgetippt werden muss:

getstatus.sh
#! /bin/bash

STATUSFILE=/opt/fhem/Data/gigaset/status.txt
STATUSLOG=/opt/fhem/Data/gigaset/status.log
ZEIT=$(date +"%d/%m/%Y_%H:%M:%S")
/usr/local/bin/gigasetelements-cli -u "Benutername" -p "Passwort" -e 50 | grep "/" | egrep -v "endnode|fw_" > $STATUSFILE



Eingang=`cat $STATUSFILE | grep "Eingang" | sort | tail -1 | awk {'print $7'}`
DatumB=`cat $STATUSFILE | grep "Flur" | sort | tail -1 | awk {'print $2'}`
ZeitB=`cat $STATUSFILE | grep "Flur" | sort | tail -1 | awk {'print $3'}`
Flur=`cat $STATUSFILE | grep "Flur" | sort | tail -1 | awk {'print $7'}`

cat<<EOF>$STATUSLOG
$ZEIT Gigaset Sensor: Eingang Status: $Eingang
$Flur am $DatumB um $ZeitB Uhr
EOF


Attr für FHEM
attr Gigaset readingDefinitions Eingang:qx(cat /Data/gigaset/status.log | grep Eingang | cut -f5 -d:),Schrank:qx(cat /Data/gigaset/status.log | grep Schrank | cut -f5 -d:),Office:qx(cat /Data/gigaset/status.log | grep Office | cut -f5 -d:),SZ-links:qx(cat /Data/gigaset/status.log | grep SZ-links | cut -f5 -d:),SZ-rechts:qx(cat /Data/gigaset/status.log | grep SZ-rechts | cut -f5 -d:)

Das sieht dann wie im Anhang aus.
Evt. gibt es eine einfachere oder schönere Lösung.

Robohouse

Hallo Leute,

ich bin absolut blutiger Anfänger oder ne Stufe davor...

Ich verstehe die Anleitung zur Einbindung nicht... Kann mir das mal jemand erklären?

DANKE!!! ;)

Robohouse

[quote author=spynick link=topic=43481.msg354310#msg354310 date=1446579462

Jedenfalls gibt es ein Kommandozeilenprogramm in Python das man verwenden kann. Installiert wird das ganze mittels folgender Anleitung unter:

https://github.com/dynasticorpheus/gigaset-elements

[/quote]

Kann mir jemand bitte helfen, ich verstehe die Anleitung nicht...
Vielleicht hat jemand ma nen schubs in die richtige Richtung für mich ? Wäre echt toll !

Danke !

Magge

Hey Leute,
hab mich selber mit dem Thema auseinandergesetzt und auch das Skript von spynick eine lange Zeit am laufen gehabt.
Leider musste ich feststellen dass durch das ständige schreiben und lesen der Statusfile- und Statuslog-Dateien die
SD-Karte des Raspberry alle 3-4 Monate durch war! Eine Erhöhung des Intervalls ist für mich auch keine Lösung da über den Alarmmodus die Lichter gesteuert werden und ich hab keine Lust am Abend wenn ich nach Hause komme 2 Minuten zu warten bis das Licht an bzw. beim schlafen gehen aus geht! Deshalb hab ich ein Skript erstellt das die Daten aufarbeitet und über telnet an Fhem weiterreicht.
Das Skript ist so aufgebaut das man die Sensoren sowie Zugangsdaten und Intervall von Fhem aus festlegen kann. Falls jemand Interesse hat einfach melden!

Lg

oldman

Hallo Magge, ich habe Interesse.

topher

Hallo Magge,

ist zwar etwas älter, aber ich hätte auch Interesse. Könntest Du vielleicht auch erläutern, wie Du durch Dein Skript die Lese- und Schreibzugriffe umgehst? Das wäre großartig!

Danke!