Sprachsteuerung für Domoticz mit Google Now

Bei Siio bin ich auf einen tollen Beitrag und Videos gestossen, wie man die Beleuchtung im SmartHome mit Google Now, Tasker und ein paar Plugins vom Handy aus steuern kann.

Das Ganze geht natürlich auch mit Domoticz. Wesentlicher Unterschied ist nur das verwendete Kommando und an welche Serveradresse es geschickt werden soll. Um herauszufinden, welche API Kommandos Domoticz anbietet, sollte man sich das hier ansehen.

Ein einfacher Befehl, den das Handy an eure Domoticz-Installation schicken muss, um z.B. eine Lampe einzuschalten, lautet:

http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$LAMPE_IDX&switchcmd=On

Wie die Variablen mit der Domoticz IP und dem Port, auf dem es bei euch läuft ersetzt werden müssen und dass auch die idx der jeweiligen Lampe eingetragen werden muss, ist glaube ich selbsterklärend.

Damit es funktioniert, ist es wichtig zu wissen, dass das Ganze case-sensitiv ist, das Kommando On oder Off muss also tatsächlich am Anfang groß geschrieben werden, das ist ein häufiger Fehler.

Zum verwendeten AutoVoice Plugin gibt es noch zu sagen, dass die kostenlose Variante in der Erkennung der Wörter auf 4 Zeichen begrenzt ist, das war mir zu Beginn nicht aufgefallen und hatte deswegen dafür gesorgt, dass meine vergebenen Kommandos nicht erkannt wurde. Beschränkt man sich allerdings auf 4 Zeichen funktioniert es auch so.

Mosquitto mqtt Message Broker auf der Synology

Nicht immer stehen für alle Geräte und Dienste, die man in seiner Homeautomatisierung verwenden möchte, die passenden Möglichkeiten bereit, alles unmittelbar in die Steuerungszentrale einzubinden.

Eine Möglichkeit dennoch Daten aus nicht direkt verbundenen Quellen in einer Steuerungssoftware wie Domoticz o.Ä. zu verwenden ist ein Message Broker. Im Umfeld der Gerätevernetzung hat sich dazu beispielsweise das leichtgewichtige Telemetrieprotokoll mqtt etabliert, das nach dem publish-subscribe Ansatz funktioniert. Verbundene Geräte können also Zustandsdaten, Ortsangaben usw. an den Message Broker übermitteln, ein Beispiel dafür wäre owntracks.

Für die Protokollimplementierg gibt es eine Reihe von verfügbarer kommerzieller, aber auch OpenSource Software. Ich habe mich für Mosquitto entschieden, weil es dazu ein Synology Package der Synocommunity gibt.

Nach der Installation läuft der Dienst zunächst ohne Authentifizierung und ohne TLS am Port 1883. Um die Funktionalität zu testen, brauch es einen Client. Ich verwende die Chrome Erweiterung MQTTLens. Wie man damit umgeht, ist hier so gut beschrieben, dass ich dazu selber nichts schreiben muss.

Authentifizierung in Mosquitto mit Username / Passwort:

Dafür bringt mosquitto ein Kommandozeilenwerkzeug zur Erzeugung eines Passwortfiles mit dem Namen mosquitto_passwd mit, zu finden im Ordner bin der Mosquitto Installation. Um ein Passwortfile mit dem Namen mqpass im aktuellen Verzeichnis für den Benutzer test zu erzeugen reicht:

./mosquitto_passwd -c ./mqpass test
dann wird eine entsprechende Datei angelegt. Jetzt muss man Mosquitto noch beibringen, diese zu verwenden. Hierzu müssen in der mosquitto.conf Datei im Verzeichnis var der Mosquitto Installation die folgenden beiden Einträge verändert werden:

allow_anonymous false    # war vorher True

password_file Pfad/zu/mqpass # Pfad zu mqpass muss eingeben werden

Nach einem Neustart des Dienstes stellt man fest, dass man sich wie bisher nicht mehr verbinden kann und das erst wieder möglich ist, nachdem Benutzernamen und Passwort eingegeben wurden…

Ein paar Links zum Thema:

MQTT und Owntracks – Livetracking

DIY Latitude

Caschis Blog

Mosquitto und Websockets

 

Synology Diskstation Status per SNMP auslesen

Synology DSM unterstützt das SNMProtokoll, so lassen sich relativ leicht Informationen über den Zustand der Synology Diskstation auslesen und in Skripten, 3rd Party Software und Ähnlichem verwenden. Dafür ist folgendes erforderlich:

SNMP auf der Diskstation aktivieren: Systemsteuerung > Terminal und SNMP > Reiter SNMP:

synology snmp

synology snmp

Für einen Einstieg reicht es, die Häkchen wie im Screenshot gezeigt zu setzen, wer mehr über die Unterschiede zwischen den Protokollen und die Authentifizierung erfahren möchte, schaut in den weiter oben verlinkten Wikipedia Artikel, oder bemüht das Internet.

Nun ist die Synology Diskstation vorbereitet. Im unteren Bereich des Fensters wird ein Link auf die Synology Inc. Webseite angegeben, von dem die Informationen zu den Synology MiB-Files enthalten sind.

Wie das im Detail funktioniert würde hier zu weit führen und ist in den angegebenen Quellen ausführlich beschrieben, ich beschränke mich auf ein paar Hinweise und ein Beispiel.

Wie das Synology Inc. Dokument zeigt, bietet die Synology Diskstation folgende spezifische MIB Kategorien an:

synology-mib

synology-mib

Die OIDs sind der Einstieg in den jeweiligen Bereich und können für ein snmpget, bzw snmpwalk verwendet werden um entweder ganze Blöcke an Informationen, oder einzelne Informationen auszulesen. Letzteres in dem man die Kette der OID auf den jeweiligen Wert herunterbricht, wie im Dokument von Synology beschrieben.

Beispiel für die Verwendung in einem Bash-Skript:

# Getting the diskStation system info:
            ModelName=`snmpwalk -v 2c  -c public -O qv $NASIP 1.3.6.1.4.1.6574.1.5.1`
            DSMVersion=`snmpwalk -v 2c  -c public -O qv $NASIP 1.3.6.1.4.1.6574.1.5.3`

$ NASIP ist die Adresse der Synology Diskstation, $ModelName enthält dann z.B. „DS215“ und $DSMVersion die aktuell installierte DSM Version, die gewählten Parameter ( -O qv) sorgen dafür, dass nur der jeweilige Wert des Knotens und nicht die zugehörige OID mit ausgegeben werden.

Da auch Festplattenzustand, Temperatur und Ähnliches auf diese Weise ausgelesen werden kann, eignet sich das hervorragend für die Einbindung in eine Überwachungs- oder Homeautomatisierungslösung wie domoticz.

Domoticz JSON API testen

Zugegeben eine relativ spärliche Überschrift, die daher rührt, dass ich Domoticz als Homeautomatisierungslösung verwende. Domoticz bietet eine JSON Api an, über die sich die konfigurierten Geräte auslesen, bzw. steuern lassen indem man ein Statusupdate oder Ähnliches auf die Schnittstelle schickt. Das benutze ich z.B. um Statusinformationen meiner Synology Diskstation per snmp Cronjob auszulesen und in Domoticz zu aktualisieren.

Zu Testzwecken war ich auf der Suche nach einem Browserplugin, oder etwas ähnlich Unkompliziertem, um die schnell und ohne großen Aufwand mit der Domoticz API zu spielen. Es gibt verschiedene Lösungen für verschiedene Browserolattformen, ich habe mich ohne großes Ausprobieren für REST-Easy entschieden, das erfüllt meine Anforderungen.

Am Beispiel, Lichtschalter aus der domoticz-Installation abzurufen, (http://192.168.102.102:8888/json.htm?type=command&param=getlightswitches) sieht das dann so aus, die Beispielinstallation verwendet keine Authentifizierung:

json-api-client

json-api-client

uns zeigt im Reiter „Rohdaten“ folgendes Ergebnis:

{
   "result" : [
      {
         "IsDimmer" : true,
         "Name" : "RGBW-Controller-1 ",
         "SubType" : "RGBW",
         "Type" : "Lighting Limitless/Applamp",
         "idx" : "2"
      }
   ],
   "status" : "OK",
   "title" : "GetLightSwitches"
}

Home Assistant Presence Detection einrichten

Festzustellen, ob eine Person zu Hause ist, ist eine wesentliche Informationsquelle für das Aufstellen von Regeln für die Heimautomatisierung. Home Assistant bietet dafür unterschiedliche Möglichkeiten an:

  • Benutzung von NMap und Scannen des Netzwerkes
  • Zugriffe auf unterstützte Router via Telnet
  • Zugriff auf einen MQTT Server mit Telemetriedaten

Die zum Ausprobieren einfachste Variante ist NMap, dazu ist lediglich folgender Eintrag in der configuration.yaml notwendig:

device_tracker:

platform: nmap_tracker

hosts: 192.168.1.1/24

home_intervall: 10

Hosts bitte auf die jeweiligen Gegebenheiten im eigenen Netzwerk anpassen. Der letzte Eintrag ist die Zeit in Minuten, bis die Geräte erneut abgefragt werden.

Alle gefundenen Geräte werden in einer Datei known_devices.yaml abgelegt und folgen dieser Notation:

 

192168140:
#name: 192.168.1.40
name: marko
mac: 50:B7:3k:B2:B6:3E
picture:
track: yes
hide_if_away: no

Der kommentierte Eintrag zeigt, wie Namen für die Anzeige im UI angepasst werden können. Per Default sind die IP Adressen die Namen.

Sollen bekannte Geräte nicht weiter auf Anwesenheit getrackt werden, den Eintrag auf no setzen, bzw, die letzte Zeile auf yes, wenn nur anwesende Geräte im UI dargestellt werden sollen.

Tip für die configuration.yaml: Die Doku sagt zwar aus, dass mehrere Trackingmethoden gleichzeitig verwendet werden können, aber denkt daran, dass die tracker Einträge dann durchnummeriert werden müssen, sonst greift jeweils nur der letzte…

Hausautomatisierung Sammelthread

In einem Blog wie diesem darf wohl auch das Thema Hausautomatisierung und dessen Technikspielereien nicht mehr fehlen. Bereits eine kurze Internetsuche zeigt, dass das ein Riesenfeld ist, in dem man Unmengen von Zeit und noch mehr Geld versenken kann und trotzdem nie Licht am Ende des Tunnels sieht. Es ging mir jedenfalls so, dass mich jeder Ausschnitt eines Themas, bei der Recherche zu immer neuen Themen, neuer Hardware, x verschiedenen Softwarelösungen und Dutzenden von Blogs und Tutorials mit Argumenten für und gegen Alles geführt hat…

Weil ich trotzdem Lust habe, mich damit zu beschäftigen wird hier im Laufe der Zeit eine Reihe von Artikeln entstehen, die sich mit dem Thema beschäftigen. Dieser Post wird dabei so eine Art Überblick bleiben, den ich ständig fortschreibe und der auf die weiteren Beiträge verweist. So fügen sich die Fragmente vielleicht etwas besser zusammen, als nur über die Tags und Kategorien…

Im Vordergrund wird dabei vor allem Spaß und Neugier stehen, ob also jemals eine „Komplettlösung“ dabei herausspringt, weiß ich jetzt noch nicht…

  1. Grundlagen und Informationsquellen
  2. Was soll erreicht werden
  3. verwendete  bzw. getestete Software
    1. Steuerungszentrale Home Assistant
    2. Message Broker
  4. verwendete Hardware
  5. Sonstiges

Raspberry UPiS Modul ersetzt nicht vorhandenen Hardware Powerswitch

Nachdem ich mich nun intensiver mit den unterschiedlichen Arten der unterbrechungsfreien Stromversorgung beschäftigt habe, scheint mir das UPiS Advanced Modul das Mittel der Wahl für meine Zwecke zu sein…

Für den geplanten Einsatz im Kfz Bereich benötige ich dort vorhandene die Möglichkeit einer flexibleren Stromversorgung, als die übliche Ausgangsspannung der Steckernetzteile, die man an den Pi anschließt. Darüber hinaus bringt das Modul einen Ein-Ausschalter mit, der es ermöglich, den Pi bei einer Stromversorgung über das Modul Ein und Aus zu Schalten.

Eine umfangreichere Liste an Features findet sich im FAQ auf Pimodules.com. Dort werden beispielsweise Aussagen zur Akkulaufzeit gemacht, zur Anschlussmöglichkeit eines Solarpanels, sowie vieler anderer interessanter Aspekte.

Sobald ich eines der Dinger mein Eigen nenne und im Einsatz habe, werde ich hier weiter dazu bloggen.

Power Supply Lösungen für Raspberry Pi

Kurzmitteilung

Für meine Idee, aus dem Raspberry Pi einen Car PC zu bauen, gab es unter anderem noch den großen Haken, dass eine unabhängige Stromversorgung her musste, falls die Zündung mal aus ist und das Gerät noch ordentlich heruntergefahren werden soll.

Durch folgende Produkte, auf die ich heute gestossen bin, bin ich dem Ziel ein Stück näher gekommen:

Pi Supply Switch Kit als Ein- Aus-Schalter

Rasperry Pi USV mit 9 Volt Block

UPiS Advanced Module mit Akku und Ladefunktion

passendes Gehäuse für UPiS Module

Weiter gehts… :-)

Update: Wer etwas übr die UPiS Module nachlesen möchte, dem sei dies hier ans Herz gelegt. Die beiden angebotenen Module unterscheiden sich im Übrigen nicht nur durch die Akkukapazität. Das breitere Spektrum angeschlossener Stromquellen wird nach meinen Recherchen nur in der Advanced Variante unterstützt, welche damit für den Kfz-Bereich besser geeignet scheint.

What´s App und der Messenger Dschungel

Der Kauf durch Facebook hat die What´s App Fangemeinde ganz schön durcheinandergebracht. Eigentlich erstaunlich, denn objektiv betrachtet hat sich erstmal nicht viel verändert. Vorher war es ein Produkt mit eher geringem Privatsphäre- Datenschutz und es war kein großes Geheimnis, dass alles, was ich auf diesem Wege verbreite, sehr schnell aus meinem Einflussbereich entschwindet. Wo meine Inhalte und Informationen über meine Gruppen, Kontakte usw. landen und wer darauf Zugriff bekommt, war für mich nicht nachvollziehbar.

Und jetzt? Jetzt ist es genau so. Dass die Nähe zu Facebook größer geworden ist, macht meines Erachtens nur einen marginalen Unterschied aus. Eine gewisse Awareness, was man wie in welchen Kommunikationskanal gibt, sollte auch vorher schon dagewesen sein.

Wenn man jetzt dennoch einen Wechsel machen will, ist die Welt nicht unbedingt leichter geworden. Aufgrund der vielen Alternativen, sind nicht nur die Produktfeatures wichtig, sondern auch die Verbreitung in meinem eigenen Umfeld.

In den ersten Tagen nach Bekanntwerden des Kaufs gab es Meldungen, Empfehlungen, Bewertungen für und gegen alles. Ich persönlich habe mich noch nicht entschieden, was ich tue, bis dahin bleibe ich bei What´s App und schnuppere mal in diese, mal in jene Alternative rein. Wer Lust hat mit zu testen, kann sich gerne bei mir melden, denn keines der Tools macht ohne Kontakte wirklich Sinn.

In diesem Artikel geht es nur darum, eventuell die ersten Eindrücke zu notieren und meine persönliche Laienmeinung zum grundsätzlichen Thema, mehr nicht… Hin und wieder werde ich den Artikel vielleicht fortschreiben.

Wer umfangreichere Bewertungsartikel mit Bezug zu einzelnen Produkten lesen möchte, sollte diesen hier versuchen, oder sich bei netzpolitik.org umsehen.

Auch die Stiftung Warentest hat zwischenzeitlich Tests angestellt und Informationen veröffentlicht, das kann hier nachgelesen werden… Ob alle diese Darstellungen gut oder schlecht, richtig oder falsch sind, das muss jeder für sich selbst entscheiden, ich bewerte das hier nicht!

Ohne auf ein Produkt im Einzelnen einzugehen, hat die Suche nach alternativen Tools folgende größere Nachteile für mich, die als Argumente in eine Auswahl einbezogen werden sollten:

  1. Produkte mit closed Source Anteilen. Alle, die jetzt laut nach Sicherheit, Privatsphäre und Veschlüsseldung schreien, wissen im Grunde auch nicht, wie es genau unter der Haube aussieht. Die Möglichkeiten es selbst zu überprüfen, so man das kann und will, sind nicht gegeben.
  2. Wenn ein kommerzieller Anbieter das Produkt vertreibt und meinetwegen auch kostenlos anbietet, kann es dennoch schnell aufgekauft werden, wenn es nur populär genug ist.
  3. Erfahrung und Reife: Viele der Alternativprodukte  sind relativ jung in ihrer Projektgeschichte, manche gehen insofern eigene Wege, dass sie Protokolle von Grund auf neu entwickeln usw. Das ist nicht per se falsch und ohne diese Menschen würde es keine technische Innovation geben. Es bedeutet allerdings, dass man wenn man tatsächlich auf Sicherheit und Stabilität bedacht ist, hier auch eine gewisse Vorsicht walten lassen muss. Beispiele dafür, wie schwer es ist, Produkte zu einer gewissen Reife zu bringen und trotz intensiver Bemühungen und langjähriger Erfahren trotzdem immer wieder mit Sicherheitslücken konfrontiert zu sein, gibt es reichlich.
  4. Fragementierung und Usability: Wer die Wahl hat, hat die Qual… Schon jetzt kämpfen ein halbes Dutzend mehr oder weniger prominente Programme um die Gunst der Nutzer, weitere werden folgen, gerade  auch im Open Source Bereich. Eine Fragmentierung, wie sie beispielsweise bei der stetig steigenden Zahl an Linux Distributionen zu beobachten ist, geht in der Regel zu Lasten der Nutzer. Der will nicht unbedinngt Vielfalt, sondern in erster Linie Nutzen und zwar möglichst schnell und möglichst einfach. Unterschiede zwischen den einzelnen Programmen festzustellen und herauszufinden, welches den eigenen Bedarf am Besten deckt, ist für den 0815 Benutzer nur schwer möglich, erst recht, wenn es dabei um Dinge wie die Darstellung der gewählten Verschlüsselungs- und Kommunikationsmethoden geht.Vor lauter Technik bleibt Benutzbarkeit und Aussehen oft auf der Strecke. Das zeigen bereits erste Stichproben der einzelnen Tools, wenn man mit Begrüßungs- und Einrichtungsbildschirmen und den Hilfeseiten konfrontiert wird. Randnotiz: Bei der Suche nach dem Abdeckungsgrad von Übersetzungen bin ich auf Transifex gestoßen einer Communnity Plattform für Softwareübersetzungen in alle möglichen Sprachen. Hier kann jeder mitmachen, der Lust hat, gerade für Nichttechniker eine Möglichkeit an einem Projekt mitzuwirken…Und auch hier gilt: Sicherheit bremst… Zumindest beim Komfort, dazu braucht man sich bei den verschiedenen Anbietern nur den Austasch von Schlüsseln u.Ä. anzusehen. Das Tool kann mir eben als Benutzer nicht alles abnehmen, wenn ich nicht möchte, dass meine Kontakte zentral gespeichert, mit den Kontakten anderer abgeglichen und auf Gemeinsamkeiten überprüft werden, die man mir vorschlägt.

Mein Fazit bisher: Wem es um die Sicherheit und den Datenschutz geht, der überlege gut, was wirklich für ihn wichtig ist und wie er das ihn seine Toolauswahl oder die Wahl alternetiver Kommunikatiosnwege einfließen lässt.

Langfristig wird die Aufmerksamkeit vermutlich wieder sehr schnell abnehmen, wenn sich der Nutzer in seinem Bedürfnis nach Komfort und Einfachheit nicht mehr wiederfindet, lässt das Interesse an einer Sicherheit, die ohnehin nie vollständig gegeben ist, auch wieder nach…

Just my 2 cents.