Space Automation: Unterschied zwischen den Versionen

 
(28 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 10: Zeile 10:
 
[[Category:Hardware]]
 
[[Category:Hardware]]
 
[[Category:Software]]
 
[[Category:Software]]
 +
 +
== Vortrag ==
 +
 +
[[Benutzer:Schinken|Schinken]] hat über unsere Automatisierung an der [https://entropia.de/GPN14 Gulschprogrammiernacht 2014] einen Vortrag über die Spaceautomation gehalten:
 +
 +
'''Spaceautomatisierung - Wie man mit Software wie OpenHAB einen Space komplett per Web oder App steuerbar machen kann.'''
 +
* [http://media.ccc.de/browse/conferences/gpn/gpn14/gpn14_-_5853_-_de_-_medientheater_-_201406221300_-_spaceautomatisierung_-_schinken.html Aufzeichnung]
 +
* [https://schinken.github.io/talks/2014-06-spaceautomation/ Slides]
  
 
== Zielsetzung ==
 
== Zielsetzung ==
Zeile 30: Zeile 38:
  
 
Um den Space für jedes Mitglied steuerbar zu machen hat unser Mitglied [[Benutzer:xoquox|xoquox]] zwei 7 Zoll LélikTec Tablets in unseren Räumen installiert. Eines befindet sich in unserer Lounge (Host: brain), sowie eines in unserem Hackcenter (Host: pinky).
 
Um den Space für jedes Mitglied steuerbar zu machen hat unser Mitglied [[Benutzer:xoquox|xoquox]] zwei 7 Zoll LélikTec Tablets in unseren Räumen installiert. Eines befindet sich in unserer Lounge (Host: brain), sowie eines in unserem Hackcenter (Host: pinky).
 +
 +
Wir versuchen viele verschiedene Hardware zu verwenden, welche für ihren Bereich sehr gut funktioniert um diese dann mit OpenHAB unter ein Dach zu bekommen. Hierfür währen noch KNX-Geräte wünschenswert, da diese sehr gut in Stromkästen verbaut werden können.
  
 
=== Bindings ===
 
=== Bindings ===
Zeile 43: Zeile 53:
  
 
Das MPD-Binding verwenden wir um unsere [http://www.mopidy.com/ mopidy-spotify]-Installation steuern zu können. Hier gibt es in unserem Setup die Möglichkeit die Musik zu pausieren, sowie die Lautstärke zu regulieren
 
Das MPD-Binding verwenden wir um unsere [http://www.mopidy.com/ mopidy-spotify]-Installation steuern zu können. Hier gibt es in unserem Setup die Möglichkeit die Musik zu pausieren, sowie die Lautstärke zu regulieren
 +
 +
==== Onkyo ====
 +
 +
Mit diesem Binding steuern wir unseren Onkyo-Receiver, welcher als Medienzentrale in der Lounge steht. Hier wird z.B. beim Klingeln der Tür automatisch die Lautstärke des Receivers runtergedreht, aber auch beim Einschalten des Gerätes der dazugehörige Subwoofer per Funksteckdose geschalten.
 +
 +
==== Astro ====
 +
 +
Über die Lat/Lon des Hackerspaces ermitteln wir den aktuellen Sonnenstand und damit die Sunset/Sunrise-Zeit. Dadurch fahren wir nur unsere Rollos hoch, wenn auch noch hell drausen ist.
  
 
==== HTTP ====
 
==== HTTP ====
Zeile 56: Zeile 74:
 
==== HomeMatic ====
 
==== HomeMatic ====
  
HomeMatic ist ein Heizungssteuerungs-System von [http://eQ-3.de eQ-3 AG] das wir über [http://elv.de ELV] bestellt haben.
+
HomeMatic ist ein System von [http://eQ-3.de eQ-3 AG] das wir über [http://elv.de ELV] bestellt haben.
  
Das "HomeMatic" Setup ist schon das zweite System das wir in unserem Space verwenden. Ein erster Aufbau mit Produkten der MAX! Serie selben Herstellers wurde aufgrund des noch instabilen Bindings (wackelig) verworfen. Die "HomeMatic" Serie wird dank der größeren Community besser von openHAB unterstützt und es sind auch mehr Geräte als "nur" Heizungsthermostate verfügbar.
+
Das "HomeMatic" Setup ist schon das zweite System das wir in unserem Space verwenden. Ein erster Aufbau mit Produkten der MAX! Serie selben Herstellers wurde aufgrund des noch instabilen Bindings (wackelig) verworfen. Die "HomeMatic" Serie wird dank der größeren Community besser von openHAB unterstützt.
 +
 
 +
Wir verwenden von HomeMatic die Heizungsthermostate sowie die Funk-Rauchmelder. Im Test haben wir zudem ein 4-Fach-Funktaster.
  
 
==== MQTT ====
 
==== MQTT ====
Zeile 65: Zeile 85:
  
 
{|class="wikitable"
 
{|class="wikitable"
! topic !! body !! type !! description !! active
+
! topic !! QoS !! retained !! body !! type !! description !! active
 +
|-
 +
| psa/alarm || 1 || no || message || string || irc alarm message || active
 +
|-
 +
| psa/message || 0 ||  no || message || string || public service announcement message || active
 +
|-
 +
| psa/pizza || 1 ||  no || non empty value || string/number || irc pizza message || active
 +
|-
 +
| psa/sound || 1 ||  no || message || string || sound file located in nfs/music/ircSounds || active
 +
|-
 +
| psa/rick_me || 0 ||  no || message || string || just listen || active
 +
|-
 +
| sensor/door/frame || 0 ||  yes || open/closed || string || if the door is open or closed || active
 +
|-
 +
| sensor/door/lock || 0 ||  yes || open/closed || string || if the door is locked or unlocked || active
 +
|-
 +
| sensor/door/button || 0 ||  yes || pressed/released || string || if the door button is pressed || active
 +
|-
 +
| sensor/door/bell || 0 ||  yes || pressed/released || string || if the door bell rings || active
 +
|-
 +
| sensor/backdoor/lock || 0 ||  yes || open/closed || string || status of the backdoor lock || active
 +
|-
 +
| sensor/door/cnc || 0 ||  yes || open/closed || string || door server to cnc || active
 +
|-
 +
| sensor/door/restroom || 0 ||  yes ||open/closed || string || door server to restroom || inactive
 +
|-
 +
| sensor/button/hackcenter/0 || 0 || yes || pressed/released || string || Hackcenter Button-Panel Button #0 || active
 +
|-
 +
| sensor/button/hackcenter/1 || 0 || yes || pressed/released || string || Hackcenter Button-Panel Button #1 || active
 +
|-
 +
| sensor/button/hackcenter/2 || 0 || yes ||pressed/released || string || Hackcenter Button-Panel Button #2 || active
 +
|-
 +
| sensor/button/hackcenter/3 || 0 || yes ||pressed/released || string || Hackcenter Button-Panel Button #3 || active
 +
|-
 +
| sensor/door/hackcenter || 0 ||  yes || open/closed || string || door server to hackcenter || active
 +
|-
 +
| sensor/door/lounge || 0 ||  yes || open/closed || string || door server to lounge || active
 +
|-
 +
| sensor/co2/hackcenter || 0 || yes || CO² || int || co2 value of co2monitor || active
 +
|-
 +
| sensor/temperature/lounge/podest || 0 || yes || temperature || float || temperature || active
 +
|-
 +
| sensor/temperature/lounge/ceiling || 0 || yes || temperature || float || temperature || active
 +
|-
 +
| sensor/temperature/hackcenter/shelf || 0 || yes || temperature || float || temperature || active
 +
|-
 +
| sensor/temperature/hackcenter/co2monitor || 0 || yes || temperature || float || temperature || inactive
 +
|-
 +
| sensor/temperature/misc/cnc || 0 || yes || temperature || float || temperature || active
 +
|-
 +
| sensor/temperature/misc/restroom || 0 || yes || temperature || float || temperature || active
 
|-
 
|-
| psa/alarm || message || string || irc alarm message || active
+
| sensor/temperature/misc/rack || 0 || yes || temperature || float || temperature || active
 
|-
 
|-
| psa/pizza || empty || || irc pizza message || active
+
| sensor/temperature/misc/outside || 0 || yes || temperature || float || temperature || active
 
|-
 
|-
| secure/door/operate || open/closed || bool || Processes the sent operation. || -
+
| sensor/radiation/cpm || 0 || yes || radiation counts || int || counts per minute || active
 
|-
 
|-
| sensor/door/frame || open/closed || string || if the door is open or closed || active
+
| sensor/radiation/uSv || 0 || yes || micro-sievert (uSv) || float || radiation  || active
 
|-
 
|-
| sensor/door/lock || open/closed || string || if the door is locked or unlocked || active
+
| sensor/space/member/deviceCount || 0 || yes || member devices || int || member devices count || -
 
|-
 
|-
| sensor/door/button || pressed/released || string || if the door button is pressed || active
+
| sensor/space/member/names || 0 || no || member names || string || member names, comma separated, sorted a-z || -
 
|-
 
|-
| sensor/door/bell || pressed/released || string || if the door bell rings || active
+
| sensor/space/member/present || 0 || yes || member count || int || member count present || active
 
|-
 
|-
| sensor/backdoor/lock || open/closed || string || status of the backdoor lock || active
+
| sensor/space/member/count || 0 || yes || member count || int || registered member count || active
 
|-
 
|-
| sensor/temperature/lounge/podest || temperature || float || temperature || active
+
| sensor/space/status || 0 || yes || open/closed || string || current space status || active
 
|-
 
|-
| sensor/temperature/lounge/ceiling || temperature || float || temperature || active
+
| sensor/space/accountBalance || 0 || yes || money || float || current account balance || active
 
|-
 
|-
| sensor/temperature/hackcenter/shelf || temperature || float || temperature || active
+
| sensor/power/main/L1 || 0 || yes || watts || float || current watts on L1 || active
 
|-
 
|-
| sensor/temperature/misc/cnc || temperature || float || temperature || active
+
| sensor/power/main/L2 || 0 || yes || watts || float || current watts on L2 || active
 
|-
 
|-
| sensor/temperature/misc/restroom || temperature || float || temperature || active
+
| sensor/power/main/L3 || 0 || yes || watts || float || current watts on L3 || active
 
|-
 
|-
| sensor/temperature/misc/rack || temperature || float || temperature || active
+
| project/laser/operation || 0 || yes || active/inactive || string || current laser operation state || active
 
|-
 
|-
| sensor/temperature/misc/outside || temperature || float || temperature || active
+
| project/laser/powered || 0 || yes || on/off || string || laser powered on/off || active
 
|-
 
|-
| sensor/radiation/cpm || radiation counts || int || counts per minute || active
+
| project/laser/duration || 0 || yes || seconds || int || duration laser active updated every second || active
 
|-
 
|-
| sensor/radiation/uSv || micro-sievert || float || radiation  || active
+
| project/laser/finished || 0 || yes || seconds || int || duration laser active after job has finished || active
 
|-
 
|-
| sensor/space/member/deviceCount || member devices || int || member devices count || -
+
| sensor/wifi/radio/backspace_802.1x || 0 || yes || # clients || int || connected clients to backspace 802.1x || active
 
|-
 
|-
| sensor/space/member/names || member names || string || member names, comma separated, sorted a-z || -
+
| sensor/wifi/radio/Freifunk_Backspace || 0 || yes || # clients || int || connected clients to Freifunk Backspace || active
 
|-
 
|-
| sensor/space/member/count || member count || int || member count present || active
+
| sensor/wifi/radio/backspace.int_2.4ghz || 0 || yes || # clients || int || connected clients to backspace.int 2.4ghz || active
 
|-
 
|-
| sensor/space/status || open/closed || string || current space status || active
+
| sensor/wifi/radio/backspace_IoT || 0 || yes || # clients || int || connected clients to backspace IoT || active
 
|-
 
|-
| sensor/space/accountBalance || money || float || current account balance || active
+
| sensor/wifi/room/hackcenter || 0 || yes || # clients || int || connected clients to AccessPoint hackcenter || active
 +
|-
 +
| sensor/wifi/room/lounge || 0 || yes || # clients || int || connected clients to AccessPoint lounge || active
 
|-
 
|-
 
|}
 
|}
Zeile 121: Zeile 193:
 
=== Implementiert ===
 
=== Implementiert ===
  
* Tür öffnen/schließen schaltet rotes Exitlight an/aus
+
* Beim Öffnen der Tür werden:
* Beim Aufsperren der Tür schalten sich verschiedene Lichter/Geräte an:
+
** ..die Rollos in der Lounge hochgefahren, wenn es aussen Dunkel ist (Astro-Binding)
** LedBoard
+
** ..die Lichter angeschalten
** NyanCat
+
** ..die Heizung aktiviert
** Exitlight Weiß
+
** ..diverse Geräte angeschalten (Ledboard, Nyancat, Briefkasten, Schild, ...)
** Briefkasten
+
* Wenn die Tür klingelt:
** Licht am Eingang, Lounge nach Sonnenuntergang
+
** ..wird die Lautstärke der Musik in der Lounge reduziert
* Türklingel schaltet Rundumlicht, bei leerem Space bekomme ich eine E-Mail zugestellt "Es wurde geklingelt"
+
** ..der Sound im Hackcenter wiedergegebn
* Gastherme schaltet sich alleine aus/ein wenn Leute da sind
+
** ..Text auf dem LED Board angeschalten
* !alarm im IRC schaltet Rundumlicht an
+
** ..das Alarm-Licht angeschalten
* Schild schaltet sich an wenn der Space aufgesperrt wird, oder Leute da sind, aber nur nach Sonnenuntergang (Strom sparen)
+
* Die Tür zum Hackcenter geöffnet wird:
* Heizungsthermostate regeln auf 12 Grad wenn niemand mehr im Space ist
+
** ..Rollos fahren hoch und Licht wird angeschalten, wenn jemand vor 3 Minuten in den Space gekommen ist
* Shutdown-Buttons in der App um den Space abzusperren
+
* Sicherheitswarnungen:
 +
** Wenn das Rack geöffnet wurde
 +
** Bewegungen im Space bei ungeöffneter Tür und keine Member
 +
** Rauchmelder schicken SMS bei Auslösung, Licht wird angeschalten und Rollos fahren hoch
 +
 
 +
Und vieles anderes mehr...
  
 
=== Geplant ===
 
=== Geplant ===
Zeile 140: Zeile 217:
 
* Aufräum-Alarm
 
* Aufräum-Alarm
 
* Vorheizen des Spaces im Winter für z.B. Dienstags
 
* Vorheizen des Spaces im Winter für z.B. Dienstags
* Rollomotoren für die Fenster für Shutdown oder "Kinomodus"
 
* Kinomodus: Rollos fahren runter, Beleuchtung dimmt, Beamer geht an
 
 
* Notifications an der App, wenn beim Shutdown noch $irgendwo ein Fenster geöffnet ist
 
* Notifications an der App, wenn beim Shutdown noch $irgendwo ein Fenster geöffnet ist
  
Zeile 168: Zeile 243:
 
* Licht Podest
 
* Licht Podest
 
* Licht Leinwand
 
* Licht Leinwand
 +
* Licht Bar
  
 
==== Küche ====
 
==== Küche ====
Zeile 205: Zeile 281:
  
 
Aktuell steuern wir unsere Heizkörper per Funk-Thermostate des Herstellers [http://eQ-3.de eQ-3 AG]. Unser Aufbau besteht aus 7 Thermostaten der Serie HomeMatic sowie einen HomeMatic Funk-LAN Gateway, welcher das Gateway zwischen Funk und LAN bildet.
 
Aktuell steuern wir unsere Heizkörper per Funk-Thermostate des Herstellers [http://eQ-3.de eQ-3 AG]. Unser Aufbau besteht aus 7 Thermostaten der Serie HomeMatic sowie einen HomeMatic Funk-LAN Gateway, welcher das Gateway zwischen Funk und LAN bildet.
 
=== Tablet Halterungen ===
 
[[Datei:tablet_delay.gif|120px|thumb|left|Animation. Much move. So gif.]]
 
 
Damit die Tablets einen festen Platz haben, wurden passgenaue Wandhalterungen entworfen und mit unserem [[3D_Drucker]] ausgedruckt.
 
Diese bieten dem Tablet einen festen Halt und die Möglichkeit auch mal abgedockt zu werden.
 
Für die dauerhafte Stromversorgung wurde auch ein Stromkabelhalter entworfen, welcher auch als Absturzsicherung dient.
 
 
{{clear}}
 
 
{| border="0"
 
|-
 
| [[Datei:Tablet.jpg|200px|thumb|none|Tablet im Halter]]
 
| [[Datei:Halter_tablet.jpg|200px|thumb|none|Halter ohne Tablet]]
 
|-
 
|}
 
 
Wandhalterung: [[File:Halter_V1.stl]]
 
Stromkabelhalterung: [[File:USB.stl]] (Für die Kabeldurchführung muss die Rückseite Eingesägt werden)
 

Aktuelle Version vom 4. November 2017, 15:35 Uhr

Crystal Clear action run.png
Space Automation

Status: unbekannt

Cat spaceautomation.png
Beschreibung Complete automation.
Autor: schinken
PayPal Spenden für Space Automation

Vortrag

Schinken hat über unsere Automatisierung an der Gulschprogrammiernacht 2014 einen Vortrag über die Spaceautomation gehalten:

Spaceautomatisierung - Wie man mit Software wie OpenHAB einen Space komplett per Web oder App steuerbar machen kann.

Zielsetzung

Nachdem immer mehr Geräte in unserem Space vorhanden sind und unsere Raum-FAQ immer voller wurde, mussten wir eine Lösung finden um den Hackerspace möglichst einfach "herunterzufahren". Bisher mussten an vielen Stellen Stecker gesteckt oder gezogen werden, Sicherungen an/ausgeschalten, Heizungsthermostate gedreht und Türen sowie die Jalousie kontrolliert werden.

Gerade für neue Mitglieder gestaltet sich diese Prozedur etwas unüberschaubar. In den meisten Fällen wurde aber zum Glück lediglich die Stereoanlage oder die Heizung vergessen auszuschalten.

Das gesetzte Ziel: Möglichst alles mit einem einzigen Taster abschalten!

Setup

Für unsere Installation haben wir die Java Umgebung OpenHAB gewählt. Mit diesem Programm ist es möglich, verschiedene Geräte per "Binding" zu kombinieren. Bindings sind getrennte Komponenten, gepackt in .jar Container, die einfach in den openhab/addons Ordner kopiert werden.

Ein rießiger Vorteil von OpenHAB ist die Möglichkeit, Dateien und Addons "On-The-Fly" nachladen zu können. Das Programm registriert automatisch Dateiänderungen oder wenn Bindings hinzugefügt oder entfernt werden. Außerdem liefert OpenHAB einen Designer, mit dem Sitemaps und Items editiert werden können, sowie eine eigene Scriptsprache inklusive Syntaxhighlighting,

Desweiteren existiert für OpenHAB eine Android und iPhone-App, sowie eine Web-Oberfläche. Die Konfiguration wird dabei jeweils dynamisch aus der Serverkonfiguration generiert. Geräte mit HABDroid bzw. der iPhone-App erkennen automatisch im WLAN die OpenHAB-Installation und zeigen unsere aktuelle Konfiguration an. Dadurch müssen keine selbstprogrammierten Apps aktualisiert werden.

Hardware

Um den Space für jedes Mitglied steuerbar zu machen hat unser Mitglied xoquox zwei 7 Zoll LélikTec Tablets in unseren Räumen installiert. Eines befindet sich in unserer Lounge (Host: brain), sowie eines in unserem Hackcenter (Host: pinky).

Wir versuchen viele verschiedene Hardware zu verwenden, welche für ihren Bereich sehr gut funktioniert um diese dann mit OpenHAB unter ein Dach zu bekommen. Hierfür währen noch KNX-Geräte wünschenswert, da diese sehr gut in Stromkästen verbaut werden können.

Bindings

Aktuell Verwenden wir folgende Bindings:

MPD

Das MPD-Binding verwenden wir um unsere mopidy-spotify-Installation steuern zu können. Hier gibt es in unserem Setup die Möglichkeit die Musik zu pausieren, sowie die Lautstärke zu regulieren

Onkyo

Mit diesem Binding steuern wir unseren Onkyo-Receiver, welcher als Medienzentrale in der Lounge steht. Hier wird z.B. beim Klingeln der Tür automatisch die Lautstärke des Receivers runtergedreht, aber auch beim Einschalten des Gerätes der dazugehörige Subwoofer per Funksteckdose geschalten.

Astro

Über die Lat/Lon des Hackerspaces ermitteln wir den aktuellen Sonnenstand und damit die Sunset/Sunrise-Zeit. Dadurch fahren wir nur unsere Rollos hoch, wenn auch noch hell drausen ist.

HTTP

Viele unsere Komponenten im Space sind per REST-API steuerbar. Dazu gehört das Ledboard, Webrelais sowie unser neustes Projekt-Mitglied Funkstrom. Durch einfaches senden der HTTP-Methoden POST oder DELETE können unsere Relais oder die Funksteckdosen geschalten werden.

Für den Status bieten unsere APIs noch den responsetype "OpenHAB" welcher ein ON oder OFF representiert, da wir noch nicht erfolgreich eine JSON-Response in OpenHAB auswerten konnten.

SNMP

Per SNMP holen wir verschiedene Werte ab, um sie in der App darzustellen. Unter anderem sind das Temperaturen der verschiedenen Räume, unseren Kontostand oder der Load unseres Servers.

HomeMatic

HomeMatic ist ein System von eQ-3 AG das wir über ELV bestellt haben.

Das "HomeMatic" Setup ist schon das zweite System das wir in unserem Space verwenden. Ein erster Aufbau mit Produkten der MAX! Serie selben Herstellers wurde aufgrund des noch instabilen Bindings (wackelig) verworfen. Die "HomeMatic" Serie wird dank der größeren Community besser von openHAB unterstützt.

Wir verwenden von HomeMatic die Heizungsthermostate sowie die Funk-Rauchmelder. Im Test haben wir zudem ein 4-Fach-Funktaster.

MQTT

Viele externe Events kommen über den MQTT-Events bei OpenHAB an. Diese Events werden durch verschiedene RaspberryPIs, unseren Bot usw. über den MQTT-Broker "mosquitto" verschickt

topic QoS retained body type description active
psa/alarm 1 no message string irc alarm message active
psa/message 0 no message string public service announcement message active
psa/pizza 1 no non empty value string/number irc pizza message active
psa/sound 1 no message string sound file located in nfs/music/ircSounds active
psa/rick_me 0 no message string just listen active
sensor/door/frame 0 yes open/closed string if the door is open or closed active
sensor/door/lock 0 yes open/closed string if the door is locked or unlocked active
sensor/door/button 0 yes pressed/released string if the door button is pressed active
sensor/door/bell 0 yes pressed/released string if the door bell rings active
sensor/backdoor/lock 0 yes open/closed string status of the backdoor lock active
sensor/door/cnc 0 yes open/closed string door server to cnc active
sensor/door/restroom 0 yes open/closed string door server to restroom inactive
sensor/button/hackcenter/0 0 yes pressed/released string Hackcenter Button-Panel Button #0 active
sensor/button/hackcenter/1 0 yes pressed/released string Hackcenter Button-Panel Button #1 active
sensor/button/hackcenter/2 0 yes pressed/released string Hackcenter Button-Panel Button #2 active
sensor/button/hackcenter/3 0 yes pressed/released string Hackcenter Button-Panel Button #3 active
sensor/door/hackcenter 0 yes open/closed string door server to hackcenter active
sensor/door/lounge 0 yes open/closed string door server to lounge active
sensor/co2/hackcenter 0 yes CO² int co2 value of co2monitor active
sensor/temperature/lounge/podest 0 yes temperature float temperature active
sensor/temperature/lounge/ceiling 0 yes temperature float temperature active
sensor/temperature/hackcenter/shelf 0 yes temperature float temperature active
sensor/temperature/hackcenter/co2monitor 0 yes temperature float temperature inactive
sensor/temperature/misc/cnc 0 yes temperature float temperature active
sensor/temperature/misc/restroom 0 yes temperature float temperature active
sensor/temperature/misc/rack 0 yes temperature float temperature active
sensor/temperature/misc/outside 0 yes temperature float temperature active
sensor/radiation/cpm 0 yes radiation counts int counts per minute active
sensor/radiation/uSv 0 yes micro-sievert (uSv) float radiation active
sensor/space/member/deviceCount 0 yes member devices int member devices count -
sensor/space/member/names 0 no member names string member names, comma separated, sorted a-z -
sensor/space/member/present 0 yes member count int member count present active
sensor/space/member/count 0 yes member count int registered member count active
sensor/space/status 0 yes open/closed string current space status active
sensor/space/accountBalance 0 yes money float current account balance active
sensor/power/main/L1 0 yes watts float current watts on L1 active
sensor/power/main/L2 0 yes watts float current watts on L2 active
sensor/power/main/L3 0 yes watts float current watts on L3 active
project/laser/operation 0 yes active/inactive string current laser operation state active
project/laser/powered 0 yes on/off string laser powered on/off active
project/laser/duration 0 yes seconds int duration laser active updated every second active
project/laser/finished 0 yes seconds int duration laser active after job has finished active
sensor/wifi/radio/backspace_802.1x 0 yes # clients int connected clients to backspace 802.1x active
sensor/wifi/radio/Freifunk_Backspace 0 yes # clients int connected clients to Freifunk Backspace active
sensor/wifi/radio/backspace.int_2.4ghz 0 yes # clients int connected clients to backspace.int 2.4ghz active
sensor/wifi/radio/backspace_IoT 0 yes # clients int connected clients to backspace IoT active
sensor/wifi/room/hackcenter 0 yes # clients int connected clients to AccessPoint hackcenter active
sensor/wifi/room/lounge 0 yes # clients int connected clients to AccessPoint lounge active

Automatisierung

Da OpenHAB über eine mächte Rule-Engine verfügt, müssen die Automatisierungen nun nicht mehr von externen Programmen orchestriert werden, sondern können jetzt in OpenHAB direkt realisiert werden.

Die aktuell implementierten Regeln findet ihr in unserem GitHub Repository.

Implementiert

  • Beim Öffnen der Tür werden:
    • ..die Rollos in der Lounge hochgefahren, wenn es aussen Dunkel ist (Astro-Binding)
    • ..die Lichter angeschalten
    • ..die Heizung aktiviert
    • ..diverse Geräte angeschalten (Ledboard, Nyancat, Briefkasten, Schild, ...)
  • Wenn die Tür klingelt:
    • ..wird die Lautstärke der Musik in der Lounge reduziert
    • ..der Sound im Hackcenter wiedergegebn
    • ..Text auf dem LED Board angeschalten
    • ..das Alarm-Licht angeschalten
  • Die Tür zum Hackcenter geöffnet wird:
    • ..Rollos fahren hoch und Licht wird angeschalten, wenn jemand vor 3 Minuten in den Space gekommen ist
  • Sicherheitswarnungen:
    • Wenn das Rack geöffnet wurde
    • Bewegungen im Space bei ungeöffneter Tür und keine Member
    • Rauchmelder schicken SMS bei Auslösung, Licht wird angeschalten und Rollos fahren hoch

Und vieles anderes mehr...

Geplant

  • Kontakte an allen Fenstern für ALARM (Wenn niemand da und Fenster öffnet sich)
  • Aufräum-Alarm
  • Vorheizen des Spaces im Winter für z.B. Dienstags
  • Notifications an der App, wenn beim Shutdown noch $irgendwo ein Fenster geöffnet ist

Angebundene Steuerungen

Elektrische Geräte

Über die Funksteckdosen, Powerctrl und Webrelais schalten wir diverse Lichter oder Geräte.

Hackcenter

  • Licht oben
  • Licht Regal
  • Licht Arbeitstisch
  • Neon-Lampe
  • Notausgangsbeleuchtung Weiss + Rot
  • Alarm-Licht

Lounge

Küche

  • Licht
  • Steckdosen Arbeitsplatte
  • E-Herd
  • Lager

Temperatursensoren

Unsere Temperatursensoren sind per 1-Wire an bestehende RaspberryPIs angeschlossen worden. Durch das laden des Moduls w1-gpio und w1-therm ist die Temperatur per /sys/-Dateisystem erreichbar. Um das Abfragen des Temperatursensors von einer SNMP-Anfrage zu entkoppeln, läuft ein CronJob alle 10 Minuten um die Temperatur in eine Datei im /tmp-Ordner zu schreiben.

Der SNMP-Endpunkt liesst dann nur noch den Inhalt dieser Datei.

Temperatursensoren:

1Wire ID Ort MQTT-Topic
10-000802cf03d5 Lounge Podest nahe RasPi sensor/temperature/lounge/podest
10-000802cefd6b Aussen (Eingangstür) sensor/temperature/misc/outside
10-000802cf0dec Lounge Decke sensor/temperature/lounge/ceiling
10-000802ceeb04 Hackcenter Stereoanlage sensor/temperature/hackcenter/shelf
10-00080294ac6f CNC sensor/temperature/misc/cnc
10-00080294c7f7 WC (Lufttemperatur) sensor/temperature/misc/restroom
10-00080294a912 Serverschrank nahe RasPi sensor/temperature/misc/rack

Thermostate

Aktuell steuern wir unsere Heizkörper per Funk-Thermostate des Herstellers eQ-3 AG. Unser Aufbau besteht aus 7 Thermostaten der Serie HomeMatic sowie einen HomeMatic Funk-LAN Gateway, welcher das Gateway zwischen Funk und LAN bildet.