Jump to content

Mit Tinkerforge und OpenHAB zum SmartHome


Recommended Posts

Theo der hier unter openhab Integration seine Arbeit zur Erstellung der OpenHAB Tinkerforge Binding vorstellt, hat mich angeregt mein Tinkerforge & Openhab Projekt ebenfalls hier vorzustellen.

 

 

Aufgabenstellung:

Ist es möglich mit Tinkerforge Komponenten und OpenHAB ein „Smart-Home“ zu realisieren ? (JA)

 

 

Nachdem ich mir nicht sicher war ob alles so funktioniert wie ich es mir vorstellte suchte ich ein Objekt an dem ich meinen Ideen umsetzen konnte. Da meine ca. 60 Jahre alten Gartenhauses dringend elektrisch modernisiert werden musste, war klar dass dies meine Smart-Home Spielwiese werden wird. Dort läuft nun seit Sommer 2016 eine Smart-Home-Steuerung die Hauptsächlich auf Tinkerforge Komponenten beruht.

 

 

 

Vorab machte ich mir eine Anforderungsliste um eine „Materialschlacht“ zu vermeiden

>> alle Leitungen müssen so verlegt sein dass bei scheitern des Projektes andere Komponenten eingesetzt werden können.

>> alle Lichttaster-Leitungen werden zu einem Sammelpunkt (großer Abzweigkasten) geführt

>> Beleuchtung im Gebäude und der Terrasse 12V LED

>> alle Leuchten-Zuleitungen werden zu einem Sammelpunkt (großer Abzweigkasten) geführt

>> alle gesteuerten  230V Verbraucher werden zu eine Sammelpunkt geführt (Verteilerkasten)

>> ein 12V Netzteil (100VA, Kurzschluss Sicher, > 90% Wirkungsgrad) für Steuerung und Innenbeleuchtung um später einfacher eine USV integrieren zu können.

>> separate Sicherungen für 12V Beleuchtung und Steuerung

>> GANZ WICHTIG, getrennte Verteiler für 12V Steuerung und 230V Lastverbraucher !!!

>> 230V Verbraucher werden über Koppelrelais 12V/ 230V angesteuert

>> es dürfen keine Komponenten eingesetzt werden die einen Cloud-Zwang des Hersteller voraussetzten (ich bin kein Fan von Cloudzwang )

>> das System meldet Event von innen nach außen (kein direkter Remotezugriff von außen)

>> die zur Umsetzung benötigte Technik  muss energiesparend sein

>> alle Basiskomponenten (z.B. Licht) müssen auch ohne App oder Browser bedienbar sein

>> die verschiedenen Komponenten sollen Event abhängig gesteuert werden (z.B. Gartenlicht schaltet sich ein wenn es dunkel ist und das Gebäude abgeschlossen wird, gleichzeitig sollen alle nicht mehr benötigten Verbraucher abschalten werden)

 

Lösung:

- Steuerrechner = Pi 3

- Netzwerk&Internetzugang = AVM 7390

- Technische Schnittstelle zur Smart-Home-Software & Pi = Tinkerforge (siehe Komponentenliste)

- Smart-Home Software = OpenHAB 1.9

- Kommunikation nach außen Telegram-App & Mail (beides sind Funktionen die per Binding in OpenHAB eingebunden werden können)

 

Tinkerforge Stückliste:

1 x Industrial Digital In 4 Bricklet

5 x Industrial Quad Relay Bricklet

2 x IO-16 Bricklet

1 x LCD 20x4 Bricklet

1 x Temperature Bricklet

2 x Humidity Bricklet

1 x PTC Bricklet

1 x Multi Touch Bricklet

1 x Motion Detector Bricklet

2 x Dual Relay Bricklet

 

6 x Master Brick

1 x Step-Down Power Supply

 

 

Veränderung zum Ursprünglichen Konzept

Während der frühen Produktivphase  kam es zu einigen Problemen, daher wurde noch im Sommer 2016 einige Anpassungen durchgeführt.

1) trennen der Spannungsversorgung von Steuerung (PI & Tinkerforge), Innenlicht & Koppelrelais auf 1x20VA Netzteil für Steuerung und PI, und 1x100VA Netzteil für Beleuchtung & Koppelrelais.

2) Austausch der Feinsicherungen der 12V Beleuchtung durch Sicherungsautomaten (spezielle Bauform für Verteiler Aufreihklemmen 12V)

 

 

Ursprünglicher Funktionsumfang der Smart-Steuerung (OpenHAB)

 

1) Steuerung aller Leuchten innerhalb und außerhalb des Gebäude (im Gebäude 12V, außerhalb über Koppelrelais 230V), mit automatischen Abschalten der Beleuchtung / Musik / Gartensteckdosen wenn das Gebäude abgesperrt wird. Wenn zum Zeitpunkt des absperren bereits die „Dämmerung angebrochen ist, soll per Timer das Terrassenlicht und Gartenwegbeleuchtung eingeschaltet werden (variabel konfigurierbare Zeit).  Oder umgekehrt, wenn die Gebäudetüre aufgesperrt wird und es noch dunklen ist, automatisches Einschalten der Vorraumbeleuchtung.

Die Dämmerung wird über einen astronomischen Kalender in OpenHAB ermittelt.

 

2) Lüftung/Frostschutz: Wenn die Raumtemperatur über einen  variabel definierter Wert steigt und die Außentemperatur (an der Nordseite, dort befindet sich die Lüfter-klappe für an Ansaugluftstutzen) kühler ist. Wird die Lüftung ein oder ausgeschaltet.

Wenn die Luftfeuchte (Absolut) im Gebäude höher ist als außerhalb des Gebäude und die Luftfeuchte innen einen variabel definierten Wert überschreitet. Wird die Lüftung  ein oder ausgeschaltet. Sollte die Innen Luftfeuchte den Schwellwert überschreiten jedoch die Absolute Luftfeuchte Außen höher als Innen sein, wird nicht der Lüfter sonder ein elektrischer Luftfeuchter aktiviert.

Für die Berechnung der Absoluten Luftfeucht habe ich eine Konzept-Idee aus dem KNX Forum angepasst. Die Lüftungsdauer variiert mit der Außentemperatur, um ein zu starkes auskühlen des Gebäude zu verhindern. Maximale Lüftungsdauer pro Stunde = 30 min (Hintergrund hierfür, es dauert ca. 30 min bis sich die Luft nach dem Lüften wieder gesättigt hat.)

Wenn die Außentemperatur unter 5 Grad liegt und im Gebäude der variabel einstellbarer Schwellwert für die maximale Luftfeuchte überschritten wird, wird ein kleiner elektrischer Luftfeuchter einschalten (ist zwar technisch vorgesehen, der elektrische Luftfeuchter ist nicht angeschlossen)

Frostschutz:

Wenn die Raumtemperatur unter 8 Grad fällt wird ein Frostwächters aktiviert um die Temperatur nicht zu stark abfallen zu lassen. Wenn das Gebäude nicht abgesperrt ist, kann die Raumtemperatur auch höher eingestellt werden (über das Bedienfeld). Bei Abschließen des Gebäude werden wieder die Frostschutz

Parameter aktiviert (8 Grad Celsius).

 

Um Parameter für Luftfeuchte / Temperatur innen …. ohne PC oder App verändern zu können, wurde das LCD 20x4 und das Multi-Touch (mit 3x4 Tastenfeld) als Bedienfeld konfiguriert. Über diese Bedienfeld können auch verschiedene Andere Parameter über unterschiedliche Menüpunkte verändert werden.

 

Erweiterungen die sich aus dem Funktionsumfang den vorhandenen  Tinkerforge - Komponenten und verschiedener Funktionen innerhalb von OpenHAB ergaben.

1) Alarmanlage mit Fenster, Türkontakten & Glasbruchsensoren, sowie innen Bewegungsmelder. Alarmmeldung über Telegram-Messenger und Email,  Alarmhorn und Signallicht Außen .

Das Alarmsystem wird über das Bedienfeld in Standby versetzt und über einen Kontakt bei abschließen der Eingangstüre aktiviert. Wenn nicht alle Fenstern geschlossen sind, kann das Alarmsystem nicht aktiviert werden (dann erfolgt ein Warnton). Mit dem „scharf-schalten des Alarmsystem wird auch eine Videoüberwachung mit Bewegungserkennung aktiviert, diese läuft momentan als eigenständiges System über MotionEyOS das auch auf eine Pi installiert ist. Das "scharf-schalten" des Alarmsystem wird durch eine Nachricht per Telegram-App bestätigt. Das Ausschalten des Alarmsystem kann nur über Pin-Eingabe am Bedienfeld erfolgen. Wenn das Alarmsystem online ist und ein Fenster / Tür / Glasbruchkontakt oder der Bewegungsmelder aktiviert werden, wird ein Voralarm per Telegram-Messenger ausgelöst. Wenn nicht binnen einer definierten Zeit die Anlage per Pin deaktiviert wird löst der Laut Alarm aus und es folgen weiter Telegram Nachrichten. Pin-Fehleingaben führen zu weiteren Telegram Meldungen. Nach einem Stromausfall schaltet sich das Alarmsystem automatisch ein auch hier wird eine Telegram Nachricht gesendet.

 

2) Ein 12V Rauchmelder mit Wechsler-Kontakt signalisiet über das „Industrial Digital In 4“ Bricklet dem OpenHAB System den Feueralarm. Über eine Rule wird dann lauter Alarm ausgelöst und Telegram & Mail-Nachrichten versendet.

Hinweis: Wenn OpenHab als Service auf einem Linux-System läuft und es eine MP3 Datei abgespielt werden soll, müssen die entsprechenden User (Service Accounts) sudo rechte besitzen.

 

3) täglicher Statusreport (dieser diente Ursprünglich zur Kontrolle ob das System Störungsfrei läuft), liefert Daten wie „Status Alarmsystem“, Status Rauchmelder, Aktuelle Temperatur / Luftfeuchte Innen & Außen, tägliche Maximal&Minimal Temperatur&Luftfeuchte innen und außen (immer gerechnet von einer Statusmeldung zur nächsten). Die Statusmeldung wird immer zum Zeitpunkt des Astronomischen Sonnenuntergangs gesendet. Die Max-Min Werte werden nicht über über simpel Variablen gespeichert.

 

4) Temperaturüberwachung des Pi: Im original  OpenHAB-Forum habe ich eine Anleitung gefunden wie man die GPU und CPU Temperatur des Pi auslesen kann. Abgefragt wird dies per EXEC-Binding durch OpenHAB. Bei Schwellwert Überschreitung wird ein Mini-Lüfter eingeschaltet und einen Alarmmeldung per Telegram gesendet.

 

 

Bedienung des System ohne Webschnittstelle oder App möglich:

 

Licht kann entweder per WebInterface oder klassisch über die Lichttaster ein und ausgeschaltet werden. Gartensteckdosen und Wasserpumpe können nur per Taster und nicht per Web-Interface geschaltet werden (Hintergrund ist, dass hier verschiedene Rule's Einfluss auf diese Komponenten haben und eine Fehlbedienung verhindert werden soll (z.B. Wasserpumpe und Außensteckdose müssen abgeschaltet sein wenn die Alarmanlage online ist, wird auch über diverse Rule's laufend überwacht). Es ist aus Sicherheitsgründen nicht möglich über das Webinterface die Alarmanlage ein oder aus zu schalten, daher sind alle hierfür benötigten „Items“ nicht auf der Webinterface sichtbar.

 

Das war jetzt eine Übersicht was in den ca 1,5 Jahren zwischen der Idee und dem Einbau im Sommer 2016 so alles an Smart-Home Rule entstanden sind.

Für ein Gartenhaus sicher ein technischer Overkill, mir ging es aber darum, was machbar ist. Ein Gartenhaus ist sicher kein Wohnhaus, aktuell Teste ich mit Openhab2 und der RS485 Master Extension ob und wie man auch mit dezentral aufgebauten Komponenten Arbeiten kann (mit der LAN Extension ist es auf jedem Fall möglich.

 

Das Openhab System ist im Sommer 2016 im Gebäude produktiv genommen worden und läuft seit gut 2,5 Jahren ohne Änderung stabil und ohne Ausfälle. Das ganz hat mich ermutigt ein weiteres Projekt zu starten, hier geht es um Alarm-Meldung der Heizung und einer Kellerlüftung 

Aktuell ist dies jedoch auf hold bis das Bindings für die neue Openhab2 Version alle Tinkerforge Komponenten unterstützt die ich benötige.

Ebenfalls in Planung ist Umstellung der aktive Openhab 1.9 Installation im Gartenhaus auf die Version 2. Dies wird auch dazu dienen die Ganzen Rule's zu konsolidieren und zu vereinfachen.

 

Sollte Euch meine Projekt gefallen haben und Ihr noch weiter Informationen wünscht meldet Euch einfach.

Link zu diesem Kommentar
Share on other sites

Sehr cool! Wahnsinn.

 

Eine Frage hätte ich spontan: das IO-16 und das PTC-Bricklet, welche Aufgaben übernehmen die?

Ach und noch eine: wie schaffst du es alle Eingabemöglichkeiten mit 12 Tasten umzusetzen? Gibt es da eine Menu-Wechsel-Taste? Deine Rules würden mich schon interessieren - andere vermutlich auch. Hast du schon mal darüber nachgedacht, das in ein GitHub-Repo zu packen? Oder stehen deine Pins in der Rule, gibt es da überhaupt andere Möglichkeiten?

 

Auf jeden Fall vielen Dank fürs Teilen.

 

Gruß,

Theo

 

Link zu diesem Kommentar
Share on other sites

Hallo Theo,

es freut mich dass Dir mein Projekt gefällt.

 

Zu Deinen Fragen:

 

Die Ports der beiden 16-Fach-IO dienen als Eingänge (elektrotechnisch) für Öffner / Schließer von Lichttastern, Fenster und Türkontakten, Schwimmerschalter …

Somit kann Licht auch ohne APP oder Webbrowser ein und ausschalten …

 

Der PTC dient zum Messen der Außentemperatur. Immer ein Humidity -Bricklet und ein „Temperatur“-Bricklet (im Gebäude der normale Temperatur -Bricklet, außerhalb ist es der PTC) liefern die Daten um die Absolute Luftfeuchte (innen und außen) zu berechnen.

 

Meine jetzige Konfiguration hat einen Schönheitsfehler (dieser ist mir erst in der Testphase aufgefallen). Der PTC Temperatur Fühler und das Temperatur Briklet liefern teilweise Werte mit bis zu 1 Grad unterschied. In der aktuellen Version habe ich dies per Holzhammer gelöst in dem ich einen festen Offset hinterlegt habe. Ähnlich verhält es sich auch bei den Humidty Bricklets. In der V2 soll dies über eine „Kalibrierfunktion“ genauer gelöst werden. Bei Berechnung der absoluten Luftfeuchte als  Basis für die Luft-Entfeuchtung Steuerung muss hier korrigierend eingegriffen werden.

 

Menü-Funktion mit dem LCD 20x4:

Ursprünglich war der Plan alle Funktionen über die 4 Tasten des LCD 20x4 zu steuern.

Der erste Taster (links) des Display dient dazu um in die Menü-Hauptfunktion zu gelangen. Wenn man sich noch im Startmenü befindet erreicht man mit den restlichen 3 Tasten die wichtigsten Menüpunkte / Funktionen wie Frostschutz / Lüftung …..

 

Wenn man die „Menü-Taste“ betätigt gelangt man in die verschiedenen Submenüs (z.B. Alarmsystem, …..)

Nachdem ich im Laufe der Entwicklung immer mehr veränderbare Variablen bedienen wollte, stieß ich an die Grenzen des LCD 20x4 mit seinen 4 Tasten.

Um das ganze auch wieder besser bedienen zu können, führte ich eine direkte Menüauswahl per Nummer ein (Menü 00-13). Die Eingabe erfolgte über das Multi-Touch.

 

Um eine „versehentliche“ Bedienung zu verhindern, muss man erst das Display mit einer der 4 Tasten des LCD 20x4 aktivieren (die Hintergrundbeleuchtung des Display dient als „boolean“ ob Eingaben des Multi-Touch genutzt werden sollen oder nicht). Für die Hintergrundbeleuchtung läuft ein Timer der sich verlängert wenn eine Taste betätigt wird. Wenn ca 20 Sekunden keine Eingabe erfolgt, wird das Display abgeschaltet und somit auch keine Eingaben des Multi-Touch mehr ausgewertet.

 

Die 12 Channel des Multi-Touch belegen die Ziffern 0-9 und die Zeichen * und  #.

 

Zum bestätigen einer Zahlen/Zifferneingabe muss man 2 x die * - Taste betätigen. Soll das letzte Zeichen der Eingabe gelöscht werden muss 1 x die # - Tastet betätigt werden. Wenn die komplette Eingabe gelöscht werden soll, muss man 2 x die # Taste betätigen.

 

Je nach Menü und dessen Funktion, können verschieden lange (und auch im Wert begrenze) Zahlen eingegeben werden.

Beispiel : Bei Änderung der Raumtemperatur können nur 2-Stellige Werte in einer Range von 5-20 (Grad Celsius) eingegeben werden. Hingegen bei die Pin-Eingabe (System-Parameter oder Alarmsystem) kann eine bis zu 18 Stellige Zahl eingegeben werden.

Randbemerkung: Bei Fehleingabe der Pin wird immer ein stiller Alarm ausgelöst

 

Zum Thema Github: Für mich ist es das erste mal, daß ich aktiv in einem Forum „Poste“, daher möchte ich das ganze langsam angehen lassen.

 

viele Grüsse

 

Stefan

 

 

Link zu diesem Kommentar
Share on other sites

So sieht mein Bedienfeld aus

 

Basis:

1x Materbrick

1x Multi-Touch

1x 20x4 LCD

1x Temperatur-Bricklet (nicht sichtbar)

1x Humidity-Bricklet (nicht sichtbar)

 

In der 4-ten Zeile sieht man die Menue-Punkte die beim Einschalten des Display angezeigt werden. Weiter werden noch einige System Informationen, wie Innen / Außentemperatur & Luftfeuchte .... angezeigt.

 

 

 

 

Bedienfeld-V1.thumb.jpg.51f90a9a962d5394b12e498c0745f2fc.jpg

Link zu diesem Kommentar
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...