SmartLab: Unterschied zwischen den Versionen
M68k (Diskussion | Beiträge) |
Anlumo (Diskussion | Beiträge) |
||
(65 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Projekt | {{Projekt | ||
|image=metalab-smartlab.png | |image=metalab-smartlab.png | ||
− | |involved=[[User:Uberhaxlor]] [[User:hmw]] [[User:m68k]] and others | + | |involved=[[User:Uberhaxlor]], [[User:hmw]], [[User:m68k]], [[User:cube]], [[User:luto]], [[User:anlumo]] and others |
|startdate=01.05.2019 | |startdate=01.05.2019 | ||
|status=in progress | |status=in progress | ||
Zeile 7: | Zeile 7: | ||
|hidden=false | |hidden=false | ||
}} | }} | ||
+ | |||
+ | * Dashboard on [https://smart.metalab.at smart.metalab.at]! | ||
* Sources on https://github.com/metalab-smartlab | * Sources on https://github.com/metalab-smartlab | ||
Zeile 12: | Zeile 14: | ||
* Home Assistant | * Home Assistant | ||
* MQTT | * MQTT | ||
− | * MetaPanel | + | * MetaPanel (broken!) |
− | |||
* Devices | * Devices | ||
** Sonoff Tasmota | ** Sonoff Tasmota | ||
− | |||
− | |||
− | |||
− | |||
* Integrations | * Integrations | ||
− | |||
** Slackomatic | ** Slackomatic | ||
** Blinkenwall via [[SmartLab/Blinkenbridge]] | ** Blinkenwall via [[SmartLab/Blinkenbridge]] | ||
** Umbrellas | ** Umbrellas | ||
** RedAlert notification for daily cleanup | ** RedAlert notification for daily cleanup | ||
− | ** | + | |
− | * | + | == SmartLab-Hardware == |
− | ** | + | |
− | ** Grafana | + | Das Setup laeuft momentan auf einem [https://up-board.org/upsquared/specifications/ Up Squared] mit 8GB RAM und 64GB eMMC. IP-Adresse ist statisch definiert als 10.20.30.97 (zusaetzlich zu DHCP). |
+ | |||
+ | === Softwarestack === | ||
+ | |||
+ | Alles laeuft als Docker-Container: | ||
+ | |||
+ | * Portainer als Docker-Web-UI | ||
+ | * nginx als reverse proxy fuer Home Assistant und Zigbee2MQTT | ||
+ | * Keycloak fuer User Auth (momentan nur fuer Portainer in Verwendung) | ||
+ | * PostgreSQL fuer Home Assistant fuer die History und fuer Keycloak | ||
+ | * Mosquitto als MQTT Broker | ||
+ | * Zigbee2MQTT fuer unser Zigbee-Gateway | ||
+ | * Visual Studio Code for Web fuer das Editieren der Config-Files (nginx, home assistant und Zigbee2MQTT) | ||
+ | |||
+ | Es gibt noch Moeglichkeiten, andere Services auf dem Geraet laufen zu lassen. Dafuer einfach mit [[User:anlumo|anlumo]] reden. | ||
+ | |||
+ | === Home Assistant === | ||
+ | |||
+ | User-Account: metalab/metalab | ||
+ | |||
+ | [https://smart.metalab.at/ http://smart.metalab.at/ Home Assistant Dashboard] | ||
+ | |||
+ | * [https://apps.apple.com/us/app/home-assistant/id1099568401 Home Assistant companion app on the iOS App Store] | ||
+ | * [https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&hl=en&gl=US Home Assistant companion app on the Google Play Store] | ||
+ | * [https://f-droid.org/packages/io.homeassistant.companion.android.minimal/ Home Assistant companion app on the F-Droid App Repository] | ||
+ | |||
+ | (Achtung: Wenn man sich einloggt mit der App, exponiert diese Daten wie Akkustand und SIM-Kartenzustand des Handies an den Home Assistant, zumindest wenn man den Admin-Account dazu verwendet.) | ||
+ | |||
+ | == Metapanel == | ||
+ | |||
+ | Ist ein Webinterface auf einem Raspberry Pi, von Harald entwickelt. | ||
+ | |||
+ | <del>Die Integration mit Home Assistant funktioniert ueber ein Login Token, das auf der SD-Karte abgelegt ist (/data/srv/hass/homeassistant.token).</del> | ||
+ | |||
+ | <del>Momentan funktioniert der Shutdown-Button im Webinterface nicht, der Grund ist unbekannt.</del> | ||
+ | |||
+ | Momentan wird einfach das Home Assistant-Webinterface darauf angezeigt. Funktioniert gut mit Touchscreen. | ||
+ | |||
+ | == Zigbee Adapter == | ||
+ | |||
+ | [https://smartlight.me/smart-home-devices/zigbee-devices/smlight-zigbee-lan-adapter-slzb-05en Zigbee LAN coordinator CC2652P SMLIGHT SLZB-05] (10.20.30.110) um ZigBee auf TCP/IP umzusetzen. Wir nur von der Zigbee2MQTT-Software angesprochen. Auf Port 80 läuft ein spartantisches Web-Interface. Alles weitere passiert im Home Assistant bzw. im [https://smart.metalab.at/zigbee/ Zigbee2MQTT Webinterface]. | ||
+ | |||
+ | == Licht == | ||
+ | |||
+ | Es wurden im Lab strategisch IKEA TRÅDFRI-Leuchtmittel verteilt. Diese verwenden das Zigbee-Protokoll und sind halbwegs günstig (zumindest im Vergleich zu Philips Hue). | ||
+ | |||
+ | Diese Geräte fungieren auch als Zigbee-Gateways, d.h. je mehr wir davon haben, desto besser funktioniert das Meshnetzwerk. | ||
+ | |||
+ | === Hauptraum === | ||
+ | |||
+ | Im Hauptraum sind 4*3 Schirme zu je 4 Leuchtmitteln, d.h. 48 Geräte insgesamt. Diese sind alle RGBWW. Sie sind in der Zigbee-Gruppe „Hauptraumschirme“ zusammengefasst. Weiters gibt es noch eine Gruppe pro Schirm und eine pro Reihe. Die Namenskonvention lautet: Reihen fangen bei 1 vorne bei der Leinwand/Bibliothekstüre an, und Spalten gehen von links nach rechts, wenn man Richtung Leinwand/Bibliothekstüre schaut (d.h. Schirm 1 bis 3). Die Leuchtmitteln innerhalb der Schirme haben eine zufällige Reihenfolge. Das Namensschema ist „Hauptraumschirm_<Zeile>.<Reihe>.<1-4>“, und die Reihengruppen heißen „Hauptraumschirm_<Zeile>“. | ||
+ | |||
+ | ==== Lichtschalter ==== | ||
+ | |||
+ | Der [[Benutzer:BadPractice|BadPractice]]-Lichtschalter wurde mit Tasmota geflasht und in Home Assistant integriert. Es ist ein ESP8266 mit zwei Buttons (GPIOs 4 und 5). | ||
+ | |||
+ | * Wenn man den Plus-Button kurz drueckt, wird das Hauptraumlicht um 10% heller, wenn man ihn 1sec haelt geht er sofort auf 100% und Mittelweiss (weil das die hellste Einstellung ist). | ||
+ | * Wenn man den Minus-Button kurz drueckt, wird das Hauptraumlicht um 10% duenkler, wenn man ihn 1sec haelt schaltet er sofort das Licht aus. | ||
+ | |||
+ | Das Geraet ist [http://10.20.31.47/ hier] direkt erreichbar. | ||
+ | |||
+ | === Bibliothek === | ||
+ | |||
+ | In der Bibliothek sind 4*3 Leuchtmittel verbaut (d.h. exakt ein Viertel vom Hauptraum), wobei die eine Hälfte RGBWW und die andere nur WW ist. Bei den Namen gibt es keine systematische Benennung, das sollte JemandTM mal aufräumen. | ||
+ | |||
+ | === Küche === | ||
+ | |||
+ | In der Küche sind zwei RGBWW-Leuchtmittel über der Bar verbaut. Diese sind ein älteres Modell der IKEA-Leuchtmittel und haben daher ein paar firmwaretechnische Einschränkungen. Vielleicht würde ein Firmwareupdate helfen, ist aber bisher noch nicht passiert. | ||
+ | |||
+ | == Sonoff == | ||
+ | |||
+ | [https://github.com/sixtyeight/blinkenwall-bridge/ Blinkenbridge Github Repo] (ist bereits in Produktion) | ||
+ | |||
+ | [https://github.com/Metalab/intranet_of_shit/ Github Repo] | ||
+ | |||
+ | List of all sonoff modules currently in use | ||
+ | |||
+ | *http://hauptraumalarm.lan Nr.1 | ||
+ | *http://welalarm.lan Nr.2 | ||
+ | *http://bibliothekalarm.lan Nr.3 | ||
+ | |||
+ | *http://loungeinvaders.lan Nr.4 (unknown situation) | ||
+ | *http://loungepony.lan Nr.5 | ||
+ | *http://loungesquarelamp.lan Nr.6 | ||
+ | *http://loungefan.lan Nr.7 (aka Master Shutdown Button im Serverkammerl) | ||
+ | |||
+ | *http://eingangstrahler.lan Nr.8 | ||
+ | *http://metadateswitch.lan Nr.9 | ||
+ | *http://blinkentunnel.lan Nr.10 | ||
+ | |||
+ | *http://hauptraumeins.lan Nr.11 (aka 2. Schirm-Reihe im Hauptraum) | ||
+ | *http://printerpower.lan Nr.12 | ||
+ | |||
+ | *http://kassomat.lan Nr.13 | ||
+ | *http://metanudel.lan Nr.14 | ||
+ | |||
+ | *http://welbenchlightleft.lan Nr.15 | ||
+ | *http://welbenchlightright.lan Nr.16 | ||
+ | |||
+ | *http://loungelight.lan Nr17 | ||
+ | *http://metafridgelight.lan Nr18 | ||
+ | |||
+ | *http://werbelicht.lan | ||
+ | *http://oeffimonitor.lan | ||
+ | |||
+ | == Power Meters == | ||
+ | |||
+ | Wir haben im Metalab zwei Wattmeter eingebaut, Type Orno OR-WE-517. Diese besitzen eine RS485-Schnittstelle, ueber die man via modbus-Protokoll alle Daten abfragen kann. | ||
+ | |||
+ | Home Assistant hat eine modbus-Integration, d.h. man muss nur einen RS485-Adapter an den Server anhaengen und das konfigurieren ([https://community.home-assistant.io/t/energy-meter-orno51x-and-modbus/174940 Thread dazu]). [[User:anlumo|anlumo]] hat das schon eingerichtet. | ||
+ | |||
+ | Die Power Meter haben eine vorprogrammierte ID von 1, d.h. wenn man beide einfach so auf einen Bus haengt, funktioniert nichts. Deswegen wurde das Power Meter im WEL auf ID 2 umgestellt ("2" auf MODBUS-Register 2 schreiben). | ||
+ | |||
+ | Unseren Beobachtungen nach misst das Power Meter im WEL das komplette Lab, nicht nur das WEL! | ||
+ | |||
+ | == Network Traffic == | ||
+ | |||
+ | Theoretisch ist es moeglich, den aktuell verwendete Netzwerkbandbreite in den Home Assistant als Sensor zu integrieren. Datacop wurde dazu ueberredet, sich das mal anzusehen. | ||
+ | |||
+ | == Sensoren == | ||
+ | |||
+ | Zigbee ermoeglicht es sehr leicht, sinnlos viele Sensoren im Lab zu verteilen und in den Home Assistant zu integrieren. Die meisten brauchen nur eine Knopfzelle, da Zigbee sehr energieeffizient arbeitet. | ||
+ | |||
+ | [[User:anlumo|anlumo]] hat schon damit angefangen, und ein paar Dinge auf AliExpress bestellt. Dazu gehoeren [https://www.aliexpress.com/item/1005003472820740.html Xiaomi Aqara Wireless Mini Switch]es um EUR11.60/Stueck, um Dinge zu aktivieren. | ||
+ | |||
+ | Es gibt auch noch Bewegungsmelder und Fenster/Tueroeffnungstatus-Sensoren, die vielleicht auch interessant sein koennten. Weiters gibt es Schalter mit etwas mehr als nur ein/aus, die vielleicht ueberlegenswert waeren. | ||
+ | |||
+ | [[User:anlumo|anlumo]] hat drei [https://www.aliexpress.com/item/4001316521352.html SONOFF SNZB-02 ZigBee Temperature And Humidity Sensor]en im Metalab installiert, einen in der Bibliothek (neben dem Serverrack an der Wand), einen im WEL (neben dem Fenster bei den 3D-Druckern) und einen in der HM (am Sicherungskasten). Sie sind im Lovelace (Dashboard) von Home Assistant angelegt. | ||
+ | |||
+ | == Cleanup Alert == | ||
+ | |||
+ | [[User:anlumo|anlumo]] hat die Inselloesungen fuer den Cleanup Alert jetzt auf den Home Assistant zentralisiert. Es gibt eine Automation namens "Cleanup", die als Trigger die Uhrzeit 20:00 jeden Tag angegeben hat. Diese fuehrt zuerst die Szene "Cleanup" aus, welche alle Alarme auf on stellt. Dann wartet sie 5 Minuten und dann fuehrt sie die Szene "Cleanup over" aus, welche alle Alarme auf off stellt. | ||
+ | |||
+ | Die Alarme sind in einer Gruppe namens mp_grp_alarm zusammengefasst, d.h. wenn man weitere hinzufuegen will, muessen die nur beim entsprechenden Eintrag in groups.yaml eingetragen werden. | ||
+ | |||
+ | == Sonoff/ESP-Integration == | ||
+ | |||
+ | Die neueste Version von Tasmota, der ESP-Firmware fuer smart home, hat eine Integration mit Home Assistant. Damit wird die Sache viel einfacher einzustellen. Daher bitte die neueste Version verwenden, und nicht mehr lokal an der MQTT-Config herumspielen (ausser Server-IP und Login), sondern stattdessen einfach in den Home Assistant mappen (sollte automatisch erkannt werden) und dort konfigurieren. | ||
+ | |||
+ | Wichtig: Bei der Geraettype nicht Generic (0), sondern Generic (18) (ganz unten!) verwenden. Generic (0) ist ein Template fuer neue Geraettypen und sollte nicht direkt verwendet werden. Weiters nicht vergessen, den Geraetenamen in "Configure Other" umzustellen. | ||
+ | |||
+ | Der Anti-Shutdown-Button ist auf diese Art schon bearbeitet worden und aktiviert jetzt einfach eine Szene im Home Assistant, die alles gewuenschte aufdreht. | ||
+ | |||
+ | Bereits aktualisierte Sonoffs und ESPs: | ||
+ | |||
+ | * Anti-Shutdown-Button | ||
+ | * Shutdownbutton | ||
+ | * Hauptraumeins | ||
+ | * Hauptraumzwei umbenannt in Printerpower | ||
+ | * Werbelicht (der ist ein neuer Sonoff S26) | ||
+ | * Kassomat | ||
+ | * Metanudel | ||
+ | * Oeffimonitor (neuer Sonoff S26, schaltet nur den Bildschirm) | ||
+ | * Hauptraumalarm | ||
+ | * Bibliotheksalarm | ||
+ | * Welalarm | ||
+ | * Loungepony | ||
+ | * Metafridge | ||
+ | * Metadate | ||
+ | |||
+ | TODO: | ||
+ | |||
+ | * Cellaralarm | ||
+ | * WEL Power (unbekannt, was das ist) | ||
+ | * WEL Benchlights Left (out of order?) | ||
+ | * WEL Benchlights Right | ||
+ | * Loungelights (gibts das noch?) | ||
+ | * Lounge Square Lamp (gibts das noch?) | ||
+ | * MQTTStrip (custom firmware!) | ||
+ | * Blinkeninvaders (gibts das noch?) | ||
+ | * Stage Light 5 (Left) | ||
+ | * Stage Light 8 (Right) | ||
+ | |||
+ | === Sensoren === | ||
+ | |||
+ | Tasmota unterstuetzt DS18x20-Temperatursensoren. [[User:anlumo|anlumo]] hat ein Sackerl davon herumliegen. Das bedeutet, wenn wir irgendwo die Raumtemperatur messen wollen, koennen wir einfach einen ESP hinwerfen mit einem solchen Sensor drauf. Dies ist mit dem Anti-Shutdown-Button bereits passiert, der ja sowieso schon im Vorraum liegt und noch ein paar GPIOs frei hat. | ||
+ | |||
+ | == Audio Setup == | ||
+ | |||
+ | Das Audio Setup (Verstaerker etc) im Hauptraum sind etwas kompliziert zum Aufdrehen und Abdrehen. Das alte System mit einem Master Power Switch war nett, aber der Inrush Current hat haeufig zum Ausloesen der Sicherung gefuehrt, und das Abschalten hat zu einem lauten Knall in den Lautsprechern gefuehrt (angeblich kein Problem fuer die Hardware, ist allerdings ein Problem fuer die Wetware). | ||
+ | |||
+ | Deswegen wird das jetzt ueber die Home Automation geregelt ein- und ausgeschalten. Dazu hat [[User:anlumo|anlumo]] [https://www.yumpu.com/en/document/read/6266267/epowerswitch-s8-leunig-gmbh einen ePowerSwitch 8M und einen 8S] gekauft, das sind rackmountable Stromschalter (Mikrocontroller, die Relais ansteuern), mit denen man 8 Leitungen separat ansteuern kann. Das ganze funktioniert ueber Ethernet oder RS232, [[User:anlumo|anlumo]] hat dafuer eine Home Assistant-Integration (ein custom_component in Python) geschrieben, die an sich beide Kanaele kann. Der 8M hat beide Schnittstellen, der 8S hat nur RS232 (mit einem unpraktischen 4P4C-Stecker). Ueber das wurde das Timing dann im Home Assistant als zwei Automations programmiert und dadurch wird das ganze wieder auf ein einfaches ein/aus reduziert fuer die Benutzer:innen. | ||
+ | |||
+ | Steckerbelegung: | ||
+ | |||
+ | # Kleiner Amp | ||
+ | # Mixer | ||
+ | # Frequenzweiche | ||
+ | # 800W-Verstaerker | ||
+ | # leer | ||
+ | # leer | ||
+ | # leer | ||
+ | # 1200W-Verstaerker | ||
+ | |||
+ | Wichtig ist noch, dass fuer 1-4 bzw. 5-8 jeweils 10A maximal moeglich sind (weil die jeweils mit einem C14-Stecker versorgt werden, die Relais innen koennten 16A). Damit ist der 1200W-Verstaerker schon eher an der Grenze, und ist deswegen alleine auf einem Block. | ||
+ | |||
+ | === Aktueller Stand === | ||
+ | |||
+ | Home Assistant-Integration funktioniert mit dem S8 via Serielle direkt am Home Assistant-Server (mit USB auf RS232-Kabel mit custom pinout auf 4P4C und /dev/ttyUSB0). | ||
+ | |||
+ | Auf dem Geraet klebt ein Zigbee-Taster, um ein- und auszuschalten. Leider gibt es momentan noch Probleme mit dem State Management, wenn man zu schnell ein- bzw. ausschaltet (waehrend der Vorgang noch nicht abgeschlossen ist). | ||
+ | |||
+ | == Lichtklingel == | ||
+ | |||
+ | Dieser Sensor hat [[Lichtklingel|eine eigene Wiki-Seite]]. Ist im Home Assistant ganz normal integriert, verwendet allerdings nicht Tasmota, weil die Erkennung der Klingel etwas komplexer ist (weil AC-Signal). Stattdessen wird eine Arduino-Library fuer den Home Assistant verwendet, die ihn automatisch via MQTT als Sensor anmeldet. | ||
+ | |||
+ | Tasmota hat allerdings eine AC-detect-Funktion eingebaut, [https://tasmota.github.io/docs/Buttons-and-Switches/#ac-frequency-detection-switch siehe hier]. Vielleicht koennte die hier verwendet werden. | ||
+ | |||
+ | == [[Geigerzaehler]] / Getraenkeverkauf == | ||
+ | |||
+ | In der Kueche neben dem Kuehlschrank gibt es einen Scanner, bei dem Leute dazu angehalten sind, ihre Getraenkekaeufe zu registrieren. | ||
+ | |||
+ | Diese Daten vom Vortag landen jeden Tag um 4 Uhr in der Datenbank auf dem SmartLab-Rechner und werden via Grafana in [https://smart.metalab.at/stats/public-dashboards/b7580f5d84ce40a0a83e22d1f9b13120 einem Public Board] visualisiert. | ||
+ | |||
+ | Es werden nur EAN-Codes gezeigt, die in der Datenbank registriert sind. Neue Produkte muessen daher manuell eingetragen werden. Gespeichert wird aber alles, d.h. das kann auch im Nachhinein passieren. | ||
+ | |||
+ | Die Software fuer den Transfer wurde von [[User:anlumo|anlumo]] geschrieben und befindet sich [https://github.com/Metalab/barcode-service/ hier]. | ||
+ | |||
+ | == Raspberry Pi-Touchscreens == | ||
+ | |||
+ | * Falls notwendig, die Bildschirmaufloesung in /boot/config.txt einstellen | ||
+ | * [https://desertbot.io/blog/raspberry-pi-touchscreen-kiosk-setup Anleitung] | ||
+ | * [https://linuxhint.com/rotate-screen-in-raspberry-pi/ screen rotation] | ||
+ | |||
+ | = Abrechnung = | ||
+ | |||
+ | Im [[2022-03-09_Jour_Fixe]] wurde ein Budget von EUR500 fuer SmartLab allokiert. Im [[2022-12-14_Jour_Fixe]] wurde das Budget um EUR200 erweitert, mit einer zusaetzlichen Bitte fuer Spenden von Metalab Regulars. | ||
+ | |||
+ | Hier sind die Rechnungen, die bisher ausbezahlt wurden: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |Anzahl + Name | ||
+ | |Preis | ||
+ | |- | ||
+ | |4x Xiaomi Mini Switches | ||
+ | |€46,37 | ||
+ | |- | ||
+ | |3x Sonoff Temperatur/Luftfeuchtigkeitssensoren | ||
+ | |€27,73 | ||
+ | |- | ||
+ | |3x RS485-Adapter für Power Meter | ||
+ | |€3,36 | ||
+ | |- | ||
+ | |2x Sonoff Dual R3 | ||
+ | |€24,50 | ||
+ | |- | ||
+ | |3x Tuya Temperatur/Luftfeuchtigkeitssensoren (wide range) | ||
+ | |€27,88 | ||
+ | |- | ||
+ | |4x Sonoff S26 | ||
+ | |€38,22 | ||
+ | |- | ||
+ | |ePowerswitch 8S | ||
+ | |€14,16 | ||
+ | |- | ||
+ | |C14-zu-Schuko (Audio) | ||
+ | |€17,00 | ||
+ | |- | ||
+ | |C14-zu-C7 (Audio) | ||
+ | |€5,33 | ||
+ | |- | ||
+ | |Teclast P80T (Hauptraum-Steuerung) | ||
+ | |€91,96 | ||
+ | |- | ||
+ | |4x Athom Tasmota Smart Plug | ||
+ | |€66,89 | ||
+ | |- | ||
+ | |5x Aqara Smart Wireless Mini Switch Zigbee | ||
+ | |€40,51 | ||
+ | |} | ||
+ | |||
+ | Bisher gesamt: EUR403,91 | ||
+ | |||
+ | Spenden bisher: EUR50,00 | ||
+ | |||
+ | = TODO = | ||
+ | |||
+ | * Fenstersensoren | ||
+ | * Smartes Licht-UI in der Bibliothek | ||
+ | * Smarte Schalter fuer Lichtsteuerung in WEL, Kueche und HEL. | ||
+ | * Aliens Welcome-Switch (???) | ||
+ | * IR Blaster fuer Beamer in der Bib (schon bestellt von [[User:anlumo|anlumo]]) | ||
+ | |||
+ | = Plaene fuer Lichtschalter: = | ||
+ | |||
+ | * Single Switch | ||
+ | ** HEL | ||
+ | ** HM | ||
+ | * Double Switch | ||
+ | ** Lasercutter (Licht + Lueftung) | ||
+ | ** Fotolab (Ampel rot/gruen) | ||
+ | * Triple Switch | ||
+ | ** Kueche (vorne + hinten + hinten Arbeitsflaeche/Abwasch) | ||
+ | ** Fotolab (Decke + Rot + Lueftung) | ||
+ | |||
+ | Salty hat die alle bestellt. |
Aktuelle Version vom 8. April 2024, 19:02 Uhr
SmartLab | |
![]() | |
Gestartet: | 01.05.2019 |
Involvierte: | User:Uberhaxlor, User:hmw, User:m68k, User:cube, User:luto, User:anlumo and others |
Status: | in progress |
Beschreibung: | On premises Smarthome stuff for the Metalab |
Shutdownprozedur: | |
Zuletzt aktualisiert: | 2024-04-08 |
- Dashboard on smart.metalab.at!
- Sources on https://github.com/metalab-smartlab
- Home Assistant
- MQTT
- MetaPanel (broken!)
- Devices
- Sonoff Tasmota
- Integrations
- Slackomatic
- Blinkenwall via SmartLab/Blinkenbridge
- Umbrellas
- RedAlert notification for daily cleanup
SmartLab-Hardware
Das Setup laeuft momentan auf einem Up Squared mit 8GB RAM und 64GB eMMC. IP-Adresse ist statisch definiert als 10.20.30.97 (zusaetzlich zu DHCP).
Softwarestack
Alles laeuft als Docker-Container:
- Portainer als Docker-Web-UI
- nginx als reverse proxy fuer Home Assistant und Zigbee2MQTT
- Keycloak fuer User Auth (momentan nur fuer Portainer in Verwendung)
- PostgreSQL fuer Home Assistant fuer die History und fuer Keycloak
- Mosquitto als MQTT Broker
- Zigbee2MQTT fuer unser Zigbee-Gateway
- Visual Studio Code for Web fuer das Editieren der Config-Files (nginx, home assistant und Zigbee2MQTT)
Es gibt noch Moeglichkeiten, andere Services auf dem Geraet laufen zu lassen. Dafuer einfach mit anlumo reden.
Home Assistant
User-Account: metalab/metalab
http://smart.metalab.at/ Home Assistant Dashboard
- Home Assistant companion app on the iOS App Store
- Home Assistant companion app on the Google Play Store
- Home Assistant companion app on the F-Droid App Repository
(Achtung: Wenn man sich einloggt mit der App, exponiert diese Daten wie Akkustand und SIM-Kartenzustand des Handies an den Home Assistant, zumindest wenn man den Admin-Account dazu verwendet.)
Metapanel
Ist ein Webinterface auf einem Raspberry Pi, von Harald entwickelt.
Die Integration mit Home Assistant funktioniert ueber ein Login Token, das auf der SD-Karte abgelegt ist (/data/srv/hass/homeassistant.token).
Momentan funktioniert der Shutdown-Button im Webinterface nicht, der Grund ist unbekannt.
Momentan wird einfach das Home Assistant-Webinterface darauf angezeigt. Funktioniert gut mit Touchscreen.
Zigbee Adapter
Zigbee LAN coordinator CC2652P SMLIGHT SLZB-05 (10.20.30.110) um ZigBee auf TCP/IP umzusetzen. Wir nur von der Zigbee2MQTT-Software angesprochen. Auf Port 80 läuft ein spartantisches Web-Interface. Alles weitere passiert im Home Assistant bzw. im Zigbee2MQTT Webinterface.
Licht
Es wurden im Lab strategisch IKEA TRÅDFRI-Leuchtmittel verteilt. Diese verwenden das Zigbee-Protokoll und sind halbwegs günstig (zumindest im Vergleich zu Philips Hue).
Diese Geräte fungieren auch als Zigbee-Gateways, d.h. je mehr wir davon haben, desto besser funktioniert das Meshnetzwerk.
Hauptraum
Im Hauptraum sind 4*3 Schirme zu je 4 Leuchtmitteln, d.h. 48 Geräte insgesamt. Diese sind alle RGBWW. Sie sind in der Zigbee-Gruppe „Hauptraumschirme“ zusammengefasst. Weiters gibt es noch eine Gruppe pro Schirm und eine pro Reihe. Die Namenskonvention lautet: Reihen fangen bei 1 vorne bei der Leinwand/Bibliothekstüre an, und Spalten gehen von links nach rechts, wenn man Richtung Leinwand/Bibliothekstüre schaut (d.h. Schirm 1 bis 3). Die Leuchtmitteln innerhalb der Schirme haben eine zufällige Reihenfolge. Das Namensschema ist „Hauptraumschirm_<Zeile>.<Reihe>.<1-4>“, und die Reihengruppen heißen „Hauptraumschirm_<Zeile>“.
Lichtschalter
Der BadPractice-Lichtschalter wurde mit Tasmota geflasht und in Home Assistant integriert. Es ist ein ESP8266 mit zwei Buttons (GPIOs 4 und 5).
- Wenn man den Plus-Button kurz drueckt, wird das Hauptraumlicht um 10% heller, wenn man ihn 1sec haelt geht er sofort auf 100% und Mittelweiss (weil das die hellste Einstellung ist).
- Wenn man den Minus-Button kurz drueckt, wird das Hauptraumlicht um 10% duenkler, wenn man ihn 1sec haelt schaltet er sofort das Licht aus.
Das Geraet ist hier direkt erreichbar.
Bibliothek
In der Bibliothek sind 4*3 Leuchtmittel verbaut (d.h. exakt ein Viertel vom Hauptraum), wobei die eine Hälfte RGBWW und die andere nur WW ist. Bei den Namen gibt es keine systematische Benennung, das sollte JemandTM mal aufräumen.
Küche
In der Küche sind zwei RGBWW-Leuchtmittel über der Bar verbaut. Diese sind ein älteres Modell der IKEA-Leuchtmittel und haben daher ein paar firmwaretechnische Einschränkungen. Vielleicht würde ein Firmwareupdate helfen, ist aber bisher noch nicht passiert.
Sonoff
Blinkenbridge Github Repo (ist bereits in Produktion)
List of all sonoff modules currently in use
- http://loungeinvaders.lan Nr.4 (unknown situation)
- http://loungepony.lan Nr.5
- http://loungesquarelamp.lan Nr.6
- http://loungefan.lan Nr.7 (aka Master Shutdown Button im Serverkammerl)
- http://hauptraumeins.lan Nr.11 (aka 2. Schirm-Reihe im Hauptraum)
- http://printerpower.lan Nr.12
- http://kassomat.lan Nr.13
- http://metanudel.lan Nr.14
Power Meters
Wir haben im Metalab zwei Wattmeter eingebaut, Type Orno OR-WE-517. Diese besitzen eine RS485-Schnittstelle, ueber die man via modbus-Protokoll alle Daten abfragen kann.
Home Assistant hat eine modbus-Integration, d.h. man muss nur einen RS485-Adapter an den Server anhaengen und das konfigurieren (Thread dazu). anlumo hat das schon eingerichtet.
Die Power Meter haben eine vorprogrammierte ID von 1, d.h. wenn man beide einfach so auf einen Bus haengt, funktioniert nichts. Deswegen wurde das Power Meter im WEL auf ID 2 umgestellt ("2" auf MODBUS-Register 2 schreiben).
Unseren Beobachtungen nach misst das Power Meter im WEL das komplette Lab, nicht nur das WEL!
Network Traffic
Theoretisch ist es moeglich, den aktuell verwendete Netzwerkbandbreite in den Home Assistant als Sensor zu integrieren. Datacop wurde dazu ueberredet, sich das mal anzusehen.
Sensoren
Zigbee ermoeglicht es sehr leicht, sinnlos viele Sensoren im Lab zu verteilen und in den Home Assistant zu integrieren. Die meisten brauchen nur eine Knopfzelle, da Zigbee sehr energieeffizient arbeitet.
anlumo hat schon damit angefangen, und ein paar Dinge auf AliExpress bestellt. Dazu gehoeren Xiaomi Aqara Wireless Mini Switches um EUR11.60/Stueck, um Dinge zu aktivieren.
Es gibt auch noch Bewegungsmelder und Fenster/Tueroeffnungstatus-Sensoren, die vielleicht auch interessant sein koennten. Weiters gibt es Schalter mit etwas mehr als nur ein/aus, die vielleicht ueberlegenswert waeren.
anlumo hat drei SONOFF SNZB-02 ZigBee Temperature And Humidity Sensoren im Metalab installiert, einen in der Bibliothek (neben dem Serverrack an der Wand), einen im WEL (neben dem Fenster bei den 3D-Druckern) und einen in der HM (am Sicherungskasten). Sie sind im Lovelace (Dashboard) von Home Assistant angelegt.
Cleanup Alert
anlumo hat die Inselloesungen fuer den Cleanup Alert jetzt auf den Home Assistant zentralisiert. Es gibt eine Automation namens "Cleanup", die als Trigger die Uhrzeit 20:00 jeden Tag angegeben hat. Diese fuehrt zuerst die Szene "Cleanup" aus, welche alle Alarme auf on stellt. Dann wartet sie 5 Minuten und dann fuehrt sie die Szene "Cleanup over" aus, welche alle Alarme auf off stellt.
Die Alarme sind in einer Gruppe namens mp_grp_alarm zusammengefasst, d.h. wenn man weitere hinzufuegen will, muessen die nur beim entsprechenden Eintrag in groups.yaml eingetragen werden.
Sonoff/ESP-Integration
Die neueste Version von Tasmota, der ESP-Firmware fuer smart home, hat eine Integration mit Home Assistant. Damit wird die Sache viel einfacher einzustellen. Daher bitte die neueste Version verwenden, und nicht mehr lokal an der MQTT-Config herumspielen (ausser Server-IP und Login), sondern stattdessen einfach in den Home Assistant mappen (sollte automatisch erkannt werden) und dort konfigurieren.
Wichtig: Bei der Geraettype nicht Generic (0), sondern Generic (18) (ganz unten!) verwenden. Generic (0) ist ein Template fuer neue Geraettypen und sollte nicht direkt verwendet werden. Weiters nicht vergessen, den Geraetenamen in "Configure Other" umzustellen.
Der Anti-Shutdown-Button ist auf diese Art schon bearbeitet worden und aktiviert jetzt einfach eine Szene im Home Assistant, die alles gewuenschte aufdreht.
Bereits aktualisierte Sonoffs und ESPs:
- Anti-Shutdown-Button
- Shutdownbutton
- Hauptraumeins
- Hauptraumzwei umbenannt in Printerpower
- Werbelicht (der ist ein neuer Sonoff S26)
- Kassomat
- Metanudel
- Oeffimonitor (neuer Sonoff S26, schaltet nur den Bildschirm)
- Hauptraumalarm
- Bibliotheksalarm
- Welalarm
- Loungepony
- Metafridge
- Metadate
TODO:
- Cellaralarm
- WEL Power (unbekannt, was das ist)
- WEL Benchlights Left (out of order?)
- WEL Benchlights Right
- Loungelights (gibts das noch?)
- Lounge Square Lamp (gibts das noch?)
- MQTTStrip (custom firmware!)
- Blinkeninvaders (gibts das noch?)
- Stage Light 5 (Left)
- Stage Light 8 (Right)
Sensoren
Tasmota unterstuetzt DS18x20-Temperatursensoren. anlumo hat ein Sackerl davon herumliegen. Das bedeutet, wenn wir irgendwo die Raumtemperatur messen wollen, koennen wir einfach einen ESP hinwerfen mit einem solchen Sensor drauf. Dies ist mit dem Anti-Shutdown-Button bereits passiert, der ja sowieso schon im Vorraum liegt und noch ein paar GPIOs frei hat.
Audio Setup
Das Audio Setup (Verstaerker etc) im Hauptraum sind etwas kompliziert zum Aufdrehen und Abdrehen. Das alte System mit einem Master Power Switch war nett, aber der Inrush Current hat haeufig zum Ausloesen der Sicherung gefuehrt, und das Abschalten hat zu einem lauten Knall in den Lautsprechern gefuehrt (angeblich kein Problem fuer die Hardware, ist allerdings ein Problem fuer die Wetware).
Deswegen wird das jetzt ueber die Home Automation geregelt ein- und ausgeschalten. Dazu hat anlumo einen ePowerSwitch 8M und einen 8S gekauft, das sind rackmountable Stromschalter (Mikrocontroller, die Relais ansteuern), mit denen man 8 Leitungen separat ansteuern kann. Das ganze funktioniert ueber Ethernet oder RS232, anlumo hat dafuer eine Home Assistant-Integration (ein custom_component in Python) geschrieben, die an sich beide Kanaele kann. Der 8M hat beide Schnittstellen, der 8S hat nur RS232 (mit einem unpraktischen 4P4C-Stecker). Ueber das wurde das Timing dann im Home Assistant als zwei Automations programmiert und dadurch wird das ganze wieder auf ein einfaches ein/aus reduziert fuer die Benutzer:innen.
Steckerbelegung:
- Kleiner Amp
- Mixer
- Frequenzweiche
- 800W-Verstaerker
- leer
- leer
- leer
- 1200W-Verstaerker
Wichtig ist noch, dass fuer 1-4 bzw. 5-8 jeweils 10A maximal moeglich sind (weil die jeweils mit einem C14-Stecker versorgt werden, die Relais innen koennten 16A). Damit ist der 1200W-Verstaerker schon eher an der Grenze, und ist deswegen alleine auf einem Block.
Aktueller Stand
Home Assistant-Integration funktioniert mit dem S8 via Serielle direkt am Home Assistant-Server (mit USB auf RS232-Kabel mit custom pinout auf 4P4C und /dev/ttyUSB0).
Auf dem Geraet klebt ein Zigbee-Taster, um ein- und auszuschalten. Leider gibt es momentan noch Probleme mit dem State Management, wenn man zu schnell ein- bzw. ausschaltet (waehrend der Vorgang noch nicht abgeschlossen ist).
Lichtklingel
Dieser Sensor hat eine eigene Wiki-Seite. Ist im Home Assistant ganz normal integriert, verwendet allerdings nicht Tasmota, weil die Erkennung der Klingel etwas komplexer ist (weil AC-Signal). Stattdessen wird eine Arduino-Library fuer den Home Assistant verwendet, die ihn automatisch via MQTT als Sensor anmeldet.
Tasmota hat allerdings eine AC-detect-Funktion eingebaut, siehe hier. Vielleicht koennte die hier verwendet werden.
Geigerzaehler / Getraenkeverkauf
In der Kueche neben dem Kuehlschrank gibt es einen Scanner, bei dem Leute dazu angehalten sind, ihre Getraenkekaeufe zu registrieren.
Diese Daten vom Vortag landen jeden Tag um 4 Uhr in der Datenbank auf dem SmartLab-Rechner und werden via Grafana in einem Public Board visualisiert.
Es werden nur EAN-Codes gezeigt, die in der Datenbank registriert sind. Neue Produkte muessen daher manuell eingetragen werden. Gespeichert wird aber alles, d.h. das kann auch im Nachhinein passieren.
Die Software fuer den Transfer wurde von anlumo geschrieben und befindet sich hier.
Raspberry Pi-Touchscreens
- Falls notwendig, die Bildschirmaufloesung in /boot/config.txt einstellen
- Anleitung
- screen rotation
Abrechnung
Im 2022-03-09_Jour_Fixe wurde ein Budget von EUR500 fuer SmartLab allokiert. Im 2022-12-14_Jour_Fixe wurde das Budget um EUR200 erweitert, mit einer zusaetzlichen Bitte fuer Spenden von Metalab Regulars.
Hier sind die Rechnungen, die bisher ausbezahlt wurden:
Anzahl + Name | Preis |
4x Xiaomi Mini Switches | €46,37 |
3x Sonoff Temperatur/Luftfeuchtigkeitssensoren | €27,73 |
3x RS485-Adapter für Power Meter | €3,36 |
2x Sonoff Dual R3 | €24,50 |
3x Tuya Temperatur/Luftfeuchtigkeitssensoren (wide range) | €27,88 |
4x Sonoff S26 | €38,22 |
ePowerswitch 8S | €14,16 |
C14-zu-Schuko (Audio) | €17,00 |
C14-zu-C7 (Audio) | €5,33 |
Teclast P80T (Hauptraum-Steuerung) | €91,96 |
4x Athom Tasmota Smart Plug | €66,89 |
5x Aqara Smart Wireless Mini Switch Zigbee | €40,51 |
Bisher gesamt: EUR403,91
Spenden bisher: EUR50,00
TODO
- Fenstersensoren
- Smartes Licht-UI in der Bibliothek
- Smarte Schalter fuer Lichtsteuerung in WEL, Kueche und HEL.
- Aliens Welcome-Switch (???)
- IR Blaster fuer Beamer in der Bib (schon bestellt von anlumo)
Plaene fuer Lichtschalter:
- Single Switch
- HEL
- HM
- Double Switch
- Lasercutter (Licht + Lueftung)
- Fotolab (Ampel rot/gruen)
- Triple Switch
- Kueche (vorne + hinten + hinten Arbeitsflaeche/Abwasch)
- Fotolab (Decke + Rot + Lueftung)
Salty hat die alle bestellt.