Community

Z-Uno als Klimazentrale


#1

Hallo Homees

Endlich habe ich es geschafft eine lange gehegte Idee umzusetzten und den Z-Uno als universelles Z-Wave Gerät einzusetzen.

Zum Hintergrund, ich verwende eine handvoll Funkthermometer um Temperaturen und Feuchtigkeiten auf einem Arduino UNO zu sammeln und weiterzuverarbeiten. Das Sammeln der Daten aus dem 433MHz Funkkanal der Thermometer ist ein eigenes Thema. Hier will ich nur von der Einbindung in z-wave Mesh berichten.

Der Z-Uno ist ein programmierbarer MIkroprozessor mit z-wave stack.
Will sagen, er ist ein frei programmierbares z-wave Geräte. Er kann also Schalter, Aktor, Sensor oder alles gleichzeitig sein. Bis zu 10 separate Kanäle sind verfügbar.

In meinem Fall ist der Z-Uno ein 8-kanaliges Thermometer.

EInbindung
Die Einbindung in homee erfolgt als z-Wave ‘Anderes Gerät’ wie gewohnt über einen Schalter auf der Platine.
Je nachdem, welche Funktionen man dem Z-Uno einprogrammiert hat erscheint er als Gerät mit mehreren Schaltern, Dimmern, oder Sensoren.

Anzeige
Das sieht bei mir so aus:

und so:

Abgesehen von der etwas unschönen Warnung ‘kein Geräteprofil’ ist alles da wo es ein sollte.

Nutzung
Was soll ich sagen, es werden halt die Temperaturen angezeigt.
Da ich alle Freiheiten bei der Datenübetragung an homee habe und die Arduino-Zentrale per Netzteil versorgt wird, kann ich mit beliebiger Frequenz Temperaturwerte übermitteln.
Derzeit tue ich dass alle 5 Minuten oder bei mehr als 0.3°C Änderung.

Sinn und Zweck
Nun, abgesehen von der Herausforderung, was ist der Sinn und Zweck all der Arbeit anstelle eines kommerziellen z-Wave Thermometers.

Acht z-Wave Thermometer (potenziell auch mehr) würden mich im Laden 300-500€ kosten.
Meine Funkthermometer kosten 12€ und halten 2-3 Jahre mit 2xAAA. Sie liefern dabei Werte im Minutentakt. Da kommt kein z-Wave Gerät mit.

Ich kann die Daten vor der Übermittlung an homee manipulieren, z.B. die absolute Feuchte anstatt der relativen Feuchte übermitteln. Ich kann die Daten korrigieren/kalibrieren.

Ich kann weitere virtuelle Messwerte hinzufügen, z.B. gleitende Mittelwerte oder Temperaturdifferenzen, die ich wiederum als Trigger in homee verwenden kann.

Ich habe alle Temperaturdaten an einem zentralen Gerät. Ich finde das übersichtlich, aber das ist Geschmackssache.

Ich kann (und werde) einen 10-Kanal Schalter für meine Gartenbewässerung programmieren.
Auch hier wieder alles in einem z-Wave Gerät. Die Alternative wären 5 Stück 2-Kanal Relais z.B. von Fibaro.

Nachteile
Es war es eine Menge Arbeit.
Der Z-Uno ist keine völlig ausgereifte Plattform für Programmierer. Der Compiler nervt in vielerlei Hinsicht.

Das betrifft gar nicht so sehr den z-Wave Teil - der ist kinderleicht.
Ich hatte meinen ersten 4-Kanal Schalter nach 10 Minuten inkludiert. Natürlich rein virtuell, da wurde nichts wirklich geschaltet, sondern nur Dioden auf dem Z-Uno an und ausgeschaltet.

Nein, schwierig wurde es erst als ich anfing ernsthaften C++ Code zu hinterlegen.
Aber es hat geklappt und ich bin happy.

Ein Wort zum Einstieg in die Z-Uno Programmierung
Nicht alle Arduino IDEs funktionieren. Ich verwende jetzt 1.8.5.
Wenn mann sie installiert hat, sollte man diesem Tutorial folgen:


Beliebiges / Generisches Z-Wave Gerät einbinden
#2

Interessant, aber möchstest du uns nicht mit genaueren Fakten füttern?

Was für Themometer? Wie hast du den Arduino an den Z-UNO verknüpft? Wie sieht der Code aus?

Das hilft sicherlich anderen sich genauere Gedanken zu machen, ob eine Z-UNO für sie (mit ihren Kentnissen) was passendes ist.

Ich habe die Planung nicht aufgegeben, aber mangels Zeit aufgeschoben. Ich habe vor, die Temperaturesensoren direkt an den Z-UNO anzuschliessen, da ich genug Sensoren habe und ich einen Z-UNO günstig für 3 Räume positionieren könnte. 433MHz-Thermometer sind aber auch ein Gedanke wert.


#3

Dies hier die Thermometer

Die Zentralstation habe ich zerlegt und ihr den RF-Empfänger geraubt, weil der besser funktionierte als die sonst so erhältlichen Module für den Arduino.

Die Verbindung zw. Arduino und z-uno ist per serieller Schnittstelle.
Und zwar über die vorhandene Klasse SoftwareSerial, die ich eine eine eigene Klasse verpackt habe.

SoftwareSerial verwendet 2 beliebige Pins (Tx, Rx) je Board.
In meinem Fall sogar nur ein Pin weil uniderektionale Kommunikation vom Arduino -> Z-uno.

DIe Verkabelung ist minimal zwischen Boards A und Z:
A: gnd --> Z: gnd
A: pin11 --> Z: pin12 (TX --> RX)

Wie gesagt wollte ich vor allem die Funktion des Z-Uno bestätigen.
Bei größerem Interesse kann ich auch sketche posten. Aber die würde ich vorher noch mehr aufräumen :slight_smile:

Ich bin übrigens alles andere als Elektronik-affin. Mir war wichtig, dass ich nicht groß verkabeln muss. Leider musste ich die Idee verwerfen, alles auf dem Z-Uno zu implementieren, weil der Compiler das nicht hergab.


#4

Hinweis von meiner Seite. Nicht nur bzgl. des Compilers ist der Uno etwas beschränkt. Wenn der Uno mit der S2 Security Einstellung betrieben werden soll, ist der vorhandene Speicher seht schnell aufgebraucht, da der Code, welcher für S2 benötigt wird, im selben Speicher abgelegt wird.