Hausautomation - Wochenschaltuhr

Anwendungen, Tools, Userlibs und anderes nützliches.
RalfP
Beiträge: 23
Registriert: 17.03.2014 22:32

Hausautomation - Wochenschaltuhr

Beitrag von RalfP »

Dies ist ein Projekt mit Hardware und Software. Die Hardware besteht aus einem AVR-NetIO-Board (von Pollin) und einer selbstentworfenen Taster-LED-RTC-Platine. Der auf dem NetIO-Board original vorhandene ATmega32 wurde durch einen ATmega644 ersetzt und es wurde ein Arduino-Programm als Firmware dafür geschrieben. Diese Hardware hat acht Schaltausgänge und kann z.B. in der Nähe der Hausverteilung völlig autark laufen um über Relais Verbraucher in der Wohnung zu schalten. Wer mit Arbeiten an der der Hausinstallation nicht vertraut ist, sollte tunlichst die Finger davon lassen oder sich von einem Elektriker helfen lassen. Es ist aber auch möglich die Ausgänge mit einer Fernbedienung für Funksteckdosen zu verbinden. Die Ausgänge können dafür so eingestellt werden, dass sie Impulse zu den Schaltzeiten ausgeben.

Das dazu passende PC-Interface ist mit PureBasic 5.70 LTS geschrieben. Die beigefügte EXE-Datei ist für 32Bit kompiliert, läuft aber natürlich auch mit 64Bit. Damit können alle Einstellungen über das häusliche LAN, oder über das Internet an der Wochenschaltuhr vorgenommen werden. Ich denke, die Oberfläche ist überwiegend selbsterklärend. Es sind ein paar Bilder dazu beigefügt.

Damit es möglich ist, das Interface auch ohne die Hardware zu starten (zum Testen), gibt es ein Programm (den Server), das die Hardware simuliert. Der Server kann auf dem selben PC laufen wie das Interface, wenn man in die INI-Datei des Interface die IP-Adresse 127.0.0.1 einträgt. Der Server fragt beim ersten Start nach einer Firewall-Freigabe. Die muss man zulassen, sonst funktioniert es nicht. Der Server funktioniert wie die echte Hardware, zeigt aber die Schaltzustände der Ausgänge nur auf der Oberfläche an. Das Serverfenster ist auf dem Desktop immer im Vordergrund (Topmost).

Die beiden INI-Dateien (zeitschaltuhr.ini + server.ini) müssen sich im selben Verzeichnis wie die entsprechenden Anwendungen befinden. In der "server.ini" werden außerhalb der Gruppe "Global" die Daten der Aufgaben gespeichert, die bei der echten Hardware im EEPROM Platz finden. In beiden INI-Dateien sollten, falls erforderlich, händisch nur die Werte für "IPAdress", "Port" und "Impulsdauer" geändert werden.

Für den Fall, dass es jemand nachbauen möchte, habe ich alle Quelldateien beigefügt. Wenn die Platinenherstellung zu umständlich ist: Die Wochenschaltuhr läuft auch ohne die Taster-LED-RTC-Platine, nicht jedoch ohne das RTC-Modul (DS3231, ebay, ca. 1 Euro und hochgenau). Das RTC-Modul muss dann mit vier Leitungen an die AVR-NetIO angeschlossen werden (SDA an PortD2, SCL an PortD3, - an - und + an +). Mit den Tastern können vor Ort (vom PC unabhängig) die Schaltzustände und der Automatik-Modus eingestellt werden. Über die LEDs wird angezeigt, welcher Ausgang sich im Automatik-Modus befindet, und bei welchem dieser ausgeschaltet ist. Beides fällt natürlich weg, wenn man auf diese Platine verzichtet. Eine direkte Eingabe (ohne PC-Interface) der Schaltaufgaben ist nicht möglich.

Direkt auf die AVR-NetIO-Platine wurde ein Taster zwischen AVRmega644 Pin35 (Port A5) und GND gelötet. Dieser Taster dient beim ersten Start, und falls man die IP-Adresse der Wochenschaltuhr vergessen hat dazu, definierte Zustände wieder herzustellen. Außerdem werden alle programmierten Schaltzeiten gelöscht. Dazu muss der Taster gedrückt gehalten werden, während die Wochenschaltuhr eingeschaltet wird. Die Wochenschaltuhr ist danach unter der IP-Adresse 192.168.1.1 und Port 6832 zu finden. Mit dem Interface kann die IP-Adresse und der Port geändert werden.

Download: http://www.ralf-pagel.de/schaltuhr/Wochenschaltuhr.zip (ca. 2,5MB)

Für Kritik und Vorschläge bin ich offen. Wenn es Fragen dazu gibt, will ich sie gerne beantworten.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Hausautomation - Wochenschaltuhr

Beitrag von Mijikai »

Sehr interessanter Beitrag, leider kann ich keine Kritik oder Verbesserungen
offerieren da ich mich auf dem Gebiet Netzwerk und Microcontroller zu wenig auskenne.
Antworten