Plötzliche Zustandswechsel in Hausautomatisierungsprojekt

Hallo zusammen,

ich bin gerade dabei ein komplexes Arduino-Projekt für eine Haus-Automatisierung für Licht, Rollos, ... aufzubauen. An sich ist das Projekt auch schon fast fertig (und wird nach finaler Fertigstellung natürlich noch von einem Elektriker-Meister abgenommen!!!).

Ich habe aber noch eine Frage zu den Pull-Ups im Arduino, welche mich etwas überfordert.

Aber vielleicht zunächst zum Aufbau des Projekts:

  • Mein ganzes Haus wurde von mir mit kilometerlangen Kabeln (min. 1,5 mm²) sternförmig verkabelt. Das heißt, wirklich jede Steckdose, jedes Licht, jedes irgendwas, hat seine eigene Phase. Einzig Null-Leiter und Erdung werden teilweise geteilt, sind dann aber natürlich über dieselbe Sicherung (10A) und FI abgesichert!
  • 4 Mega-Arduinos fungieren als Output-Aktoren, welche jeweils 48x 5V-230V/10A-Relais schalten. Diese Relais sind natürlich extern mit Strom versorgt.
  • 3 Mega-Arduinos fungieren als Input-Sensoren, welche über ihre digitalen Eingänge die Signale von den diversen Tastern im Haus annehmen.
  • Die Arduinos selbst sind mit 12V versorgt.
  • Jeder Arduino verfügt über ein Ethernet-Shield, welche Input => Output direkt Kontakt aufnehmen. Derzeit über UDP, da sonst keine zufriedenstellende Reaktionszeit sicherzustellen ist.
  • Am Schluss programmiere ich dafür natürlich auch noch eine Oberfläche, welche jetzt hier aber nicht Thema sein soll.

Nun zu meinem Problem:

Ich habe alles fertig programmiert und es funktioniert einwandfrei. Nach einigen Anlaufschwierigkeiten, drücke ich einen Taster und die entsprechenden Relais werden geschaltet und die Lichter / Rollos gehen an.

ABER: Wie von Geisterhand, schalten sich plötzlich (teils nach Stunden) Lichter ein/aus oder die Rollos gehen runter/rauf. Sehr selten aber reproduzierbar. Und wie ich meinen Logs entnehmen kann bekommen die Output-Arduinos auch tatsächlich ein UDP-Geister-Package von den Input-Arduinos. Diese sind sehr Dumm und reagieren wirklich nur auf Zustandsänderungen der Pins!

Meine Vermutung ist, dass ich es mir mit den integrierten Arduino-Pull-Ups vermutlich etwas zu leicht gemacht habe. Immerhin schicke ich die 5V ja 10-50 m durchs Haus. Die Querschnitte sind zwar mit den erwähnten min. 1,5 mm² gut bemessen, aber ich stoße wohl an Grenzen. Übersprechen von anderen Stromkreisen schließe ich derzeit aus, da das Problem auch plötzlich auftritt, wenn seit längerem kein Schalter gedrückt wird oder Verbraucher laufen.

In einigen Foren-Threads habe ich gelesen, dass es wohl immer wieder Probleme mit den internen Pull-Ups gibt und man für spezielle Szenarien (und so eines habe ich vermutlich :slight_smile: ), selbst justieren muss aber ich finde nichts konkretes und selbst finde ich irgendwie gerade nicht den richtigen Ansatz.

Was vermutet Ihr, wo mein Problem liegt:

  • Brauche ich andere "eigene" Widerstände und um wieviel höher/niedriger muss ich die dimensionieren?
  • Überfordere ich die interne Stromversorgung der Input-Arduinos, mit den langen Leitungslängen? Würde eine externe Stromversorgung hier Abhilfe schaffen?
  • Oder muss ich bei den digitalen Eingängen des Arduino prinzipiell mit einem gewissen flackern rechnen (Aktuell reagiere ich auf jeden HIGH => LOW => HIGH - Zyklus, egal wie lange er dauert)?

Vielen, vielen Dank falls mich jemand in die richtige Richtung schubsen kann oder einen einschlägigen Thread verlinken kann, welchen ich noch nicht gefunden habe.

Daniel

Du hast es schon richtig erkannt, die internen Pullups können bei längeren Leitungen nicht ausreichen.
Da solltest du externe Widerstände hinzufügen, die vom Wert auch ca. 1 kOhm betragen können.
Die internen Pullups kannst du nicht justieren/verändern.

In einigen Fällen kann auch das nicht ausreichend sein und die Leitungen müssen mittels Relais vom Pin entkoppelt werden.

Edit:
Wozu schickst du noch 5 Volt durch die Kabel ?
Die Taster werden doch gegen GND geschaltet.

Und 12 Volt Betriebsspannung erscheinen mir zu hoch.
Da wird der Spannungsregler auf dem Mega sicher schon heiß.
Der muss ja auch das ETH-Board versorgen.

Ein anderer Weg, um die Störungen zu reduzieren, wären 20 mA Stromschleifen.
5 V bei eingeschaltet anlegen und ein Widerstand von 250 Ohm zwischen Pin und GND.

Gruß Tommy

Hallo,

mich verwirren mehrere Sachen: wenn es mechnische Taster sind muß man ohnehin entprellen. In Software üblicherweise. Es mag zwar so nicht auffallen wenn beim Drücken mehrere UPD-Pakete ausgelöst werden, schön ist es aber nicht. PullUp hat HotSystems schon angesprochen, ich würde vermutlich 2,2k PullUp nehmen, dazu 100n vom Eingang nach GND und 150 Ohm in Reihe zur Leitung die ins Haus geht. Gibt etwas Tiefpass gegen Störungen und begrenzt etwas den Strom durch die Schutzdioden um µC. Der muß ja Spannungsspitzen auf den Leitungen mit diesen Begrenzen.
Ich hffe auch, Du hast gute Relaiskarten genommen wo auch die Schutzabstände zwischen 230V und µC-Seite wirklich ausreichend sind und die Spulenisolation Spannungsfest ist. Staub u.ä., die da zu Kriechströmen führen können sorgen sonst irgendwann dafür, daß Du viele Arduinos wechseln mußt.

7 Arduinos... Vermutlich hätten es weniger mit ein paar MCP27S17 als Portexpander auch getan. Das Datenaufkommen bei Tastern und zu schaltenden Relais dürfte kaum so groß sein das diese sonderlich beschäftigt sind. Aber das ist Ansichtssache.

12V an den Arduinos dürfte auch für merkliche unnötige Erwärmung von deren 5V Spannunsgreglern führen.
Fördert deren Lebensdauer nicht unbedingt.

Gruß aus Berlin
Michael

Hallo zusammen,

super vielen Dank für die vielen Antworten.

Während ich mich noch beim HotSystems bedanken möchte kommt schon wieder so viel Neues :slight_smile:

@HotSystems:

Bei den 5V hatte ich mich falsch ausgedrückt. Es liegen nur die 5V vom Pull-Up am Taster an. Aber bei Betätigung werden diese natürlich auf GND gezogen.

Bei der Betriebsspannung hatte ich ehrlich gesagt - innerhalb der Mega-Specs - nach dem Prinzip "mehr ist besser" gehandelt. Aber ich nehme den Verbesserungsvorschlag gerne an. Ich hab hier auch noch ein paar 9V-Netzteile rumliegen.

@amithlon:

Mit Prellen hatte ich auch gerechnet. Bis jetzt konnte ich den Fall aber nicht provozieren (Keine auffälligen Logs!). Kann bis jetzt aber Glück sein oder auf die "noch" hochwertigen Taster zurückzuführen sein. Für den Fall hatte ich vor das Problem - wie bereits von dir erwähnt - softwareseitig zu lösen. Die Fehlsignale tretten aber erst Stunden später auf.

Mit Port Expandern hatte ich intensiv überlegt. Meine Hoffnung war es, möglichst mit Standardkomponenten Modularität und auch ein wenig Ausfallsicherheit zu erreichen. Wenn ein Ardunino ausfällt sind nicht gleich alle Lichter tot.

Als Relay-Board nehme ich die im Arduino-Umfeld gebräuchlichen "8-Kanal Relais Modul 5V/230V mit Optokoppler". Ich hatte die Hoffnung der Optokoppler bewahrt mich vor dem von dir angesprochenen durchschlagen. Staub muss ich natürlich eindämmen. Gibt es gegen diese Relay-Boards vorbehalte oder große Qualitätsunterschiede, bei gleicher Bauweise??

Die Betriebsspannung nehme ich nach eurem Tipp sofort runter!

@HotSystems, @Tommy, @amithlon

Eure Vorschläge bzgl. der möglichen Widerstandsschaltungen muss ich mir jetzt mal aufzeichnen und testweise aufbauen. Dafür meinen besonderen Dank!

Viele Grüße und schöne Feiertage.

Daniel

Bei den Relaismodulen gibt es Unterschiede. Poste mal einen Link zu Deinen Modulen oder ein Foto der Leiterplatte von unten.

Gruß Tommy

Hallo Tommy56,

natürlich gerne. Ich habe zwei Photos angehängt von unten und oben. Bitte nicht von dem Klettstreifen auf den Relais verunsichern lassen. Dieser dient nur der Befestigung einer Schutzabdeckung für die 230V-Anschlüße, damit man im Schaltschrank nicht aus Versehen reinfassen kann.

Viele Grüße

Daniel

Jaq, da sieht man schön die Schutzausfräsung um den 230V-Kontakt. Das ist gut.
Es gibt auch welche ohne und das ist weniger gut.

Gruß Tommy

Hallo Tommy,

danke für deine Einschätzung. Na dann bin ich ja beruhigt :slight_smile: . Auf das wohl sehr wichtige Detail hatte ich bis jetzt nicht geachtet.

Ich werd mir sicherheitshalber trotzdem ein paar Megas zur Reserve nach Hause legen. Man kann ja nie wissen, wie lang es die gibt. Und mein Haus gibts hoffentlich in 40 Jahren immer noch :wink:

Viele Grüße

Daniel

Wenn Du Dir mit 230V nicht sicher bist, lass das durch einen Elektriker abnehmen.

Eine elektrische Anlage im Eigenbau ist im Schadensfall für Versicherungen immer ein gefundenes Fressen, um nicht zu zahlen.

Gruß Tommy

Ich hab hier auch noch ein paar 9V-Netzteile rumliegen.

-->Das ist auch nicht wirklich optimal: der Linearregler auf den Boards verbrät die überschüssige Energie in Wärme, das geht wie schon erwähnt auf die Lebensdauer. Für ein dauerhaftes Vorhaben wie Deines wäre ein gutes 5V-Netzteil optimal (oder ein Step-Down-Wandler auf 5V), und die 5V legst Du direkt auf den 5V-Pin der Megas.

Zum Thema: siehst Du in den Logs auch, wenn sich ein Mega neu starten sollte?

Hallo,

mit 9V hätte ich wenig Bedenken wenn nur seine angegebenen Lasten an den Arduinos hängen. Die Reais hat ja getrennt versorgt. Das stecken die üblicherweise verbauten Linearregler noch ohne sonderliche Erwärming weg.
Je nach Einbauort von dem ganzen Kram wird er ohnehin die 35 Grad Marke der Umgebungstemperatur überschreiten.
Ich hoffe ja, er hat mal ausgerechnet welche Leistung das zusammen im Dauerbetrieb aufnimmt.
Auch wegen ser Stromkosten .

Gruß aus Berlin
Michael

Hallo nochmal,

@Der Lehmi:

Logging: Die Logs werden von mir an einen zentralen .Net-Core-Webserver im Netz geschickt. Sind also insofern auch ausfallsicher. Außer natürlich "Unhandled exceptions", die muss ich per "Serial" debuggen.

Spannung: Sind 5V den wirklich zu Empfehlen (inkl. Ethernet-Shield)? Ich habe mich hier ausschließlich auf die Mega-Tech-Specs gestützt:

Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V

Wenn du mir aber aus der Praxis empfehlen kannst, dass ich störungsfrei mit 5V arbeiten kann, dann mache ich das nur zu gerne. Damit könnte ich die gesamte Anlage an mein 5V/10A Netzteil dranhängen. Wie gesagt, deine Erfahrungswerte sind mir hier sehr willkommen :slight_smile: !!!

@amithlon:

10 A: Das ist übrigens auch die maximale Last, welche ich mir für das Relais-System ausgerechnet hatte, wenn alle Relais geschaltet sind. Dabei bin ich von 50mA pro Relais ausgegangen. Was an sich aber nur theoretisch ist, da viele der Relais nur kurzfristige Aufgaben haben (Rollos ...). Somit sind nie alle gleichzeitig an. Zusätzlich habe ich eine Sicherheitsroutine implementiert, welche bei x % geschalteten Relais, kein weiteres mehr aktiviert und eventuell queued.

Stromverbrauch: Der Stromverbrauch würde sich also bzgl. der Relais bei maximalen Ausbau und Schaltungszustand bei 50 W bewegen.

Hinzu kommen natürlich der Ethernet-Switch und die Arduinos, von denen aber zunächst nur 2-4 aktiv sein werden!

Und mein ETH8020 mit dem ich sicherstelle, dass die Relais der Arduinos erst dann Strom bekommen, wenn diese vollständig Initialisiert sind. Ansonsten habe ich die Erfahrung gemacht, sind die Zustände der Relais beim Boot teils undefiniert und schalten mir eventuell Verbraucher ein. Außerdem kann das ETH8020 meine wenigen 230V/16A Verbraucher schalten :slight_smile: .

@Tommy:

Abnahme: Genau diese Sorge wollte ich im Eingangsposting zerstreuen :wink: :

ich bin gerade dabei ein komplexes Arduino-Projekt für eine Haus-Automatisierung für Licht, Rollos, ... aufzubauen. An sich ist das Projekt auch schon fast fertig (und wird nach finaler Fertigstellung natürlich noch von einem Elektriker-Meister abgenommen!!!).

Die versicherungsrechtliche Sorge ist nämlich wirklich nicht unbegründet. Die Versicherung wird sich aber in meinem Fall aufgrund meines FH-Diploms in technischer Informatik und meines zusätzlichen Universität-Abschlusses schwer tun Laientum zu unterstellen. In beiden war Elektronik elementarer Bestandteil.

Nur etwas eingerostet ist das Wissen halt leider :wink: . Aber das wird ja gerade dank euch wieder entrostet.

Und kommerziell darf ich das natürlich ohne Meisterbrief nie tun!

Ich arbeite seit über 10 Jahren im Bereich Software-Entwicklung im Versicherungsbereich und bin daher durch mein Umfeld gut beraten. Jedoch möchte ich jedem, der ein ähnliches Projekt plant wie ich anraten, seine Policen eingehend zu prüfen. Stichwörter: fahrlässige, grob fahrlässige oder vorsätzliche Verursachung / Mitschuld. Den letzten Punkt wird keine Versicherung ausschließen. Aber die Einrede des ersten und teilweise auch des Zweiten sind häufig ausgeschlossen oder zumindest gedeckelt!

Danke noch mal an Alle! Ich bin wirklich fasziniert, wie schnell man in diesem Forum gute und zur Frage passende Antworten bekommt. Wirklich super :slight_smile: !

Viele Grüße

Daniel

Nach meinem Kenntnisstand beinhaltet ein Elektronikstudium nicht automatisch die Berechtigung zur Errichtung elektrischer Anlagen (incl. privater Bereich).
Aber Du willst es ja abnehmen lassen.

Gruß Tommy

Also rein Theoretisch kann/brauch man unter 12V im Haus ab 5m überhaupt nicht loslegen.

Besser 24V.

Spannung: Sind 5V den wirklich zu Empfehlen (inkl. Ethernet-Shield)? Ich habe mich hier ausschließlich auf die Mega-Tech-Specs gestützt:

–>Solange wirklich 5V am Board ankommen auf jeden Fall.
Die Specs, auf die Du Dich hier beziehst beschreiben die Versorgung über den Linearregler des Boards, welcher die Spannung auch nur auf 5V herunterbricht, womit der Controller arbeitet.
Die Buchse kannst Du dann natürlich so nicht weiterverwenden, die 5V gehören ja an den 5V-Pin, nicht an Vin.
Und da Du schon ein starkes 5V-Netzteil da hast, wäre das die deutlich sauberere Lösung.

Wenn du mir aber aus der Praxis empfehlen kannst, dass ich störungsfrei mit 5V arbeiten kann, dann mache ich das nur zu gerne. Damit könnte ich die gesamte Anlage an mein 5V/10A Netzteil dranhängen. Wie gesagt, deine Erfahrungswerte sind mir hier sehr willkommen :slight_smile: !!!

die Ethernetshields arbeiten problemlos wenn man den Uno/Mega direkt über stabile 5V versorgt, hab ich hier auch in mehreren Versionen im Dauerbetrieb.

Schuppeste:
Also rein Theoretisch kann/brauch man unter 12V im Haus ab 5m überhaupt nicht loslegen.

Besser 24V.

Ja, für die Steuerleitungen durchs Haus nehme ich geschirmte Leitungen und 24 Volt zu den Tastern. Dafür gibt es wunderbare Eingangswandler. Eine Platine hat 8 Eingänge, und hat die Verbindung zum Arduino über I2C. Kosten glaube ich so um die 13,- Euro und sind Stressfrei. Ich habe also keinen Pin vom Arduino an den Leitungen die durchs Haus gehen.

Hallo,

Franz54:
Ja, für die Steuerleitungen durchs Haus nehme ich geschirmte Leitungen und 24 Volt zu den Tastern. Dafür gibt es wunderbare Eingangswandler. Eine Platine hat 8 Eingänge, und hat die Verbindung zum Arduino über I2C. Kosten glaube ich so um die 13,- Euro und sind Stressfrei. Ich habe also keinen Pin vom Arduino an den Leitungen die durchs Haus gehen.

das klang im Anfangspost aber anders:
3 Mega-Arduinos fungieren als Input-Sensoren, welche über ihre digitalen Eingänge die Signale von den diversen Tastern im Haus annehmen.

ok, die ULN2808 Eingänge sind relativ robust und gesockelt scheine die ICs ja auch zu sein.

Über die Kosten der ganzen Geschichte denke ich nicht nach, habe ja kein Haus. :wink:

Gruß aus Berlin
Michael

amithlon:
Hallo,
das klang im Anfangspost aber anders:
3 Mega-Arduinos fungieren als Input-Sensoren, welche über ihre digitalen Eingänge die Signale von den diversen Tastern im Haus annehmen.

Franz54 ist aber nicht der TO.

Gruß Tommy