Irgendwelche offensichtlichen Probleme mit dieser DIY-Heimautomatisierung?

Ich würde gerne wissen, ob jemand große Probleme mit diesem System sieht, das ich in meinem Haus implementieren möchte. Die Software ist in der Beta-Phase, ich werde in ein paar Wochen mit der Hardware beginnen.


Aktueller Heimatstatus


  • Fast alle Leuchten sind temporäre Taster, die an ein 220-V-Relais angeschlossen sind
  • zwei Stellen im Haus, an denen alle Kabel angeschlossen sind

Da ein Bild mehr als tausend Worte sagt ... (die Artikel dort sind Beispiele, nicht die echten, die ich verwenden werde (anderes 220-V-Relais, mit Arduino verbundenes Relais, aber die Hauptidee ist gut dargestellt)DIY-System


  • Fügen Sie ein 220-V-Relais in Reihe mit den normalen Lichtschaltern hinzu und verbinden Sie es mit einem Arduino
  • Ein 30-A-Stromsensor wird zum Erfassen des Zustands des Lichtschalters verwendet
  • Jeder Arduino (oder mindestens einer in einer Packung vieler Arduinos - wo einer nicht ausreicht) Ethernet-Schild wird verwendet, um Daten über ein geschlossenes Netzwerk zu senden / zu empfangen (nicht über LAN / Internet zugänglich)
  • ein Mini-ITX-Atomboard, auf dem Linux ausgeführt wird, und einige node.js-Software lauscht auf UDP-Pakete im Netzwerk (der Controller)
  • jeder Arduino sendet alle x Minuten den Ein/Aus-Zustand als UDP-Paket
  • Jeder Arduino sendet ein UDP-Paket, wenn sich der Zustand ändert
  • Jeder Arduino wartet auf an ihn adressierte UDP-Pakete und kann ein Relais ein- und ausschalten
  • die steuerung empfängt und speichert alle daten auf einer netzwerkkarte und nutzt eine zweite zur einrichtung von webinterfaces mit authentisierung für lan
  • Andere Arduino-Geräte werden in Schalter und Sensorarrays eingebettet und können UDP-Befehle zum Ein- und Ausschalten von Lichtern senden
  • Der Controller verfügt über ereignisgesteuerte und zeitgesteuerte Aktionen, Zustandsänderungen und kann Befehle an den Arduino senden

Vorteile

  • Erhaltung der normalen Lichtschalter im Haus
  • Wenn das System ausfällt, funktionieren die normalen Schalter immer noch
  • modular - Ich kann weitere Knoten hinzufügen, wenn ich sie brauche
  • Der Controller wird nur für den erweiterten Betrieb benötigt
  • relativ
  • zukunftssicher - Ich kann mir nicht vorstellen, dass das UDP-Protokoll in absehbarer Zeit obsolet wird
  • Sicherer Internetzugriff von außerhalb des Hauses

Nachteile

  • Möglicherweise werden viele Arduinos und Ethernet-Schilde benötigt

Extras

  • Raspberry Pis mit Wärmebild-Webcams zur Präsenzerkennung, wobei eine modifizierte ZoneMinder-Installation verwendet wird, um UDP-Pakete basierend auf der Belegung zu senden
  • Ein paar Android-Telefone mit defektem GSM und schwachen Batterien, die als Touchscreen-Schnittstellen im Haus verwendet werden
  • ein Nokia-Telefon, das mit Gammu verwendet wird, um die Möglichkeit zu bieten, das Haus per SMS zu steuern

Klärung

Das 220-V-Relais, das gerade eingerichtet wird, wurde installiert, damit Lichter von mehreren Stellen aus einem Raum geöffnet oder geschlossen werden können. Stellen Sie sich das Relais als einen 3-seitigen Steuerkreis vor

  • Auf einer Seite kommt das 220-V-Netz herein
  • Eine Seite hat die Druckknöpfe, die mit 220 V funktionieren
  • eine Seite hat den Ausgang zur Glühbirne

Das 220V ist ein Ein/Aus-Relais. Jedes Mal, wenn eine Taste gedrückt wird, wechselt sie ihren Zustand, solange Sie eine Taste länger als 0,1 Sekunden drücken (so heißt es im Relaishandbuch).

Mein Elektriker hat das 220-V-Relais installiert, es ist nicht "normalerweise offen" oder "normalerweise geschlossen". Wenn die Stromversorgung ausfällt und dann zurückkehrt, kehren die Lichter in ihren vorherigen Zustand zurück.

Um das 220-V-Netzrelais auszulösen, muss ich nur ein normalerweise offenes Arduino-Relais verwenden und den geschlossenen Zustand für mehr als 0,1 Sekunden auslösen. Ich muss nur einen 220-V-Impuls an das 220-V-Relais senden. Dies ist der Hauptgrund dafür, dass die Lichter noch funktionieren, solange die Stromversorgung vorhanden ist. Alle Arduino können ausfallen und die normalen Lichter funktionieren wie gewohnt, ich werde nur die Fernsteuerungsmöglichkeit und die erweiterte Planung/Skripterstellung verlieren.

Was die Preise betrifft, beziehe ich Arduino+Ethernet oder Mega+Ethernet (und ein paar andere Arduino-Repliken) für etwa 15-25 $ pro Paar, also sind die Kosten relativ niedrig. In der Hauptcontroller-Software schätze ich 40 Stunden Arbeit und dann einige hundert Stunden über ein paar Jahre, um die Benutzeroberfläche zu verfeinern und Ereignisse hinzuzufügen und so weiter.

Alle Gegenstände werden in 2 Kisten im Haus platziert, eine für jede Etage, und eine dritte Kiste steuert den Garten, die Terrasse und die Bewässerung.

--- Später bearbeiten --- Baute den Schaltplan, Sie können ihn auf YouTube http://www.youtube.com/watch?v=BmsdXMbd2vo in Aktion sehen

Warum gehen Ihre Drucktasten zum Relais und nicht zum Arduino? Wo sind Ihre normalen Wandschalter in all dem? Haben Sie sich X10 angesehen, können Sie das immer noch in einen Arduino oder PC integrieren und Ihre gesamte Hochspannungsverkabelung entfernen. Wenn Sie sich für den Kauf von Relais entscheiden, stellen Sie sicher, dass sie eine hohe Stromstärke und Einschaltdauer haben, und stellen Sie fest, dass Sie einen Elektromagneten mit Strom versorgen, um das Relais zu verwenden, das ein Stromfresser ist.
Wie beabsichtigen Sie, die vorhandene Schalterfunktion beizubehalten, wenn das System ausgefallen ist, UND dennoch in der Lage zu sein, den Ein-/Aus-Status der Systemsteuerung zu haben?
@gregmac Wir haben angegeben, dass er plant, die Relais in Reihe zu verdrahten, sodass die Verwendung des NC (normalerweise geschlossen) so wirken würde, als wäre das System nicht installiert. Sie können es so betrachten, als wäre das hinzugefügte System nicht in der Lage, das Licht einzuschalten, sondern in der Lage, das Licht auszuschalten oder es in seinen vorherigen Zustand zurückzusetzen. Ich frage mich immer noch, wo die normalen Schalter sind, weil sie sich auch eher wie ein "nur Abschalten" verhalten würden.
Die einzige Möglichkeit, die mir einfällt, besteht darin, SPDT-Verriegelungsrelais zu verwenden (was bedeutet, dass Sie auch jeweils 2 E / A-Kontakte zur Steuerung benötigen) und dass die "normalen" Schalter alle 3-Wege-Schalter sind, wobei das Relais als fungiert anderen 3-Wege-Schalter ("3-Wege" == "2-Wege", wenn Sie sich in Großbritannien befinden). Dies bedeutet wahrscheinlich, dass die meisten Schalter ersetzt und die vorhandene Verkabelung durch 3-Leiter-Kabel ersetzt werden. Wie auch immer ... Ich kann nicht verstehen, wie dieser DIY-Ansatz billiger sein kann als Insteon / UPB / Zwave (oder X10, aber verwenden Sie das nicht, es ist schrecklich). DIY die Software-/Controller-Seite, aber nicht die Hardware/Schaltung.
Klarstellungen hinzugefügt. @gregmac - Ich muss 2 Dinge ändern - das Aruduino-Relais an das 220-V-Relais anschließen und die Drähte an die Glühbirne spleißen und den Stromsensor hinzufügen.
@Monso - das 220-V-Relais ist an die Wandschalter angeschlossen, da die Tasten mit 220 V arbeiten.
Können Sie eine Referenz für die von Ihnen verwendeten 220-VAC-Relais teilen? Ich bin noch keinem begegnet, der so funktioniert, wie Sie es beschreiben, wo Sie einfach die Stromversorgung des Lichts unterbrechen und das Relais den Zustand ändert. Ich kann sehen, wie das funktionieren könnte, wenn das Relais eingeschaltet ist, aber wenn das Relais ausgeschaltet ist, woher weiß es, dass Sie den Schalter umgelegt haben? Oder gibt es einen separaten 220-VAC-Steuerkanal, der das Relais auslöst?
Bei den Wandschaltern ist die + Klemme immer verbunden. Wenn ich es drücke, werden die 220 V an das Relais gesendet. Das Relais ändert dann den Zustand und es scheint, dass es den Stromfluss stoppt, bis ich aufhöre, die Taste zu drücken. Mein Elektriker wird in ein paar Tagen vorbeikommen und ich werde einen von der Kreuzung nehmen - normalerweise vermeide ich es, ohne ihn mit 220 V herumzuspielen. Die 220-V-Relais sind im Laden gekauft, nichts Besonderes.
"wo Sie einfach die Stromversorgung des Lichts unterbrechen und das Relais den Zustand ändert" - Es ist eigentlich das Gegenteil. Senden Sie 220 V an das Relais und es ändert den Zustand.

Antworten (2)

Ich habe in den letzten Monaten etwas Ähnliches gemacht. Momentan reicht das Setup nur bis zu meiner Werkstatt (zum Testen). Derzeit verwende ich ein einzelnes UNO zur Steuerung, das verschiedene Sensorzustände liest, einschließlich Lichtstärke und Temperatur / Luftfeuchtigkeit, sowie einige Tür- (Reed-Relais) und IR-Bewegungssensoren. Das Arduino liest den Status und sendet Nachrichten über UDP an eine Software (derzeit Python 2.7 unter Ubuntu), die dann die erforderliche Verarbeitung durchführt und Steuerbefehle wieder über UDP an das Arduino zurücksendet. Die Verarbeitung läuft derzeit darauf hinaus, die internen Lichtsensoren zu überprüfen und gegebenenfalls das Licht einzuschalten. Letztendlich möchte ich meine gesamte Beleuchtung auf 12-V-LED migrieren, damit ich gespeicherte Solarenergie auslasten kann, aber derzeit verwende ich ein ähnliches System wie Ihres, bei dem die Relais in Reihe mit dem Netzschalter für die Beleuchtung geschaltet sind. normalerweise geschlossen, so dass bei einem Ausfall der Steuerschaltung die Lichtschalter normal funktionieren sollten. Ich habe auch einige externe IR-Sensoren und das gleiche System aktiviert ein externes Sicherheitslicht, diesmal mit einem normalerweise offenen Relais. Ich halte die Verwendung der normalerweise geschlossenen Relais für die Hauptbeleuchtung für unerlässlich, da sonst die Hausverwaltung beginnt, sobald das System auf den Rest des Hauses ausgerollt ist. Ich möchte LEDs wegen ihrer dimmbaren Natur verwenden, wenn ich die PWM-fähigen Pins des Arduino verwende, dies wird dann ein schönes niedriges Lichtniveau für diese nächtlichen Toilettenfahrten ermöglichen, alles automatisch natürlich. Ich habe gerade eine Mega 2560 erhalten, die viel mehr IO bieten wird. Wie Sie selbst stelle ich mir separate Arduinos für Ein- und Ausgabe vor. Ich entwickle das Steuerungssystem in Python, mit der Absicht, es nach Abschluss der Entwicklung auf Raspberry PI zu migrieren. Dadurch kann ich alles in einem Gehäuse mit einem Statusbildschirm ausführen, der an das zusammengesetzte Video angeschlossen ist. Ich habe derzeit einen eingeschränkten Statusbildschirm auf dem PC, mit dem ich die Helligkeit von LED-Panels und GU16-Lampen steuern kann. Ich habe das Arduino so konfiguriert, dass es Befehle von jedem Gerät im Netzwerk akzeptiert, sodass ich eine gewisse Steuerung von den Android-Geräten einrichten kann, die ich im Haus habe. Ich habe auch eine voll funktionsfähige ZoneMinder-Installation, hatte aber noch nicht daran gedacht, sie zum Auslösen von irgendetwas zu verwenden, aber andererseits habe ich keine internen Kameras, nur externe. Ich habe Wärmebildkameras in Betracht gezogen, wie Sie vorgeschlagen haben, aber ich denke, die Kosten sind ein großes Problem (müssen unter 100 australische Dollar pro Zimmer liegen, um für mich machbar zu sein), also habe ich ' Ich beharre auf kostengünstigen IR-Sensoren (jeweils etwa 2 US-Dollar aus China). Mein Arduino-Code ist nicht der beste, aber ich bin mehr als bereit, ihn zu teilen. Es ist derzeit so eingerichtet, dass es die verschiedenen Sensoren in einer Dauerschleife überwacht und auch auf einen 3-Byte-UDP-String in Form von 410 lauscht (4 ist Licht 4, 1 ist für Ein, die letzte Ziffer wird für eine Helligkeitsstufe für die verwendet LED)

Ich stimme dem Kommentar zum Wiederverkaufswert des Hauses zu, aber ich habe nicht vor, in absehbarer Zeit umzuziehen. Ihre Bedürfnisse können unterschiedlich sein.

Der Python-Code führt auch eine gewisse DPMS-Steuerung der Monitore in der Werkstatt durch. Derzeit werden sie nach 10 Minuten ohne Werkstattbewegung in den Standby-Modus versetzt. Ich bin dabei, einige Steckdosen einzurichten, die genauso geschaltet werden wie das Licht, damit das System Dinge wie meinen Lötkolben und Verstärker ausschalten kann, die ich häufig vergesse, anzulassen.

Lassen Sie mich wissen, wenn ich Ihnen bei Ihrem Projekt behilflich sein kann. Es klingt großartig. Viel Glück

John

Ich lerne / verwende Node Js für den Hauptcontroller. Sie können sich meinen Prototyp hier ansehen: github.com/vladbabii/MasterController-HomeAutomation . Ich denke, der beste Ansatz dafür ist eine gleichmäßig gesteuerte Sprache, die mehrere Ein-/Ausgangspakete und Datenströme verarbeiten kann (TCP-Verbindung für kontinuierlichen Statusstrom, TCP-Verbindung für json-codierte, vom Browser nutzbare Daten, UDP-Befehle, die überwacht und generiert werden ). Der Unterschied zu dem, was ich elektrisch mache, besteht darin, dass ich ein 220-V-Relais habe, das nicht NO oder NC ist. Es schaltet nur den Zustand um, wenn es einen Impuls von 220 V erhält.
Und meine Arduino-Relais sind normalerweise geöffnet und geschlossen für ~ 100 ms, um einen Ein-Aus-Zustand auszulösen. Können Sie mehr darüber erzählen, wie Sie Ihre UDP-Pakete strukturieren? Ich verwende die einfache get-Struktur: identifier=<current_identifier>&action=sensor_update&sensor=<name>&value=<value>. Ich bin mir nicht sicher, ob ich an einigen Stellen drahtlos oder Kabel ziehen soll.
Ich erwäge, zwei Raspberry Pi als Server zu verwenden, aber ich habe keine Möglichkeit gefunden, ein zuverlässiges Failover durchzuführen und neu zu starten, wenn der Hauptrechner abstürzt. Irgendwelche Ideen dazu?
Hallo Vlad, mein UDP-Code ist ein Überbleibsel eines openCV-Projekts, das ich Anfang des Jahres gemacht habe (um Katzen in meinem Garten zu verfolgen), das Schwenk- und Neigeservos verwendete, also schickte ich drei Byte-Strings zur Steuerung an die Servos ihre Bewegung.
Ich bin Autodidakt und habe mich nie wirklich mit C auseinandergesetzt, aber trotzdem funktioniert der Code meistens. Als solches habe ich das absolute Minimum getan, mit dem ich im Arduino davonkommen kann, die meisten Entscheidungen (ob Lichter ein- oder ausgeschaltet werden usw.) werden in Python erledigt, um letztendlich auf dem Pi zu laufen.
Ich bin mir nicht sicher, wie ich den Code am besten posten soll, da er anscheinend nicht in dieses Fenster passt :) Ich schicke Ihnen einen Kontakt über Ihre Website und wir können ihn von dort aus sortieren. Ich habe vor, einen Blog über das Projekt zu führen, habe aber noch keine Zeit dafür.
Mit der Art und Weise, wie die Software aufgeteilt wurde (das Arduino übernimmt die Sensorablesungen und -schaltungen und das Pi die Logik), sehe ich keinen Grund, warum Sie nicht zwei Pis parallel laufen lassen könnten, mit derselben Software, die jeweils Pakete senden zum Arduino. Solange beide das Gleiche tun, sollte das Endergebnis in Ordnung sein. Dem Arduino ist es egal, woher er die Daten bekommt, da er nur seinen lauschenden UDP-Port überwacht und etwas tut, wenn er ein 3-Byte-Datenpaket erhält. Es überwacht auch die Sensoren, aber ich verwende dafür die PIND- und PINB-Register (gleichzeitiges Lesen).
Die Verwendung der Register ist etwas kniffliger, da sie mit dem vorherigen Zustand XOR-verknüpft und dann gegebenenfalls auf die Änderung reagiert wird. Es ist schön schnell und macht acht Sensoren gleichzeitig. Der Code ist noch sehr in der Entwicklung und nicht ohne Fehler, aber ich bin gerade dabei, den Uno durch einen Mega zu ersetzen und die Gelegenheit zu nutzen, um die experimentelle Verkabelung aufzuräumen.
Die größten Probleme mit zwei Servern, die alles parallel verarbeiten, sind das Timing und die Synchronisierung der Daten. Während letzteres ziemlich einfach zu erreichen ist, ist das erste auf einem PI schwieriger, da es keine interne Uhr hat, so dass Sie am Ende sehr viele Zeitsynchronisierungen durchführen müssen. Ich studiere immer noch alles, werde hier wieder posten, wenn ich eine Antwort habe. Habe hier auch eine Frage dazu gepostet: raspberrypi.stackexchange.com/questions/8125/…

Der größte Nachteil ist die sehr kundenspezifische Natur und die erforderlichen Änderungen, wenn Sie Ihr Haus verkaufen.

Wenn ich heute vorhatte, ein Haus zu kaufen, das jemand vor 10 oder 15 Jahren umfassend modifiziert hatte, um ein völlig individuelles Heimwerkersystem unter Verwendung des „Standes der Technik“ zu installieren, würde ich wahrscheinlich in die Richtung denken: „Wow, das habe ich alles rauszureißen und die Elektrik in diesem Haus komplett neu zu machen", und der Preis, den ich zu zahlen bereit wäre, würde dies widerspiegeln. Ich bin ein bisschen extrem, um den Punkt zu veranschaulichen, aber Sie müssen dies berücksichtigen.

Alles, was ich tun muss, ist, den Stromsensor zu entfernen und die Drähte wieder anzuschließen und das Arduino-Relais vom 220-V-Relais zu trennen. Und dann setzen Sie die alten Hauptkabel-Verbindungsabdeckungen wieder ein, anstatt die, die ich jetzt habe, um all das zusätzliche Zeug zu halten.
Oder Sie können handelsübliche fernsteuerbare Schalter/Dimmer installieren und müssen sich nie darum kümmern, sie zu trennen oder sich überhaupt mit dem Hausstrom zu befassen.