Editing Dorfautomatisierung

From Chaosdorf Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
|description=Dorfbus für die neuen Räume
|description=Dorfbus für die neuen Räume
|project category=Hardware
|project category=Hardware
|location=neuer / alter  Hackspace
|status=idea
|status=idea
|people={{U|xportdus }}, {{U|mraerino}}, {{U|timm}}, {{U|nomaster}}
|location=neuer / alter  Hackerspace
|source=https://github.com/chaosdorf/dorfmodbus
|people={{U|xportdus }}, {{U|mraerino}}
}}
}}
Siehe auch [https://docs.google.com/document/d/1Dkyi_x6rAzONZ8qZwPuei__K1MQYAL2mb327xg7GdEg/edit?usp=sharing dieses Google-Doc zu ModBus].
== High-Level-Entwurf ==
[[File:dorfbus-entwurf-xportdus.png|thumb|300px|Skizze von {{U|xportdus}}]]
Wir wollen verschiedene Busse nutzen können. Dazu gibt es pro Bus einen spezifischen Controller, der an diesem Bus hängt und (gemeinsam mit allen anderen Bus-Controllern) an einem Netzwerk.
An diesem Netzwerk hängt auch der Dorf-Controller (unsere zentrale Steuerungskomponente).
Einzelne Geräte (Sensoren / Aktoren) hängen an genau einem Bus.
Die Bus-Controller und der Dorf-Controller kommunizieren über das Netzwerk mit einem noch zu bestimmenden Protokoll.
Dieses Protokoll erlaubt es dem Dorf-Controller den gewünschten Zustand aller Geräte an die einzelnen Bus-Controller zu kommunizieren. Diese bilden diesen Zustand dann auf ihren jeweiligen Bus ab.
Zusätzlich ermöglicht dieses Protokoll den Bus-Controllern Events (z.B. Tasterdruck, Auslösen eines Bewegungsmelders, neuer Temperaturwert) an den Dorf-Controller zu kommunizieren, welcher dann daraufhin konfigurierbare Aktionen auslöst.
(TODO: Wo werden Geräte hinzugefügt?)
Aber nicht alle Sensoren müssen bzw. können Events auslösen. Es gibt auch welche, die nur triviale Aktionen auf dem jeweiligen Bus auslösen können (Lichtschalter -> Licht). Diese Reaktionen erfolgen rein im Bus-Controller. Die sie auslösenden Events werden nicht an den Dorf-Controller übertragen, das Ergebnis (neuer Status der Lampe) schon.


== Hardware ==
== Hardware ==
Line 35: Line 18:
==== KNX ====
==== KNX ====


Im Bereich der Hausautomatisierung gibt es hier den [https://de.wikipedia.org/wiki/KNX-Standard KNX-Standard]. Dieser ist aber - bedingt durch die meist recht teure Spezialhardware - eher ungeeignet.
Im Bereich der Hausautomatisierung gibt es hier den KNX-Standard. Dieser ist aber - bedingt durch die meist recht teure Spezialhardware - eher ungeeignet.
 
[https://de.wikipedia.org/wiki/KNX-Standard wikipedia - KNX-Standard]


Bei diesem Bus erfolgt die Übertragung der Daten in Richtung Aktor durch Erhöhung der Busspannung. Die Antwort erfolgt als Stromantwort seitens des Aktors. Dieses ist recht schön ersichtlich auf Seite 4 im [https://www.onsemi.com/pub/Collateral/AND9289-D.PDF Datenblatt] unten. 
Beim KNX Bus erfolgt die Übertragung der Daten in Richtung Aktor durch Erhöhung der Busspannung. Die Antwort erfolgt als Stromantwort seitens des Aktors. Dieses ist recht schön ersichtlich auf Seite 4 im Datenblatt unten. 
[https://www.onsemi.com/pub/Collateral/AND9289-D.PDF www.onsemi.com APPLICATION NOTE AND9289-D]


==== Modbus ====
==== Modbus ====
Line 48: Line 34:


Mit sehr kleinem Aufwand können auch eigene Aktoren gebaut werden. (Arduino Nano und RS484-Wandler). Dieser können dann auch LED-Anzeigen / LC-Display / Temperatur- / Feuchtefühler / Onewire-Leser / RFID-Leser / Aktoren enthalten. Der „Mitmach-“ und Bastelfaktor ist hier also ganz besonders hoch.
Mit sehr kleinem Aufwand können auch eigene Aktoren gebaut werden. (Arduino Nano und RS484-Wandler). Dieser können dann auch LED-Anzeigen / LC-Display / Temperatur- / Feuchtefühler / Onewire-Leser / RFID-Leser / Aktoren enthalten. Der „Mitmach-“ und Bastelfaktor ist hier also ganz besonders hoch.


==== CAN ====
==== CAN ====


* CAN-Bus (Controller Area Network)  
CAN-Bus (Controller Area Network)  
* ISO 11898-2 (Highspeed-CAN) und ISO 11898-3 (Lowspeed-CAN)
ISO 11898-2 (Highspeed-CAN) und ISO 11898-3 (Lowspeed-CAN)
* Der CAN Bus Controller selber kümmert sich um die ganze Übertragung incl. der "Datensicherung"
Der CAN Bus Controller selber kümmert sich um die ganze Übertragung incl. der "Datensicherung"
 


==== Zigbee ====
==== Zigbee ====


Einfache Funktionen wie Lichtsteuerung sind natürlich auch über Zigbee möglich. Ein Vorteil hier ist das Funkmesh - damit entfällt das Verlegen von Kabeln. Es gibt zahlreiche Chips, Shields und fertige Geräte so das eigene Aktoren gebaut werden können, das meiste aber bereits günstig zu bekommen ist.
Einfache Funktionen wie Lichtsteuerung sind natürlich auch über Zigbee möglich. Nur ist das Format hier nicht so offen, dass eigene Aktoren mit eigenen Funktionen an den neuen Dorfbus angeschlossen werden können. (TODO: Stimmt das?)
Ein Vorteil hier ist allerdings das Funkmesh - damit entfällt das Verlegen von Kabeln.


==== DMX ====
==== DMX ====
Line 63: Line 52:
DMX ist das alternativlose Bus-System der Veranstaltungstechnik. Es gibt einen riesigen Markt an Geräten, die darüber angesteuert werden, zum Beispiel PAR-Scheinwerfer (Bühnenbeleuchtung), Fluter (flächige Beleuchtung), Nebelmaschinen (die Cave ist überall), Moving Heads (wir haben welche im Keller!).
DMX ist das alternativlose Bus-System der Veranstaltungstechnik. Es gibt einen riesigen Markt an Geräten, die darüber angesteuert werden, zum Beispiel PAR-Scheinwerfer (Bühnenbeleuchtung), Fluter (flächige Beleuchtung), Nebelmaschinen (die Cave ist überall), Moving Heads (wir haben welche im Keller!).


Funktionsweise: 512 Client-Adressen auf einem dreipoligen Kabel. Geräte werden daisy-chained (hintereinander geschaltet) und belegen jeweils eine Startadresse und 0 bis n weitere Adressen, zum Beispiel für einzelne Farbkanäle bei RGBW-Leuchten. Zu jeder Adresse wird eine Einstellung zwischen 0 und 255 gesendet. Das macht man mit einem Controller. Aus elektrischer Sicht ist es auch ein RS485 Bus.
Funktionsweise: 512 Client-Adressen auf einem dreipoligen Kabel. Geräte werden daisy-chained (hintereinander geschaltet) und belegen jeweils eine Startadresse und 0 bis n weitere Adressen, zum Beispiel für einzelne Farbkanäle bei RGBW-Leuchten. Zu jeder Adresse wird eine Einstellung zwischen 0 und 255 gesendet. Das macht man mit einem Controller.


Der Controller ist ein mehr oder weniger bezahlbares Stück Hardware (Lichtpult) oder Software, die über einen DMX-Adapter mit dem Bus spricht. Dies erfolgt entweder direkt per USB-DMX-Adapter oder über das Netzwerk mit einem standardisierten Protokoll: Art-Net.
Der Controller ist ein mehr oder weniger bezahlbares Stück Hardware (Lichtpult) oder Software, die über einen DMX-Adapter mit dem Bus spricht. Dies erfolgt entweder direkt per USB-DMX-Adapter oder über das Netzwerk mit einem standardisierten Protokoll: Art-Net.
Line 80: Line 69:


* DMX-Scheinwerfer sind im Regelfall nicht für sparsamen Idlebetrieb konzipiert. Die bunten PARs in meinem Fundus (u.a. der unter verlinkte mit UV) brauchen ~6W im Idle, was bei größerer Menge einiges ausmacht. ⇒ Bitte nur mit vorgeschaltetem Relais zum ganz ausknipsen. --[[User:Derf|Derf]] ([[User talk:Derf|talk]])
* DMX-Scheinwerfer sind im Regelfall nicht für sparsamen Idlebetrieb konzipiert. Die bunten PARs in meinem Fundus (u.a. der unter verlinkte mit UV) brauchen ~6W im Idle, was bei größerer Menge einiges ausmacht. ⇒ Bitte nur mit vorgeschaltetem Relais zum ganz ausknipsen. --[[User:Derf|Derf]] ([[User talk:Derf|talk]])
* DMX arbeitet nach dem Master-Slave-Prinzip<s>, wobei hier ein Rücklesen von Daten seitens der Aktoren nicht möglich ist (im Prinzip wie der alte Dorfbus).</s> Es gibt RDM (Remote Device Management) für DMX was eine Rückmeldung der Geräte ermöglicht.
==== MQTT ====
[https://de.wikipedia.org/wiki/MQTT MQTT] ist ein Nachrichtenprotokoll, was TCP/IP-basiert arbeiten kann, aber nicht muss.


Vorteile:
* DMX Arbeitet nach dem Master Slave Prinzip wobei hier ein Rücklesen von Daten Seitens der Aktoren nicht möglich ist. Im Prinzip wie der alte Dorfbus. 
* brauchen wir wahrscheinlich eh fürs [[Dashboard]]
* einfaches Protokoll mit Libraries für quasi jede Programmiersprache
* günstige Hardware verfügbar (ESP)
 
Nachteile:
* braucht einen zentralen Server
* eigentlich nur sinnvoll nutzbar mit funktionierendem Netzwerk (TODO: Stimmt das?)
 
Fazit:
nur als Add-on für Datenexport und zur Steuerung nicht-essenzieller Geräte verwenden


=== Welcher Hardware gibt es? ===
=== Welcher Hardware gibt es? ===
Line 105: Line 79:


* [https://www.ebay.de/itm/Modbus-RTU-4-Way-Relaismodul-DIY-STM8S103-System-4-Road-Input-485-Communication/123890618570 Schaltaktor 4 230 Volt Relaisausgänge und 4 Eingänge]
* [https://www.ebay.de/itm/Modbus-RTU-4-Way-Relaismodul-DIY-STM8S103-System-4-Road-Input-485-Communication/123890618570 Schaltaktor 4 230 Volt Relaisausgänge und 4 Eingänge]
-> Achtung die Eingänge gehen direkt auf den Controller - hier muss auf jedem Fall eine Schutzbeschaltung her <br><br>
  ->>> https://github.com/TG9541/stm8ef/wiki/Board-C0135


* [https://www.ebay.de/itm/Modbus-RTU-2-Wege-Relaismodul-Ausgang-2-Eingang-Lautsprecherschutz-RS485-TTL-12V/293138481033 Schaltaktor 2 230 Volt Relaisausgänge und 2 Eingänge]
* [https://www.ebay.de/itm/Modbus-RTU-2-Wege-Relaismodul-Ausgang-2-Eingang-Lautsprecherschutz-RS485-TTL-12V/293138481033 Schaltaktor 2 230 Volt Relaisausgänge und 2 Eingänge]
-> Schutzbeschaltung über Widerstand und Transistor vorhanden - Schaltplan Ausschnitt folgt !
<br>
https://github.com/TG9541/stm8ef/wiki/Board-C0135
* [https://www.ebay.de/itm/LCD-digital-Drehstromzahler-Stromzahler-2x-S0-RS485-Modbus-RTU-Hutschiene-PV/123475200351 Stromzähler Drehstrom mit Modbus-Interface]
* [https://www.ebay.de/itm/LCD-digital-Drehstromzahler-Stromzahler-2x-S0-RS485-Modbus-RTU-Hutschiene-PV/123475200351 Stromzähler Drehstrom mit Modbus-Interface]
* [https://www.ebay.de/itm/LCD-MID-geeichter-Wechselstromzahler-Stromzahler-10-100-A-2x-S0-und-Modbus-RTU/362579811550 Stromzähler Wechselstrom mit Modbus-Interface]
* [https://www.ebay.de/itm/LCD-MID-geeichter-Wechselstromzahler-Stromzahler-10-100-A-2x-S0-und-Modbus-RTU/362579811550 Stromzähler Wechselstrom mit Modbus-Interface]
Line 131: Line 99:
* [http://bitwizard.nl/shop/DMX-interface-for-Raspberry-pi DMX Shield] für Raspberry Pi
* [http://bitwizard.nl/shop/DMX-interface-for-Raspberry-pi DMX Shield] für Raspberry Pi
* [https://www.ulrichradig.de/home/index.php/dmx www.ulrichradig.de - Projekte mit Licht] viele kleine Helferlein die auch einfach nachgebaut werden können - da Quelloffen
* [https://www.ulrichradig.de/home/index.php/dmx www.ulrichradig.de - Projekte mit Licht] viele kleine Helferlein die auch einfach nachgebaut werden können - da Quelloffen
==== MQTT ====
Die große Auswahl von [https://www.itead.cc/sonoff-wifi-wireless-switch.html Sonoff] und OBI ([https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko-weiss/p/4077806 wifi-stecker-schuko-weiss Type 1] oder [https://www.obi.de/hausfunksteuerung/link2home-wifi-steckdose-zeitschaltuhr-weiss/p/3940699 link2home-wifi-steckdose-zeitschaltuhr-weiss Type 2]).
Diese können recht einfach auf auf [https://www.tasmota.info/ Tasmota] "umgeflasht" werden und sind dann im 2,4 GHz WLAN zu erreichen und können über MQTT angesteuert werden.
Ruhestromverbrauch unbekannt.


== Software ==
== Software ==
Line 164: Line 125:
=== OpenHAB, Home Assistant, Node-RED, fhem , ... ===
=== OpenHAB, Home Assistant, Node-RED, fhem , ... ===


{| class="wikitable sortable"
Hier ist noch Recherche und Evaluation nötig.
|-
! Name !! einfach auf einem Raspi installierbar? !! nettes Webinterface !! API !! Aktionen im Web konfigurierbar? !! KNX !! modbus !! CAN !! ZigBee !! DMX !! MQTT !! geschrieben in
|-
| [http://www.openhab.org openHAB] || fertiges Image || ja || ja || teilweise || ja || ja || nein || ja || ja || ja || Java
|-
| [https://www.home-assistant.io/ Home Assistant] || fertiges Image || ja || ja || nein || ja || ja || nein || ja || [https://github.com/jnimmo/hass-dmx 3rd party plugin] || ja || Python
|-
| [https://nodered.org/ Node-RED] || curl -> sh || ja || wahrscheinlich || ja! || ja || ja || ja || ja || ja || ja || JavaScript
|-
| [https://fhem.de/fhem_DE.html fhem.de] || fertiges Paket || unglaublich viele mäßig schöne || unklar || nein || ja || ja || unklar || unklar || unklar || ja || Perl
|}


TODO: Persistenz nachschauen?
[http://www.openhab.org www.openhab.org]<br>
[https://www.home-assistant.io/  www.home-assistant.io]<br>
[https://nodered.org/ nodered.org]<br>
[https://fhem.de/fhem_DE.html fhem.de]<br>


== allgemeine Überlegungen ==
== allgemeine Überlegungen ==


* Fertige Lösungen haben wahrscheinlich einen niedrigeren Zeitaufwand nötig als selbstgebaute Lösungen - dafür sind sie möglicherweise teurer. (Ja, wir sind ein Hackspace, aber Infrastruktur sollte funktionieren und zu viel Zeit hat auch niemand.)
* Fertige Lösungen haben wahrscheinlich einen niedrigeren Zeitaufwand nötig als selbstgebaute Lösungen - dafür sind sie möglicherweise teurer. (Ja, wir sind ein Hackspace, aber Infrastruktur sollte funktionieren und zu viel Zeit hat auch niemand.)
* Wenn einer selber Basteln mag, sollte wir hier ein MODBUS Hardware Interface definieren. An dieses kann dann jeder seine eigenen Aktoren andocken. Dieses sollte so gebaut sein das selbst bei einer Fehlfunktion nicht alles zusammen bricht. 
=== Erfassen von Umweltdaten ===
* Aktuell haben wir aus dem Bestand  1 Phasen Stromzähler im Dorf liegen. Diese liefern über eine S0-Schnittstelle ( Optokopler ) entsprechende Impulse in Abhängigkeit des Stromverbrauchs.  Üblich sind hier wohl 1000 Impulse/kWh. Diese Impulse könnten mit einem ATMEGA328 gezählt werden und dann per Modbus bereitgestellt werden ( eigenes Projekt auf dem Modbus ).
* Fenster auf <-> Heizkörperventil zu
* Darstellung des Energieverbrauchs auf einem Teil des Grafana Displays


=== Ausfallsicherheit / Graceful Degradation ===
=== Ausfallsicherheit / Graceful Degradation ===
Line 196: Line 141:
* Wir erinnern uns an den Ausfall von {{H|Helios}}. So etwas sollte die Dorfmap in ihrer Kernfunktionalität nicht großartig stören.
* Wir erinnern uns an den Ausfall von {{H|Helios}}. So etwas sollte die Dorfmap in ihrer Kernfunktionalität nicht großartig stören.
* Auch der neue Dorfbus sollte auf einem eigenem Raspi laufen - im Idealfall sogar mit USV-Stromversorgung (z.B. Netzteile mit Akku-Regelung).
* Auch der neue Dorfbus sollte auf einem eigenem Raspi laufen - im Idealfall sogar mit USV-Stromversorgung (z.B. Netzteile mit Akku-Regelung).
* Kleine Verbraucher (z.B. LEDs) können direkt über den Bus mit Strom versorgt werden. (Hallo, <s>Notfallbeleuchtung</s> Orientierungslicht!)
* Was ist, wenn der Pi ausfällt?
* Was ist, wenn der Pi ausfällt?  
-> da der Pi sich immer nur zum Polling der Clients auf den (Mod-) Bus aufschaltet wird,  ist es denkbar hier einen 2. Pi mit auf den RS485 Bus zu hängen. Dieser kann dann mit einer Kopie der Steuerung direkt hochgefahren werden. Es könnte/müsste zu Erhöhung der Ausfallsicherheit immer ein 2. Pi in Lauerstellung bleiben.
* Schaltbefehle wie z.B. Licht sollten auch an den Aktoren selber ausgelöst werden können.
* Schaltbefehle wie z.B. Licht sollten auch an den Aktoren selber ausgelöst werden können.
* Andere Dienste (welche?) können dann wiederum via Netzwerk auf den Raspi zugreifen.
* Andere Dienste (welche?) können dann wiederum via Netzwerk auf den Raspi zugreifen.
Line 206: Line 149:


* Bei allen Systemen sollte auch der Ruhestromverbrauch im Hinterkopf behalten werden.
* Bei allen Systemen sollte auch der Ruhestromverbrauch im Hinterkopf behalten werden.
* Unser Ruhestromverbrauch bzw. unsere Ruheleistung liegt im Shutdown bei rund 550-600 Watt.
* Wie {{U|operative}} berichtet hat, liegt unser Ruhestromverbrauch bzw. unsere Ruheleistung bei rund 800 Watt (im Shutdown).
* Es gibt hier sicherlich we* Eventuell auch itere Geräte, die abgeschaltet werden können, wenn keiner im Dorf ist.
* Es gibt hier sicherlich weitere Geräte, die abgeschaltet werden können, wenn keiner im Dorf ist.
* Idee: "Masterbus", der diese Devices dann an die 230 Volt zuschaltet. (Siehe auch Anmerkung zu DMX oben.)
* Idee: "Masterbus", der diese Devices dann an die 230 Volt zuschaltet. (Siehe auch Anmerkung zu DMX oben.)


=== Schalten von 230 Volt ===
=== Schalten von 230 Volt ===


* Hierzu die große Auswahl von [https://www.itead.cc/sonoff-wifi-wireless-switch.html Sonoff] anschauen. Diese können recht einfach auf auf [https://www.tasmota.info/ Tasmota] "umgeflasht" werden und sind dann im 2,4 GHz WLAN zu erreichen. Hier benutzt man einfach das [https://mqtt.org/ MQTT-Protokoll] zur Ansteuerung.
* WIFI-Steckdosen von OBI mit ESP 8266 und Tasmota Oberfläche ([https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko-weiss/p/4077806 wifi-stecker-schuko-weiss Type 1] oder [https://www.obi.de/hausfunksteuerung/link2home-wifi-steckdose-zeitschaltuhr-weiss/p/3940699 link2home-wifi-steckdose-zeitschaltuhr-weiss Type 2]). Hier gibt es dann auch keine Probleme damit, dass Leute an 230 Volt "schrauben" - Ruhestromverbrauch unbekannt
* Idee: Schaltaktor selber als Leiterplatte in einem schutzisolierten Gehäuse anfertigen, der dann mit 3,3 oder 5 Volt direkt 230 Volt schalten kann. Dann kann auch jeder gefahrlos 230 Volt schalten.
* Idee: Schaltaktor selber als Leiterplatte in einem schutzisolierten Gehäuse anfertigen, der dann mit 3,3 oder 5 Volt direkt 230 Volt schalten kann. Dann kann auch jeder gefahrlos 230 Volt schalten.
* Modbus-RTU-4-Weg-Relaismodul ( 4 Eingänge , 4 Schaltausgänge für 230 Volt ) [https://www.ebay.de/itm/Modbus-RTU-4-Way-Relay-Module-4-Switch-Volume-Road-Input-485-Communication-NI5L/401868615098 www.ebay.de/itm/Modbus-RTU-4]
* Modbus-RTU-2-Weg-Relaismodul ( 2 Eingänge  , 2 Schaltausgänge für 230 Volt ) [https://www.ebay.de/itm/Modbus-rtu-2-way-relay-module-Output-2-input-channel-switch-TTL-RS485-com-S6F5/174054209423 www.ebay.de/itm/Modbus-RTU-2]
* Beide Aktoren - haben per default immer die Busadresse 001 und muss dann auf einen Wert zwischen 002 und 255 Programmiert werden. Es gibt auf Module mit Kodierschalter zum Einstellen der Bus Adresse.
<br> bei der "RTU Modulen" sollte man sich einḿal die China Relais genauer anschauen - wollen wir damit 230Volt / 10Amp schalten ?
Eventuell eigene Module Herstellen mit z.B. Finder Relais ! Für die ersten Test's und zum endwicklen von eigener Software sollten die Module reichen !
Please note that all contributions to Chaosdorf Wiki are considered to be released under the Attribution 3.0 Unported (see Chaosdorf Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)