Projekt S-Home mit Modbus

Hallo zusammen,

ich bin gerade (seit 1-2 Jahren) am Umbauen und schaffe mir neuen Wohnraum. Ich baue einen Anbau zu einer neuen Wohnung um (Küche, Waschküche, Werkstatt, Wohnzimmer, Schlafzimmer und Bad). Als Elektronikbastler darf natürlich auch ein Smart Home nicht fehlen, bzw. ich werde es wohl auch ein bisschen übertreiben ;-).

Kurz in einem Satz: Ich habe mir vorgenommen, im Haus alle Steuerungen mit Cat6-Leitungen zu versorgen und alles Wichtige mit Arduinos über Modbus zu steuern.

Warum Modbus und Arduino und warum nicht WLAN und ESP?

  1. WLAN ist mir zu störungsanfällig, wenn es um Heizungs- und Solar/Batterie-Steuerung geht.
  2. WLAN benötigt immer eine Stromversorgung.
  3. Ich befürchte, dass es Grenzen bei der Menge an Geräten und der Geschwindigkeit gibt.
  4. Naja, wenn nachher 50 WLAN-Sender in der Wohnung strahlen, ist das auch nicht so toll.

Ich schreibe die Punkte mal direkt auf, weil ich nicht möchte, dass das Thema in einer Diskussion endet, in der Leute versuchen, die ESPs (berechtigterweise) verteidigen. Ich werde auch welche einsetzen, aber das wird ein anderes Projekt.

KNX und EAP: Diese Systeme sind mir zu teuer und unflexibel. Ich habe EAP übrigens vor 20 Jahren schon gelernt und verbaut. Die kommerzielle Entwicklung bei Smart Home ist so langsam, dass ich mir so etwas nicht ins Haus bauen möchte. Nicht einmal KNX-Kabel würde ich aus diesen Gründen verwenden.

Zeitplan: Ich habe Familie, eine Baustelle, eine Arbeit, und manchmal muss ich auch schlafen. Daher werde ich mich hauptsächlich sonntags auf das Projekt konzentrieren. Die grundlegende Entwicklung sollte in einem halben Jahr abgeschlossen sein.

Stand: Ich bin aktuell im Trockenaufbau vom Modbus und teste Möglichkeiten, wie ich eine schnelle Übertragung von Schalterzuständen hinbekomme (200 ms sollten möglich sein). Die Anbindung an meinen NUC mit Home Assistant werde ich jetzt auch mal realisieren.

Ziel: Ich habe leider noch keine ähnlichen DIY-Projekte in Deutsch gefunden, die dem KNX-System die Stirn bieten wollen. Daher möchte ich das, was ich hier mache, möglichst gut zum Nachbauen erklären. Ich brauche aber auch Hilfe bei diesem Projekt, denn ich kann von allem ein bisschen, aber wenn man etwas ordentlich machen will, sind Erfahrungswerte und Expertenwissen unersetzbar.

Bevor ich jetzt ins Detail gehe: Kann ich in dem Projekt Thema den ersten oder zweiten Beitrag von mir ständig aktualisieren, um einen Überblick über die aktuelle Hardware und Codes zu schaffen?

Ich hoffe, dass ich hier im Forum die richtigen Leute zur Unterstützung finde und dass die Ergebnisse möglichst vielen Leuten weiterhelfen können.

Mir ist jetzt dein angedachter Aufbau etwas unklar. Willst du diverse Tastermodule und Aktoren mit Modbus realisieren? Die Auswahl ist in dem Bereich speziell für dezentrale Aktoren usw mit Modbus nicht mal im Ansatz mit KNX vergleichbar. Von daher ist der Kostenvorteil für mich etwas fraglich. Oder willst du quasi einen komplett zentralisierten Ansatz?

Welche Rolle hat der Arduino in dem ganzen? Hast du auch ESP´s mit Ethernet betrachtet?

Das wäre jetzt ein Post, den ich ständig verändern würde.

Aufbau:

Mehrere Cat6-Leitungen werden ringförmig im Haus verlegt und kreuzen möglichst viele Schalterdosen. In den Dosen wird die Leitung mit D-SUB-Flachbandklemmen abgezweigt. Dort sitzt dann ein Arduino Nano mit MAX485 und einem Step-Down-Wandler. An einem zentralen Ort, wo alle Cat6-Ringe sich treffen, sitzt der Arduino Mega. Die Cat6-Ringe werden aufgetrennt: Ein Ende eines Adernpaares wird an den Mega angeschlossen, das andere Ende bekommt einen Abschlusswiderstand. Zwei Adernpaare werden an die Stromversorgung (beide Enden) angeschlossen. Das vierte Adernpaar dient als Reserve für Bus oder Versorgung.

Wenn es mehr als vier Ringe gibt, können die Bus-Adern auch hintereinander geklemmt werden, bevor sie an den Arduino Mega gehen (maximale Leitungslänge der Busleitung ca. 600 m, theoretisch bis zu 1,2 km). Der Arduino Mega regelt den Modbus und sendet/empfängt über ein Ethernet-Modul die Daten in ein LAN-Netzwerk, an dem auch der Home Assistant eingebunden ist.

Arduino Nano: > Steuereinheit Sind die Gehirne vor Ort, an denen sich alle möglichen Sensoren und Aktoren regeln lassen. Sie dienen als Modbus-Slave (mit Prioritätsnachrichten).

MAX485 Modul > Steuereinheit Sitzt direkt am Arduino Nano und fungiert als Netzwerkkarte für den Modbus.

Step-Down-Regler > Steuereinheit Regelt die Versorgungsspannung von 24 V auf 5 V für die Steuereinheit.

Arduino MEGA 2560 > Bus-Zentrale Der Master im Modbus-Netzwerk. Er kann vier Busleitungen gleichzeitig verarbeiten, sammelt Daten, regelt den Bus und bildet die Brücke zwischen Bus und Ethernet. Er kann auch kleinere Regelungsaufgaben erledigen.

Wiznet W5500 Ethernet Shield > Bus-Zentrale Verbindet den Arduino MEGA mit dem LAN-Netzwerk.

Spannungsversorgung > Bus-Zentrale Versorgt die Cat6-Leitung mit 24 V auf 2-3 Leitungspaaren.

Kosten:

Steuereinheit: (für eine Mindestmenge von 10 Stück kalkuliert)

  • D-SUB: 0,59 €
  • Arduino Nano Atmega328: 3,33 € (ein ATTINY88 für 1,91 € auch möglich)
  • MAX485 Modul: 0,56 €
  • Step-Down MP1584EN: 0,53 €
  • Gesamt: 5,01 € (mit ATTINY88: 3,59 €)

Bus-Zentrale:

  • Arduino MEGA 2560: 14,89 €
  • 4x MAX485 Modul: 2,24 €
  • Wiznet W5500 Ethernet Shield: 9,90 €
  • Spannungsversorgung 300 W: 15,45 €
  • Gesamt: 42,48 €

Home Assistant:

  • Fritzbox: 26 €
  • NUC (gebraucht): 90 €
  • Gesamt: 116 €

Wenn ich mal mit 30 Steuereinheiten rechne, die jeweils verschiedene Aufgaben erledigen können, und Gehäuse sowie Leitung (0,44 €/m) nicht dazu rechne, komme ich auf ca. 310 €. Das System könnte ich dann auf 200 Steuereinheiten erweitern und wäre netzunabhängig.

@meloneA

Welchen Vorteil bringt mir ein KNX-System ( außer ist halt einfacher )

Ich habe auch mal mit Ethernet Basierten Steuereinheiten das Projekt betrachtet aber wenn der Preis nicht stört dann hört es spätestens bei der Leitungsverlegung auf.

Bist du sicher, dass du Modbus RTU einsetzen willst? Ich habe relativ viel Erfahrung mit Modbus (wenn auch auf ESPs) und weiß daher, dass es da mit den MAX485-Adaptern und der Verkabelung eine Menge Probleme geben kann.

Wäre Modbus TCP über Cat6 (optional mit POE-versorgten Controllern) eine Alternative?

Wenn es RS485 sein muss, besorge dir auf jeden Fall Adapter mit automatischem Halbduplex, da bist du ein paar potentielle Fehlerquellen los.

Ach ja: bei deinem Mega in der Zentrale musst du für jeden RTU-Bus nochmal einen MAX485 einplanen.

@ Miq19

Ich habe mit SimpleModbusMaster/Slave Bibliothek schon paar gute Fortschritte gemacht.

Über die Probleme würde ich gerne mehr erfahren ( werde bestimmt noch über paar stolpern )

Ich will auf jeden Fall ein serielles Systeme ich glaube das schließt Modbus TCP aus oder ?

Ja stimmt da muss ich noch was dazu rechnen

Ja, TCP ist prinzipiell parallel.

Die möglichen RTU-Probleme sind vielfältig:

  • A+/B- über Kreuz an einem oder mehreren Adaptern
  • kein Abschlusswiderstand
  • keine Biaswiderstände an einem Busende
  • kein Einhalten der Quiet Time oder generell keine Busdisziplin
  • MAX485-Adapter, die beim Umschalten der Senderichtung kurz floaten
  • Busgeschwindigkeit zu hoch
  • Stern- und Daisy-Chain-Verkabelung in einem Bus
  • proprietäres Protokoll einzelner Server bringt andere aus der Spur

Übrigens: der Modbus-Standard spricht seit einigen Jahren von Client und Server :wink:

Danke für die Infos.

Aktuell habe ich auch immer ein Speicher Oszi am Bus um Komplikationen zu erkennen.

Ich wolle mich auch eigentlich erst ein mal vorstellen und ein extra Projekt Thema öffnen in dem ich auch paar Code´s setze. Was mich zu meiner Frage zurück bringt: Kann ich den z.b. mein zweiten Post auch noch nach langer Zeit abändern ? Oder gibt es hier eine Möglichkeit ein Haupttext ständig wieder anzupassen ?

zu den Steuereinheiten - Klemmen, Platine, Gehäuse und deine Arbeitszeit nicht vergessen. Kriegt man die Arduino auch über ein MAX485 Modul aktualisiert?

Ich würde hier eher größere Boards andenken die du z.B. pro Stockwerk montierst. Was simples wie ein Kinkony A16 gibts ja ab 20 Euro.

Projektdoku => git deiner Wahl, im Forum etwaige Diskussionen.

  • Na kar kommt da noch einiges ein Kleinmaterial hin zu welches nicht nur 0,20€ kostet aber selbst wenn der Preis um das 10fache steigen würde, wäre es immer noch günstig wenn wir von einem S-Home über Leitung sprechen.

Meine Arbeit ist natürlich ein großer Teil aber ich sehe es als Hobby und wenn es ferig ist, werden andere es einfach nutzen können und ich habe auch ein Teil zum Open Source beigetragen.

  • Über das MAX485 aktualisieren … weiß ich nicht genau. Auf dem Arduino NANO nutze ich fürs hochladen und den BUS den gleichen UART. Die Geschwindigkeit müsste auf jeden Fall gedrosselt werden, ich brach den Kontakt zum Reset… ist erst mal nicht essentiell.

  • Kinkony A16 ? Sagt mir nix. Habe kincony gefunden aber da komme ich Preislich überhaupt nicht in die Richtung von 20€ wenn ich ein Modul suche welches 4 UART Schnittellen hat.

Das Modul für die „Stockwerke“ wäre der MEGA mit W5500 ( mir reicht wahrscheinlich einer )

" Projektdoku => git deiner Wahl, im Forum etwaige Diskussionen."

Weiß nicht genau was du meinst aber ich habe jetzt mal dort ein Thema eröffnet : Smart Home on Wire mit ModBus

Nach dem die Kommunikation erst mal so funktioniert wie ich es geplant habe werde ich mir paar Arduino Nano´s mit Aktoren uns Sensoren bauen und sie mit dem Bus testen. Alles weiter gibt es dann in dem Thema

Ein Haufen Ideen hin geklatscht und nie wieder gemeldet…
Nein Ich war schon fleißig wenn ich Zeit hatte.
Hatte nur keine Ergebnisse die für andere gewinnbringend sind.
Ich habe diverse Sensoren und Aktoren getestet:
Radar, Luftfeuchtigkeit, Helligkeit, Temperatur, OLED, Bewegungsmelder, Kapazitive Taster, Programmierbare LED´s usw. um einfach funktionierende Code bereit zu haben und den Datenverkehr auf der Busleitung zu beanspruchen.
Erste Test von dem Arduino Mega über ein LAN Modul auf Home Assitand hat auch funktioniert.
Leider habe ich die Verbindung nur über ein Webserver hin bekommen.
Ich möchte aber eine Verbindung über POST damit Daten Just in Time übertragen werden.
Da muss ich nochmal ran…
Da aber mittlerweile Teile für meine Schalter angekommen sind habe ich mich letzten Sonntag ein bisschen mit der Hardware beschäftigt:
Die Schalter: Eine Plexiglas platte mit Tönungsfolie hinter der ein OLED Display und Kapazitive Taster sitzen. Optisch habe ich noch nicht den richtigen Kompromiss zwischen matter Folie und Sichtbarkeit des OLED Displays gefunden. Mit Glatten Folien für Autoscheiben bekomme ich aber gute Ergebnisse. Ich passe diese Schalter aktuell für Busch Jäger Rahmen an aber die sind auch noch nicht final weil ein 2,42“ OLED Display schwer dort platz findet ( Platine feilen… ).
Bis jetzt verkraftet mein Arduino Mega alles ganz gut aber ich werde wohl später ein oder mehrere ESP für die Schnittelle BUS auf LAN nutzen weil die doch um einiges Leistungsfähiger sind.
Der ESP32 Chip soll ein Dual-Core-Mikrocontroller sein ! Kann ich dem dann auch klar Aufgaben für den ersten und den zweiten Kern zuweisen ? Drahtlose Kommunikation wird sowieso nicht genutzt.