Es ist so weit die neue Version (V1.0) des SmartHome yourself Systems steht nun endlich bereit.

Im Downloadbereich der Projekt-Homepage findet Ihr einen Link zum aktuellen SD-Karten Image, welches eine vorinstallierte Haussteuerung incl. aller neuen Features beinhaltet. Das Image habe ich zwar mit einer 8GB-SD Karte erstellt, da dies aber bei einigen Usern beim Beta-Image öfter zu Problemen geführt hat, da es für viele 8GB-Karten scheinbar zu groß ist, rate ich der Einfachheit halber zur Verwendung einer mindestens 16GB großen SD-Karte. Sobald die PI-Cam bei Abwesenheit als Überwachungskamera dienen soll, macht es eh Sinn, etwas mehr freien Speicher einzuplanen.

Das meiste der Neuerungen habe ich ja bereits im „500-Abos Video“ grob vorgestellt und im letzten Posting auch noch mal aufgelistet. Ich werde hier aber trotzdem noch einmal auf alle Punkte im Detail eingehen.

Wem das alles zu viel zu lesen ist, der findet am Ende dieses Beitrags auch das Video zum Release, in dem ich alles noch einmal zusammengefasst vorstelle.

 

Zuerst einmal, was gibt es neues?

– Neue dynamische Parameter
Klingt erst mal gut, aber was ist damit gemeint? Bisher waren eigentlich nur zwei Parameter zum Schalten von Geräten möglich. Und zwar die von meinen Funksendern verwendeten Parameter  „schalte“ für die Geräte-ID und „dimm“ für die Helligkeitsstufe der Dimmer (falls fürs Gerät aktiviert).

Ich habe mir einige Gedanken dazu gemacht, wie man das ganze so erweitern kann, dass man nahezu jede eurer Ideen dynamisch ohne neuen Programmieraufwand ins System integrieren kann. Dabei heraus gekommen ist folgender Ansatz.

Zuerst einmal habe ich Parameter-Arten eingeführt, mit denen für jeden Parameter angegeben wird, um was für einen Datentyp es sich handelt (Zahl von/bis, Text, feste Werte…).

Da die benötigten Parameter von den verwendeten Arduino-Sketches (Also den Sendern) vorgegeben werden, und jegliche Variation ermöglicht werden sollte, habe ich dazu noch Sender-Typen eingeführt. Diese definieren, welche Parameter für eine bestimmte Art von Sender notwendig sind und welchen Datentyp diese erwarten. Diese Sender-Typen kann man nun in den Sender-Einstellungen im Bereich „Einstellungen-Basis“ den einzelnen Sendern zuweisen, und somit bestimmen, welche Parameter an das Gerät übertragen werden. Gleichzeitig legt man dadurch fest, welche Einstellungsmöglichkeiten für die Geräte in den Geräte-Einstellungen bzw in der Steuerung zur Verfügung stehen sollen.

Diese Sender-Typen könnt Ihr natürlich beliebig viele selber im System hinzufügen und das System somit jeder Zeit erweitern, wenn die existierenden Parameter-Kombinationen nicht ausreichen. Das ist aber nur notwendig, wenn ein neuer Sender mit anderen Parametern integriert werden soll. Wenn Ihr nur einen zweiten Funksender ins Netz einbinden wollt, da der erste z.B. mit der Reichweite des Funksignals nicht ausreicht, reicht es schon einen zweiten Funksender vom selben Sender-Typ in den Basiseinstellungen anzulegen. Heist, diese Funktionalität richtet sich eher an die User unter Euch, die Ihre eigenen Arduino-Projekte in die Haussteuerung integrieren wollen.

 

– Neue Editoren
Da durch die neue Parameter-Logik beliebige Kombinationen und vor allem auch eine große Anzahl an Parametern je Gerät denkbar sind, wollte ich eine Möglichkeit bieten, hier individuelle Steuerungs-Masken für die Geräte zu ermöglichen. Mein Testobjekt war in dem Fall der RGB-Controller den einige vielleicht auch schon aus meinen Videos kennen.

Dieser erwartet ja z.B. 3 Parameter (red, green, blue vom Typ Zahl 0-255). Diese Auswahl von Zahlen ist aber doch sehr umständlich, wenn man eigentlich ja eine Farbe auswählen möchte. Daher kann man nun für alle Geräte, die mindestens 3 Parameter besitzen die noch keinem Editor zugeordnet sind, diesen RGB-Farbwahl-Editor zuweisen. Diese Zuordnung ist je Gerät individuell möglich. Derzeit werden die Parameter-Arten noch nicht auf korrektheit geprüft. Hier müsstet Ihr selber noch ein wenig aufpassen was Ihr einstellt. Diesbezüglich werde ich aber sicherlich noch die Einstellungen optimieren und auch weitere Editor-Alternativen nachreichen.

Diese Einstellungen sind Anfangs evtl. etwas verwirrend. Daher vielleicht nur als kurze Hilfestellung kurz und knapp formuliert: Editoren und Sender-Typen haben beide unabhängig voneinander frei definierbare Parameter. Die Editoren Senden Ihre Parameter weiter, während hingegen die Sender-Typen die Parameter definieren, die vom Sender in Empfang genommen werden. In den Geräteeinstellungen muss man also bei der Zuordnung eines Editors diese beiden Seiten einander zuordnen, damit die in der Steuerung eingestellten Werte auch richtig an den Sender des Gerätes übermittelt werden können.

Das klingt jetzt erst einmal furchtbar kompliziert. Ich denke aber, wenn man es einmal gemacht hat, geht es danach recht leicht von der Hand. Ansonsten habe ich diese Einstellungen noch mal mit Fallbeispiel in eine Anleitung verpackt in der Ihr das ganze jeder Zeit noch einmal ausführlich nachlesen könnt.

 

– Steuerung, Shortcuts, Zeitplan an neue Logik angepasst.
Die Bereiche Steuerung, Shortcut und die  Zeitplanung wurden in der Desktop- so wie Mobile-Ansicht an die neue Parameter-Logik angepasst. In der Steuerung werden die Daten nun über Objekte in einer Form übergeben und nicht mehr per Link. Dadurch sind die Buttons nicht mehr bunt und etwas kleiner. In den Shortcuts bekommt man bei aufgeklappter Liste der Elemente die hinterlegten Parameter-Werte mit angezeigt. 

 

– Refactoring / Performance
Die meiste Arbeit fand wohl immer noch „unter der Haube“ statt. Ich habe mich bemüht öffentliche Methoden die wesentliche Logik enthielten in Objekte zu packen wo es nur ging. Das ermöglichte gleichzeitig ein Caching von Objekten, um mehrfaches Ermitteln von Daten und Abhängigkeiten zu unterbinden. So wurde das ganze System mMn. noch einmal ein Stück schneller.

Was die Bedienung zusätzlich angenehmer macht, ist dass Schaltvorgänge nun im Hintergrund erfolgen und der Seitenaufbau sich dadurch nicht mehr verzögert bis alle Geräte geschaltet wurden. (Allerdings lassen sich neue Schaltbefehle wärend andere noch laufen derzeit noch nicht hinten einreihen. Da muss ich mir noch etwas zu überlegen)

 

– API vorbereitet und ersten Basis-Aufrufe implementiert
Damit alle, die vielleicht schon einmal darüber nachgedacht haben, eine App oä für die Haussteuerung zu basteln vielleicht schon einmal beginnen können, habe ich eine Schnittstelle vorbereitet, mit der man die ersten Daten aus der Haussteuerung in Form einer XML abfragen kann.

Hier einmal eine kurze Beschreibung von den bisher implementierten Funktionen:

Zuerst wird das ganze unterteilt in die Art der gewünschten Aktion:
– z.B. kann man Werte setzen [set] = sensor
 (zzt nur Sensorwerte, aber später vllt auch Einstellungen etc?)

– dann kann man Daten abrufen [get] = objects / shortcuts / crons / sender

– und es lassen sich Schaltvorgänge auslösen [switch] = object / shortcut

Die API ist erreichbar unter der Adresse: http://IP_DES_PI/api.php
Was man auslösen möchte legt man anhand von URL-Parametern fest.

Zum übermitteln von Sensordaten an den Server ruft man z.B. auf:
http://IP_DES_PI/api.php?set=sensor&sensorId=ID&sensorWert=WERT
Hierbei sind IP_DES_PI, ID und WERT durch die jeweiligen Daten zu ersetzen.

Eine ausführliche Anleitung zur API reiche ich schnellstmöglich nach. 

 

– Sprachsteuerung durch Amazon-Echo Unterstützung (HA-Bridge)
Ein weiteres neues Feature der Haussteuerung ist die integration der Sprachsteuerung über einen Amazon Echo. Dieses Feature war eigentlich erst für eine spätere Version geplant, aber nachdem ich von einem User die HA-Bridge empfohlen bekommen habe und diese zum testen einmal installiert hatte, ging alles andere fast wie von selbst. Daher möchte ich euch diese Funktion auch nicht länger vorenthalten.

Die HA-Bridge ist ein System, welches vom Echo als Philips Hue System erkannt wird. Es ermöglicht uns, eine Liste von Geräten anzulegen und zu jedem Gerät jeweils einen URL-Aufruf für AN, AUS und DIMM zu hinterlegen. Das man damit aber jedes Gerät immer mit der Haussteuerungs-Konfiguration von Hand abgleichen müsste, erschien mir aber etwas zu umständlich. Daher habe ich die Haussteuerung so erweitert, dass sie in der Lage ist, diese Konfiguration der HA-Bridge zu überschreiben. Somit wird, wenn es in den Basiseinstellungen aktiviert ist, die Bridge-Konfiguration mit den Geräten und zugehörigen URLs entsprechend den im System hinterlegten Geräten und deren notwendigen Parameter bei jeder Änderung überschrieben und neu gestartet. Dadurch kann nun jeder mit einem Amazon Echo seine Geräte ab jetzt auch mit einem Sprachkommando wie z.B. “Alexa, schalte Hauptbeleuchtung ein” schalten.

 

– Wie geht es jetzt weiter?
Leider habe ich ja doch nicht alle für die V1.0 geplanten Funktionen fertig bekommen. Eigentlich sollten schon mehr Editoren vorhanden sein, eine Infrarot-Steuerung für TV und Co war auch noch geplant und Meldungen über Schaltvorgänge, Fehler und Infos sollten eigentlich auch nicht mehr fest in der Seite auftauchen und diese verschieben, sondern als Popup-Meldung oder in einem festen Bereich erscheinen.

Da ich diese Punkte aber nicht bis zum Release der V2 verschieben möchte, werde ich wohl mindestens noch eine V1.1 nachliefern sobald die ersten neue Funktionen nach Release umgesetzt sind.

Infos zum aktuellen Stand und der Planung findet Ihr wie immer auf der Status-Seite des Projekts: 
http://status.smarthomeyourself.de

Da Ihr im Januar die Heizung als für euch wichtigstes neues Feature gewählt habt, werde ich parallel zu den kleineren Erweiterungen direkt nach dem Release auch dafür direkt die Arbeit beginnen. Ich werde mich bemühen ab jetzt kürzere Intervalle für neue Releases hin zu kriegen und diese dafür nicht mehr so voll zu packen. So bleibe ich auch etwas flexibler für eure spontanen Wünsche, damit Ihr nicht mehr so lange warten müsst.

 

Ich hoffe Euch gefällt das neue Release trotz des abgespeckten Umfangs und dass die Installationen bei euch Reibungslos verlaufen.

 

Und jetzt wünsche ich euch viel Spaß mit der neuen V1.

 

Hier gibts noch das Video zum Release:
[wpdevart_youtube]GrtSgMvyakw[/wpdevart_youtube]


Bei Links auf Amazon-Artikel handelt es sich um Affiliate-Links. In diesen Links wird meine Amazon-Partner-Id mit übergeben, wodurch ich eine kleine Provision für eure Käufe erhalte. Ihr zahlt natürlich das gleiche wie sonst auch.
Ich würde mich freuen, wenn Ihr bei eurer Bestellung die Links verwendet und mich so einfach und für euch kostenlos unterstützt, um weiterhin neue Projekte mit euch teilen zu können.

Vielen Dank für euer Verständnis und eure Unterstützung!


Daniel Scheidler

Da mein Vater bereits in der IT tätig war, wurde auch mein Interesse für diesen Bereich sehr früh geweckt. Mit 13 bekam ich meinen ersten Laptop mit dem ich den Einstieg in die Programmierung begann. (Das Codes abtippen am C64 lasse ich mal aussen vor) Und so nahm alles seinen lauf.

Im Jahr 2004 schloss ich meine Ausbildung als Fachinformatiker Fachrichtung Anwendungsentwicklung ab und bin seit dem als Java Fullstack Entwickler tätig. Damals noch im ERP Umfeld, heute im Medizinischen Bereich.

Auch meine Freizeit „opfere“ ich gerne der Technik. Hier widme ich mich sämtlichen Themen rund um Arduino, Raspberry, 3D Druck/Design, RC-Modellbau (Multicopter, Heli, Flugzeug, Autos) und anderen Handwerklichen Projekten.

Mit der Kernsanierung des Altbaus entstand die Idee, das Haus auf ein SmartHome umzurüsten. Nach dem Kostenvoranschlag des Elektrikers wurde schnell klar, dass ich hier selber ran muss, wenns bezahlbar bleiben soll.

In der Hoffnung weitere kreative Leute zu finden, die sich an dem Vorhaben beteiligen oder es einfach nur nachbauen möchten dokumentierte ich alles und stellte alle Quelltexte incl. Anleitungen online.

Und so entstand SmartHomeYourself.de.

V1.0 Release

Beitragsnavigation


Diese Webseite verwendet Cookies, um die Nutzung der Seite zu verbessern, den Erfolg von Werbemaßnahmen zu messen und interessengerechte Werbung anzuzeigen.
Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen.

Wenn Sie diese Website ohne Änderung der Cookie-Einstellungen verwenden oder auf "Akzeptieren" klicken, erklären Sie sich damit einverstanden.

Weitere Informationen zu den verwendeten Cookies und unseren Datenschutzbestimmungen finden Sie in unseren Datenschutzbestimmungen.

Schließen