- Details
- Hausautomatisierung & Smart Home
- Hits: 6399
Hier stelle ich ein kleines Wocheendprojekt zur Messung von Licht, Temperatur und Luftdruck vor. Ursprünglich mal vorgesehen um Lichtabhängig Relais zu schalten, dient es jetzt als kleine Wetterstation. Der Raspberry kommuniziert per I2C mit einem Lichtsensor TLS2561 sowie mit dem Boschluftdruck und Temperatursensor GY/BM280, konvertiert die Daten in physikalisache Werte und schreibt diese jede Minute in eine SQL Datenbank (MySQL).
Der Raspberry III hat ja einen eingebauten WLAN-Chip, so kann man einen Hotspot aufbauen um per Tablet (HTML, JAVASCRIPT) mal eben die aktuellen und historischen Daten anzeigen zu lassen.
Die Sensoren haben ich als preiswerte Breakoutboards beschaft, wobei die Kosten sehr überschaulich sind. Zusätzlich habe ich dem Raspberry noch eine RTC spendiert, damit die Daten auch bei Stromausfall zeitrichtig erfasst werden.
Im Bild sieht man die 3 Breakout-Boards mit etwas Verkabelung.
Hier jetzt die Details des Aufbaus.
Die Downloads fürs Programm und die Verkabelung folgen noch.
- Details
- Hausautomatisierung & Smart Home
- Hits: 28184
MYSQL Auswertungen
Die Heizungsdaten die das Infrarotinterface der Vitotronicsteuerung im Laufe der Zeit geliefert hat stehen mit eigenem Label und Wert in einer MySQL Datenbank. Diese Daten sollte man aber auch auswerten um zu sehen, wie wirtschaftlich die Heizung arbeitet. Wieviel Energie habe ich verbraucht ? oder wie hoch war der Solarertrag diesen Monat sind interessante Informationen. Hier stelle ich jetzt so nach und nach die notwendigen Auswertungen als kleine PHP-Scripts ein.
SOLARERTRAG
Eine Liste der täglichen Solarerträge bekommt man mit folgender MySQl Abfrage:
.syntaxhighlighter { overflow-y: hidden !important; overflow-x: auto !important; width: 200px !important } >SELECT cast(timestamp as DATE), min(value),max(value),max(value)-min(value) from `vito_values` WHERE label_id = '0x6560' group by 1 order by 1 LIMIT 0,365
Mit etwas PHP und JPGraph kann man dann die Auswertung erstellen und im Webbrowser darstellen. Man sieht jetzt z.B. dass man innerhalb von 40 Tagen mehr als 1 Megawatt Energie vom Dach in den Speicher holt. Vorausgesetzt die Heizungssteuerung rechnet richtig. Das wäre nur mit dem kleinen Vitotronic Display nur mühsam von Hand auszuwerten.
Hier findet sich der PHP-Quellcode zum Download.
Letzte bzw. neueste Werte auslesen: Die letzten Werte für alle Labels bekommt man mit folgendem Query:SELECT vito_values.label_id, vito_values.value,vito_values.unit,max(vito_values.timestamp) FROM `vito_values` group by vito_values.label_id order by label_id // und hier die letzten Werte mit den dazugehörigen Labelnamen: SELECT vito_values.label_id, vito_values.value,vito_values.unit,max(vito_values.timestamp) as date, vito_labels.label_name FROM `vito_values` left join vito_labels on vito_values.label_id = vito_labels.label_id group by vito_values.label_id
Hier gibts noch ein Beispiel für eine schöne grafische interaktive Darstellung mit dygraphs:
Auswertung Viessmann Heizungsdaten
- Details
- Hausautomatisierung & Smart Home
- Hits: 6575
Wer kennt das nicht, aus unerfindlichen Gründen hängt sich der heimische Router auf und nur ein Neustart kann ihn wieder zum Leben erwecken.
Im Prinzip ist es ja recht leicht, aber bis man alles zusammen hat vergehen locker 2-3h, daher habe ich hier mal zusammengetragen wie ich es gemacht habe.
Das Prinzip: Alle 5 Minuten wird durch eine http-GET Anfrage kontrolliert ob mindestens eine von zwei Webseiten erreichbar ist. Falls beide Webseiten nicht erreichbar sind, wird der Router kurz von der Stromversorgung getrennt und wieder neu gestartet. Nach einer einstellbaren Zeit von z.B. 120 Sekunden wird wieder geschaut ob er denn jetzt funktioniert. Gleichzeitig wird ein Logfile geschrieben um die Störung auch mitzubekommen. Man sollte übrigens Web-Urls verwenden die sicher Online erreichbar sind z.B. Spiegel.de oder Google.de.
Die Unterbrechung der Stromversorgung habe ich allerdings nicht auf der 230-Netzteilseite sondern auf der Niederspannungsseite des Routers gemacht - dies reduziert den Relais- und Sicherheitsaufwand beim Auf- und Einbau. Man könnte sicherlich auch ein kleines Watchdog-Programm auf dem Router selbst laufen lassen, aber viele Router erlauben das leider nicht, so muss man keinen Eingriff in den Router machen.
Nachfolgend ein Bild des Aufbaus:
Die Relaisplatine bkommt man recht günstig z.B. bei Amazon oder auf EBAY.
Einfach mal suchen nach SunFounder Relay Module 4 Kanäle
Verkabelung Relais an Raspberry Pi
1. Hardwareanschluss einer kleinen Relaisplatine an die GPIOs des Raspberry-Py
Pin 11 : GPIO 17 : Relaisport
Pin 13 : GPIO 27 : Relaisport
Pin 15 : GPIO 22 : Relaisport
Pin 16 : GPIO 23 : Relaisport
2. Installation des Raspi Image Jessie
3. Installation der Python Libraries für die GPIOs
sudo -apt-get install python-dev
sudo apt-get install python-rpi.gpio
sudo apt-get python-netifaces
sudo apt-get install ethtool
Jetzt fehlen nur noch die 20 Zeilen Phyton Programm ;-)
- Details
- Hausautomatisierung & Smart Home
- Hits: 7245
Zur Steuerung einer ganzen Gruppe mit bis zu 4 Jalousien oder Rolladen habe ich jetzt einen Kontroller auf Basis des Microprozessors STM32F103 entwickelt.Diese CPU hat viele IOs, genügend Flashspeicher bis zu 512kB und eingebauten CAN-Bus Controller. Zur zentralen Steuerung per Hausbus/CAN-Bus) ist dies natürlich ideal. Der Ruhestromverbrauch liegt bei ca. 17mA. Die Schaltung verwendet einen kleinen Step-Down Regler LT1933 von Linear Technologies um aus der 12V-Versorgung durch die Buskabel die benötigten 3.3Volt für den Prozessor zu gewinnen.
Die Ansteuerung der 8 Relais efolgt wahlweise über klassische NPN-Transistoren oder über moderne Digitaltransistoren von Infineon BCR135.
Zur lokalen Bedienung hat die Schaltung 4*2 Tastereingänge um jede Jalousie einzeln ab oder auf zu steuern, so kann neben jeder Jalousie ein lokaler Schalter montiert werden um die Jalousien auch bei Ausfall der zentralen Steuerung zu bedienen.
Als Besonderheit habe ich dieser Schaltung neben den vier einzelnen Schaltereingängen noch zwei zusätzliche Master-Eingänge spendiert. Über diesen Mastereingang kann man an einem zentralen Schalter (neben dem Lichtschalter) direkt an der Tür - alle Jalousien gleichzeitig steuern. Dies erschien mir sinnvoll um nicht zu jeder Jalousie einezln hinlaufen zu müssen.
Über den CAN-Bus-Eingang kann die zentrale Haussteuerung jeden Kanal einzeln oder auch als Teil einer Gruppe kommandieren. Die Firmware kann per RS232 bzw. USB-Anschluss parametriert werden. Hierzu ist nur die sogenannte Aktor-Id (also CAN-Bus Adresse) einzustellen. Alle weiteren Parameter kann man dann über den CAN-Bus einstellen - es geht aber auch per RS232/USB. Die wesentlichen Parameter sind die Gruppenadresse, sowie die Fahrzeiten für komplette Auf- oder Abfahrten. Als Besonderheit kann man auch die Zeit programmnieren die eine Rolade oder Jalousie benötigt um zur Häfte zu fahren. Dieser Modus wir verwendet wenn man sowohl Ab- als auch Auf-Taste gleichzeitig drückt. Dies ist sinnvoll wenn man z.B. Rolladen auf gesperrt setzen möchte.
Als Busleitung ist nur GND, +12V, sowie CAN-H und CAN-L anzuschliessen - hier verwende ich wie überall das grüne EIB-Kabel, da es für solche Steuerungsanwendungen perfekt geeignet ist.
Hier folgen die Bilder des Controllers in zwei Versionen. Die kleine Tasterplatine habe ich nur zum Test der Software benötigt.
Durch die Schaltung mit den Sharp-Halbleiterrelais - die im Nulldurchgang schalten - sind die Snubber-Cs aber eigentlich nicht mehr nötig. Diese Schaltung funktioniert auch mit alten Rolladenmotoren da für alle Relaiskontakte auch Snubber-Cs vorgesehen sind. Aber wie gesagt die habe ich am Ende nicht mehr bestückt. Hier gibts noch einen Artikel zum Thema: Halbleiterschalter bei Rolladenmotoren.
Die Downloads für die Schaltung, die Platine und für die Firmware finden sich nachfolgend:
Und hier noch die Firmware im ELF-Format:
Nach dem Flashen erfolgt die Einstellung der Parameter, Adressen etc. über die Terminal-Schnittstelle (38400Baud). Der Einbau der Platine kann in standard Bopla-Gehäuse erfolgen.
Achtung:
Diese Schaltung ist nicht für Anfänger geeignet die keine Ausbildung im Fachbereich Elektrotechnik haben, da hier potentiell mit hohen (Netz-) Spannungen gearbeitet wird. Aufbau und Test daher unbedingt nur mit Trenntrafo. Hier gibts sowas für kleines Geld:
- Details
- Hausautomatisierung & Smart Home
- Hits: 23086
Vorwort
Diesen Artikel habe ich von der alten Website übernommen, da er recht häufig aufgerufen wurde und immer noch wird. Heutzutage heißt es nicht mehr Hausautomatisierung sondern Smart Home.
Übrigens kann ich jedem davon abraten einfach mal was zu basteln. Ein System sollte nicht nur ein paar Jahre funktionieren, sondern auch von einem potentiellen Käufer oder Mieter problemlos betrieben werden. Sonst wird der die ganze schöne Technik rausreißen - und was Richtiges kaufen. Meine Technik ist jetzt ziemlich genau 10 Jahre alt- und funktioniert im Großen und Ganzen recht problemlos. In dieser Zeit habe ich viele sogenannte professionelle Systeme auf dem Markt kommen und gehen gesehen. Zu gr0ß ist die Konkurrenz und der jeweilige Hype der Entwicklungsinvestitionen der Firmen in die Tonne haut. Daher spricht in meinen Augen nichts - aber auch wirklich garnichts - gegen eine Selbstbaulösung.
In Kürze erscheint hier auch die neue "Smarthome" Alarmanlage, die sich auch vernetzen läßt und über GEO-fence dann auch herausfindet wenn ich vor der Haustüre stehe.
Einleitung
Vor ziemlich genau 10 Jahren hatte ich mich gefragt wie man denn wohl Dinge im Haushalt automatisieren könnte. Eigentlicher Auslöser war die Anschaffung von recht vielen Aussenjalousien die elektrisch bedient werden können. Nach Recherche findet man recht schnell so was wie EIB-Bus, LON etc.
Das Problem ist, das ist zwar ein Standard aber durch recht hohe Lizenzgebühren wird verhindert dass sich der Standard durchsetzt. Alleine für ein Programmiertool soll man fast 2000 Euro bezahlen, aber das ist natürlich nur für den "Edel-Elektriker" gedacht - der Rest der Bevölkerung ist ja dafür zu doof. Die Komponenten die man natürlich dann im ganzen Haus installieren muss, sind auch nochmal mit 75 bis 100 Euro für einen einfachen Schalter eher hinderlich. Kurz und gut man muss was suchen und finden was das Ganze etwas billiger macht.
Heute gibt es ja allerlei proprietäre Lösungen (ja ja - wie meine auch) die dann zwar alle Produkte EINES Herstellers steuern können, aber die Zusammenarbeit mit Produkten anderer Hersteller klappt leider nicht so gut - bis garnicht.
Ja OK Arbeitszeit ist auch teuer.., aber der Weg ist das Ziel. KNX hab ich mir auch etwas detailierter angeschaut, das geht genau in die richtige Richtung, aber auch hier ist die SW und die einzelnen Komponenten doch recht teuer.
Zentralcomputer bitte melden
Der zentrale Rechner ist ein kleiner Nano PC der Firma ZOTAC. Mit ca. 25W Stromverbrauch erschien mir der am besten geeignet dauerhaft die Steuerung, Datenerfassung im Haus zu übernehmen. Der ist noch erheblich kleiner als ein Netzwerkrouter und kann mit einer kleinen SSD Drive auch anspruchsvolle Aufgaben wie Bewegungserfassung der Türkamera locker erbringen. Er hat diverse - kompakte - Schnittstellen wie USB, eSATA oder HDMI. Als Betriebsystem läuft ein Debian Linux auf dem dann auch alle modernen Packages installierbar sind. Ein Apache Webserver und eine Menge Java Script bringt alle Aufgaben und Schnittstellen per Webseite zum Benutzer - und zurück.
Die Größe des Rechners auf dem Bild ist übrigens ca. 130*130*60mm.
Es gibt Ihn auch in einer noch kleineren Version ohne WLAN und fester SSD-Festplatte. Dann ist er sogar nur 90mm*90mm groß (das Bild mit dem Bleistift)
Alle Anschlüsse in die "elektrische Welt" werden über USB abgewickelt. Hierzu habe ich kleine USB Controller-Platinen entwickelt (dazu später mehr). Die Entscheidung für USB war insofern schnell getroffen, da kaum noch Rechner einen RS232 oder Parallelport besitzen.
Nachtrag: Ja so kleine Rechner wie der Zotac Nano haben eben nur noch "kleine" Schnittstellen. USB war also eine perfekte Wahl. Den Raspberry Pi zur Haussteuerung einzusetzen hatte ich auch bereits einmal probiert, allerdings war der für die Aufzeichnung der Webcambilder und als interner Webserver in meinen Augen eigentlich zu langsam. Den Ausschlag hat aber gegeben, daß der Raspberry Pi immer mal wieder einfach stehen blieb. Ich denke entweder durch Störungen die über die Stromleitung einstreuen oder durch Flashfehler. (ja die Flashkarte hatte ich auch schon mehrfach getauscht).
Temperaturmessung
Die wirklich erste Aktion - quasi als Test auch von möglichen Bussystemen - war der 1-wire Bus von Dallas Semiconductor. Dies ist ein 1-Draht-Bus der angeblich eine Ausdehnung von mehr als 100m haben darf. Er wird aber meist nur auf Platinen, Motherboards etc. verwendet.
Dafür habe ich dann im Haus bereits verlegte Telefonleitungen und Alarmanlagenkabel verwendet die noch freie Adern hatten. Mein erster Schritt war es Temperaturen an wichtigen Stellen zu messen und permanent aufzuzeichnen. Als Temperatur-Sensoren habe ich DS18S20 und DS1820 verwendet. Die Temperaturen habe ich dann alle 10s in einer MYSQL Datenbank geloggt und per Webseite auch angezeigt. Anzeige erfolgt mit Dygraphs wie hier:
Ergebnis:
Geht im Prinzip ganz gut - aber wenn es nicht geht kann man fast immer nur probieren (was hab ich noch als letztes angeschlossen...mmhh). Der Vorteil genau dieser Sensoren ist, die haben wirklich nur 3 Beine und liefern die Temperatur digital gewandelt auf 0.25 Grad genau. Weiter gibt es noch diverse IO-Chips mit 8bit- oder 16bit-Digital IO Port, die im Prinzip auch funktionieren, aber wie gesagt meine Tests ergaben eigentlich: völlig ungeeignet für einen zuverlässigen Hausbus.
ATMEGA und Co - CPU
Um die Wünsche von HoLi - so heisst unser Steuerrechner Ho=Home Li=Linux) in die Außenwelt zu tragen, gibt es kleine Schnittstellenplatinen die USB nach was auch immer realisieren. Die Platinen haben einen ATMEGA 644(AU) als CPU mit 8 bzw. 16MHz getaktet, sowie USB-Controller, manche auch noch CAN-Controller und CAN-Treiberchips, man weiß ja nie was man noch braucht. Die Wahl fiel 2008 auf den Atmel Controller ATMEGA64420AU weil er relativ einfach zu programmieren ist. Die AU-Version (für Automotive) hat zwei UARTS zur Kommunikation mit externen Systemen, eine davon wird für den USB Interface Controller-Chip verwendet falls eingebaut.
Nachtrag 2015
7.6.2015: Neue Rolladenkontroller funktionieren jetzt auch mit dem STM32F103RB oder auch mit STM32F405RGT6 ARM CORTEX M4. Dies sind Chips aus der ARM Cortex Serie von ST mit eingebautem CAN Bus. Hierdurch kann man das ganze noch kleiner bauen und man benötigt nur noch einen einzigen Chip.
Die Stromversorgung der verteilten Busplatinen erfolgt wie bereits an anderer Stelle beschrieben per zentraler Stromversorgung mit einem kleinen 12V DC Schaltnetzteil.
Bei Olimex gibts zwei Boards die man zum Test aber auch schon als fertige Elektronik nutzen kann. Zugegeben die verwendeten MPUs sind eigentlich zu leistungsfähig für die Anwendung, aber die PCBs sind halt recht günstig.
1.10. 2016: Neues STM32 basiertes Board mit Anschluss für 4(!) Motoren ist entwickelt und geht jetzt in die Betatestphase. So kann man einen Raum der bis zu 4 Jalousien oder Rolladen hat mit einer Platine "bedienen". Die Elektronik funktioniert mit der neuen Software soweit ganz gut und braucht in Ruhe 17mA.
Die Software habe ich allerdings jetzt komplett neu geschrieben, da mit dem 32-Bit CPU des STM32 vieles viel einfacher geht als vorher noch mit dem 8-Bit ATMEGA 644.
Mit den nachfolgenden kleinen USB/TTL Wandler Platinen kann man dann per Laptop und Hyperterminal über ein Textmenü die Basiseinstellungen machen (wie z.B. CAN Id, Gruppen Id).
Hier ist nochmal ein Artikel zum USB-TTL Converter.
Mit einem Jumper kann man wählen ob für 5V oder 3.3V Logik.
Hier nochmal die Bilder zu den Platinen der Einzelcontroller, die an den Jalousien und Rolladenmotoren sitzen: - unbestückt und bestückt im passenden Gehäuse.
Diese passen zur Not auch in eine tiefe UP-Dose. Bei neuen Einbauten verwende ich allerdings größere Bopla- oder Elektrogehäuse aus der Hausinstallation mit einem "richtigen" Klemmraum. Die Sicherung verhindert bei einer Fehlfunktion oder Kurzschluss des Rolladenmotors, dass die Platine oder die Relais Schaden nehmen können. Von oben wird die BUS-Leitung eingeführt und angeklemmt, von unten die Schaltkabel des Aktors per Phönix-Klemme direkt über der Sicherung über einen 3-poligen Phönix-Stecker. So ist dann sicher gewährleistet, dass keine Potentiale versehentlich verbunden werden. Auf der Rückseite habe ich die 230V Seite noch mit flüssigem Kunststoff (Heißkleber) gegen jede ungewollte Berührung oder Kriechströme gesichert, auch wenn sie ja eigentlich später im Gehäuse sind.
Hier gehts zu den Details des Rolladenkontroller 1-Kanalig auf Basis des ATMEGA644 Prozessors - jetzt aber auch mit neuestem STM32 Prozessor ;-)