Als stolzer Terrariumbesitzer und Futter- und Pflegepersonal für mehrere Geckos und Schlangen bin ich ständig auf der Suche nach Möglichkeiten das Leben meiner Tiere (und meines 😊) noch natürlicher und komfortabler zu gestalten. Gerade beim Terrarium gibt es einiges zu beachten: Luftfeuchtigkeit und Temperatur müssen sich stets in bestimmten Bereichen bewegen, Beregnungsanlagen und Wärmeanlagen entsprechend punktgenau gesteuert werden und das Licht der UV-Lampe sollte ebenfalls so nah wie möglich am tatsächlichen Lebensraum sein.
Nun bin ich privat und was meine Wohnung betrifft bereits ein Smart Home-Enthusiast, warum sollten meine exotischen Mitbewohner nicht auch in den Komfort von einem smarten Terrarium kommen? Zumal es mir ein großes Sicherheitsgefühl vermittelt, wenn ich weiß, dass das Smart Home-System die Überwachung und Steuerung übernimmt und so rund um die Uhr perfekten Wohnbedingungen für meine Geckos und Schlangen schafft – inklusive Push-Benachrichtungen aufs Mobilgerät, für den Fall dass eine Tür versehentlich offen gelassen wurde oder falls ein Wasserleck ein persönliches Einschreiten erforderlich macht.
Genau genommen wollte ich Folgendes realisieren: Eine Sonnenaufgangs- und Sonnenuntergangssimulation mit der UV-Lampe und den Wärmelampen parallel zum echten Sonnenauf- und Sonnenuntergang, eine geregelte Bewässerung nach Zeitplan inkl. Warnung, wenn Wasser austritt, sowie eine Temperaturregelung, die automatisch die optimale Umgebungstemperatur über die Wärmelampen herstellt. Dabei soll sowohl ein Unterkühlen als auch ein Überhitzen des Terrariums an warmen Sommertagen verhindert werden. Das Ganze ergänzt um eine Anzeige zum Stromverbrauch und einer Warnung bei offen gelassener Tür oder Stromausfall.
Im folgenden Video zeige ich Dir, wie das Ganze bei mir aussieht:
Du willst das Ganze nachbauen oder interessierst Dich einfach dafür, wie ich dies im Detail umgesetzt habe? Im Folgenden habe ich die einzelnen Steps für Dich zusammengestellt.
Diese Smart Home-Produkte habe ich verwendet:
- mediola AIO GATEWAY V6+ inkl. CREATOR NEO Plugin AIO GATEWAYs
- CREATOR NEO Plugin Automation Manager
- Iconset IQONTROL NEO (optional)
- 2x HmIP-PSM Homematic IP Schalt-Mess-Steckdose*
- 2x HmIP-PDT Homematic IP Dimmer*
- 1x HmIP-SWDM Homematic IP Fenster- und Türkontakt*
- 1x HmIP-SWD Homematic IP Wassersensor*
- 2x Eltako FTFB Temperatur und Feuchtesensor
- 1x Eltako FSG71/1-10V Funkaktor Dimmschalter*
Für die gesamte Gestaltung meiner Smart Home-Fernbedienung nutze ich den AIO CREATOR NEO von mediola in Zusammenspiel mit dem AIO GATEWAY V6 Plus. Das Gateway steuert und verwaltet alle bei mir verbauten Geräte. Diese habe ich natürlich im Vorfeld an das Gateway angelernt. Für die Automatisierungen verwende ich zusätzlich das NEO Plugin Automation Manager.
Falls für Dich das Thema mediola und Smart Home noch neu ist, verlinke ich am Ende noch ein paar nützliche Anleitungen, z. B. wie man Geräte an das Gateway anlernt oder ganz Allgemeines zum Automation Manager.
Sonnenaufgang und Sonnenuntergang per Astro-Task steuern
Ein möglichst natürliches Umfeld für Reptilien beschränkt sich nicht nur auf die Einrichtung und Temperatur. Daher simuliere ich einen natürlichen Sonnenaufgang, der parallel zum natürlichen Sonnenaufgang außerhalb des Terrariums stattfindet. Im AIO GATEWAY kann man über das zugehörige ConfigTool NEO die Standort-Koordinaten eintragen, wodurch es dem Gerät möglich ist, den genauen Sonnenaufgang vorherzusagen. Im Automation Manager lege ich dann nur noch im SOBALD (Auslöser für den Task) den Sonnenaufgang fest. Ich lege zwei Tasks an: 1x für die UVA/UVB-Lampen (3 Stück, verbunden mit Eltako-Dimmer) und einen weiteren für die Heizlampen (2 Stück, verbunden mit je einem HmIP-PDT).
Um den Dimmer für die UVA/UVB-Lampen schrittweise hochzudimmen und so möglichst nah an einen natürlichen Sonnenaufgang heranzukommen, habe ich ein Skript im Skripteditor des Automation Managers angelegt. Würde ich hier im DANN-Block im Blockeditor einfach nur dim to 100% auswählen, würden die Lampen unmittelbar hochgedimmt. Ich möchte aber ein langsames Dimmen über 30 Minuten.
Als Aktion wird also ein Skript aufgerufen, welches den Eltako Dimmer ab Sonnenaufgang über einen Zeitraum von 30 Minuten auf 100% dimmt. Der Dimmer startet ab einem Wert von 10%, da dies der niedrigste Wert ist, den der Dimmer dimmen kann, bevor er sich abschaltet. Das sieht jetzt auf den ersten Blick erst einmal kompliziert aus, aber wenn Du die gleichen Geräte verwendest wie ich, kannst du das Skript einfach kopieren und musst nur zwei Stellen anpassen. Ich erkläre Dir gleich, welche genau das sind.
/**
* dimPercent 0-100
*/
function DeviceDim(dimPercent, callback) {
executeDeviceCommand(
"Terrarium",
"UVA/B Dimmer",
{"value":"dimTo","ext":dimPercent,"extMeta":"0-100","step":"1"},
function(err) {
err && console.error(err.message);
callback(err);
}
);
}
var totalDuration = 30*60*1000; //in Seconds, 30min
var targetBrightness = 100;
var pause = Math.round(totalDuration/targetBrightness);
var count = 10;
var cb= function(err){
if (count < targetBrightness) {
setTimeout(function(){
count++;
DeviceDim(count, cb);
},pause);
}
};
DeviceDim(count, cb);
Wenn du denselben Dimmer verwendest, kannst Du dir das Skript einfach kopieren und musst nur den Raum "Terrarium"
mit dem Namen deines Raumes im CREATOR und den Gerätenamen "UVA/B Dimmer"
mit den Namen Deines Dimmers ersetzen.
Verwendest Du einen anderen Dimmer, musst Du zusätzlich die Gerätebefehle ersetzen. Das ist diese Zeile:
{"value":"dimTo","ext":dimPercent,"extMeta":"0-100","step":"1"}
Die entsprechende Befehle kannst Du Dir im Automation Manager zusammenklicken. Dies ist in der Automation Manager Doku im Bereich Skripteditor erklärt.
Sonnenaufgang mit den Heizlampen
Die beiden Heizlampen werden ebenfalls über eine halbe Stunde von 0% auf 100% hoch gedimmt. Ich habe hierbei eine 15-minütige Verzögerung eingestellt, da es bei einem Sonnenaufgang erst hell und dann anschließend warm wird.
Ausgelöst wird das Gerät direkt über einen HTTP-Request, mit dem die API des Gateways angesprochen wird. Ich verwende dies, da ich eine rampTime mitgeben möchte, über die der eingestellte Dim-Wert langsam erreicht wird. Der Befehl hierfür lautet:
http://GATEWAYIP/cmd?XC_FNC=SendSc&type=HM&address=GeräteAdresse&data=dimTo100&rampTime=1800000&auth=GATEWAYPASSWORT
GATEWAYIP: Die Gateway-Adresse findest Du z. B. über das ConfigTool NEO heraus.
GeräteAdresse: Diese Adresse findest Du im Gerätemanager des AIO CREATOR NEO, nachdem Du die Geräte dort angelegt hast.
dimTo: Hier gibst Du den Wert mit auf den gedimmt werden soll.
rampTime Gibt die Zeit (in Millisekunden) an über die der Dim-Wert erreicht werden soll.
GATEWAYPASSWORT: Falls ein Passwort auf dem Gateway gesetzt wurde, muss dieses hier angegeben werden. Wurde kein Passwort vergeben, kann der Teil &auth=GATEWAYPASSWORT
einfach weggelassen werden.
Sonnenuntergang mit UVA/B-Lampen und Heizlampen
Der Sonnenuntergang parallel zum realen Sonnenuntergang wird dann für die beiden Lampentypen wieder ähnlich eingestellt. Es wird jeweils ein Task pro Lampenart angelegt, wobei die UVA/B-Lampen mit dem nachfolgenden Skript gesteuert werden. Auch hier gilt: Hast Du dieselben Geräte, kannst Du das Skript einfach kopieren und musst nur vereinzelt etwas anpassen.
/**
/**
* dimPercent 100-0
*/
function DeviceDim(dimPercent, callback) {
console.log("deviceDim");
executeDeviceCommand(
"Terrarium",
"UVA/B Dimmer",
{"value":"dimTo","ext":dimPercent,"extMeta":"100-0","step":"1"},
function(err) {
err && console.error(err.message);
callback(err);
}
);
}
var totalDuration = 30*60*1000; //in Seconds, 30min
var targetBrightness = 0;
var pause = Math.round(totalDuration/100);
var count = 100;
var cb= function(err){
if (count >= targetBrightness) {
setTimeout(function(){
if (count == 10) {
count = 0;
}
DeviceDim(count, cb);
count--;
},pause);
}
};
DeviceDim(count, cb);
Wie zuvor auch musst Du hier den Raum und den Gerätenamen und bei abweichendem Gerät auch den Gerätebefehl anpassen.
Für die Heizlampen musst du wieder einen Task mit HTTP-Requests (je einer pro Lampe) anlegen.
Auch hier gibt es wieder eine 15-minütige Verzögerung, da es bei einem Sonnenuntergang zuerst dunkel und mit leichter Verzögerung kühler wird.
Der Befehl lautet auch hier wieder:
http://GATEWAYIP/cmd?XC_FNC=SendSc&type=HM&address=GeräteAdresse&data=dimTo100&rampTime=1800000&auth=GATEWAYPASSWORT
GATEWAYIP: Die Gateway-Adresse findest Du z. B. über das ConfigTool NEO heraus.
GeräteAdresse: Diese Adresse findest Du im Gerätemanager des AIO CREATOR NEO, nachdem Du die Geräte dort angelegt hast.
dimTo: Hier gibst Du den Wert mit auf den gedimmt werden soll
rampTime Gibt die Zeit (in Millisekunden) an über die der DimWert erreicht werden soll
GATEWAYPASSWORT: Falls ein Passwort auf dem Gateway gesetzt wurde, muss dieses hier angegeben werden. Wurde kein Passwort vergeben, kann der Teil &auth=GATEWAYPASSWORT
einfach weggelassen werden.
Automatische Temperatursteuerung nach Sensorwert
Ich habe im Terrarium zwei Luftfeuchte- und Temperatur-Sensoren hängen, die beständig die aktuelle Temperatur überwachen. Ich wollte einen Task, der mir in Abhängigkeit von der gemessenen Temperatur automatisch die Lampen regelt. Die ideale Temperatur im Bereich der Messgeräte ist 26 °C. Diese habe ich ermittelt, indem ich zuerst mit dem Sensor die Hotspottemperatur auf einem Liegeplatz unmittelbar unter der Lampe gemessen habe. Hier sollte der Wert exakt 40 °C betragen. Nachdem ich die Lampen so eingestellt hatte, dass der Wert erreicht wurde, habe ich die Sensoren an ihre vorgesehenen Plätze an den Terrariumseiten gehängt. Daraus ergab sich, dass die Sensoren an der Seite 26 °C messen müssen, damit im Hotspot 40 °C herrschen. Das nur vorweg zur Erläuterung zu den verwendeten Werten.
Für die Automatisierung wurde wieder der Automation Manager verwendet. Hier habe ich als Auslöser (SOBALD) für den Task alle Temperaturwerte der Sensoren, die nicht bei den gewollten 26 °C liegen.
Im folgenden FALLS-Block schränke ich den Auslöser weiter ein. Es soll nur dann ein Task angestoßen werden, wenn es nach Sonnenaufgang (+60 Minuten, damit die Lampen Zeit haben die Temperatur herzustellen) und vor Sonnenuntergang ist. Denn natürlich ist es „nachts“ gewollt kühler im Terrarium.
Als nächstes soll der Task erst einmal 10 Minuten warten. Dies ist wichtig, damit nach jeder vorgenommenen Änderung die Lampen genug Zeit haben, die Temperatur zu justieren, bevor erneut geprüft und nachgeregelt wird. Anderfalls würde die Temperatur weiter konstant hochgeregelt und es schnell zu warm werden.
In den darauf folgenden FALLS-Blöcken wird für jeden einzelnen Sensor und den Fall, das 26 °C über- oder unterschritten wurden, festgelegt was zu tun ist. Wurde die Temperatur überschritten, soll die Lampe um 5% heruntergedimmt werden. Wurden 26 °C unterschritten, soll die Lampe um 2% hochgedimmt werden.
Auf diese Weise gelingt es mir eine Automatisierung zu erstellen, die die Temperatur in meinem Terrarium penibel konstant hält.
Luftfeuchtigkeit nach Plan – smarte Beregnungsanlage
Die Beregnungsanlage habe ich bisher manuell alle 3-4 Tage angestellt. Mit dem Automation Manager kann auch das automatisch erfolgen. Da man Pflanzen am besten Abends gießt, nutze ich im Auslöser wieder die Astrozeit und wähle den Sonnenuntergang mit 45 Minuten Verzögerung. Nach 45 Minuten sind die Lampen definitiv aus und für meine Pflanzen ist Abend.
Im DANN-Block fährt als Aktion die Beregnungsanlage. Da diese nicht selbst smart ist, schalte ich die Anlage an und verbinde sie mit der smarten Steckdose HmIP-PSM. Diese Steckdose kann ich aus dem CREATOR heraus ansteuern und mit ihr die Beregnungsanlage schalten. Bei der Steckdose wähle ich den Befehl An für und wähle als Dauer 90 Sekunden. Diese Zeit ist für mein Terrarium völlig auseichend.
Und natürlich kann ich die Beregnungsanlage auch jederzeit über die App steuern.
Sicherheit geht vor: Wassersensor und Türsensor
Ein entscheidenender Punkt an einem smarten Terrarium ist das Thema Sicherheit. So kann ich jederzeit auf dem Mobiltelefon überprüfen, ob die Lampen eingeschaltet sind oder wie es um Temperatur und Luftfeuchtigkeit steht. Doch zwei Aspekte waren mir besonders wichtig. Zum einen wollte ich wissen, sobald meine Beregnungsanlage ausläuft und die installierte Technik gefährdet bzw. mein Wonhzimmer unfreiwillig nass wird, und zum anderen möchte ich mitbekommen, wenn ich vergessen habe, die Tür des Terrariums zu schließen. Besonders die Schlangen sollten nicht versehentlich entfleuchen können. In beiden Fällen möchte ich nicht erst aufs Handy schauen müssen – ich möchte aktiv gewarnt werden.
Und auch das lässt sich mit dem AIO GATEWAY und dem Automation Manager erreichen.
Warnung bei austretendem Wasser
Den Wassermelder HmIP-SWD platziere ich direkt neben der Beregnungsanlage. Ich möchte in drei Situationen eine Push-Nachricht von meinem Wassermelder: 1. Wasser tritt aus. 2. Sabotage am Wassermelder (damit ich weiß, dass das Gerät nicht mehr richtig funktioniert und ich nachschauen muss) und 3. Wenn die Batterie schwach wird und ich diese wechseln muss.
Alle diese drei Status des Wassermelders setze ich in den SOBALD-Block. In den nachfolgenden FALLS-Blöcken lege ich für jeden der drei Status fest, was im jeweiligen Fall geschehen soll. Im Fall von Sabotage und Wasseralarm möchte ich, dass die Beregnungsanlage abgeschaltet wird und dass mir eine Pushnachricht aufs Handy geschickt wird.
Im Falle einer niedrigen Batterie reicht mir eine Nachricht aufs Handy.
Damit ich die Nachricht nun aber nur ein Mal bekomme, muss ich mir mit Variablen behelfen. Normalerweise würde der Task nun alle paar Sekunden eine Nachricht auf mein Handy schicken, solange der Melder noch im Wasser steht – also solange, bis ich das Malheur beseitigen kann. Und auch wenn hier natürlich Eile geboten ist – mehr als eine Benachrichtigung ist dann doch eher nervig. Und mit den zusätzlichen Variablen stelle ich sicher, dass nur eine Push-Nachricht bei mir ankommt.
Zuerst also musst Du Variablen in Deinem AIO GATEWAY anlegen. Das geht ganz einfach direkt im Automation Manager unter Systemvariablen. Hier nimmst Du einfach eine Boolsche Variable – diese ist entweder „wahr“ oder „falsch“.
Ich habe also im SOBALD-Block alle drei Auslöser drin, auf die hin ich eine Nachricht bekommen möchte. In den folgenden FALLS-Blöcken spezifiziere ich die Bedingungen für jede dieser Auslöser genauer.
Im ersten FALLS-Block soll der Task also auslösen, wenn der Wassermelder einen Wasseraustritt anzeigt und die Variable für den Wasseralarm auf „Aus“ steht. Ich lege mit den DANN-Blöcken fest, was nun geschehen soll: Zuerst soll die Beregnungsanlage unbedingt ausgeschaltet werden, dann möchte ich eine Push-Mitteilung auf mein Mobilgerät bekommen und anschließend soll die Variable auf „An“ gestellt werden.
Dadurch ist die Bedingung im ersten FALLS-Block nicht mehr erfüllt und der Task wird nun nicht unablässig weiter ausgeführt. Ohne die Variable würde dies passieren, da der Wassermelder alle paar Minuten ein Signal aussendet, dass er Wasser registriert hat. Auch wenn bei austretendem Wasser immer Eile geboten ist, EINE Pushnachricht auf das Handy reicht völlig, um mich in die nötige Alarmbereitschaft zu versetzen. 🙂
Ähnlich gehe ich nun auch für die anderen zwei Meldungen des Wassermelders, „Sabotage“ und „niedriger Batteriestand“, vor.
Auch bei „Sabotage“ frage ich neben der Sabotage-Meldung im FALLS-Block zusätzlich ab, ob die Wasseralarm-Variable „Aus“ ist, um in diesem Fall die Beregnungsanlage auszuschalten, mir eine Pushnachricht zu schicken, und die Variable im Anschluss auf „An“ zu stellen, damit der Task nicht ständig weiter ausgelöst wird.
Beim niedrigen Batteriestand gehe ich ebenso vor, nur dass mir hier eine Pushnachricht reicht und die Beregnungsanlage ruhig weiter fahren kann.
Wichtig ist der letzte Teil: Falls nun eines der drei Wassermelder-Status „Wasseralarm“, „Sabotage“ oder „niedrige Batterie“ behoben ist und der Status der Wasseralarm-Variable auf „An“ steht (durch eine Meldung/Taskauslösung zuvor), dann soll die Variable wieder auf „Aus“ gesetzt werden.
Warum das? So stelle ich sicher, dass, sobald ich einen der gemeldeten Missstände behoben habe, der Task wieder ausgeführt werden kann, falls erneut Wasser austritt, eine Sabotage vorliegt oder die Batterie niedrig ist.
Das Ganze läuft also völlig von selbst und ich muss mich nur um die Behebung des jeweiligen Problems kümmern.
Zum Weiterlesen: Push-Funktion in der AIO REMOTE NEO einrichten
Warnung bei offener Tür
Damit ich mitbekomme, ob die Terrarium-Tür geöffnet oder geschlossen ist, verwende ich den Türkontakt HmIP-SWDM.
Ich möchte hier benachrichtigt werden, wenn der Batteriestand niedrig ist oder die Tür länger als 15 Minuten geöffnet ist. Da ich ja auch zum Säubern oder Füttern die Tür absichtlich öffne, möchte ich nicht, dass ich sofort bei jeder geöffneten Tür benachrichtigt werde. Wenn die Tür aber länger als 15 Minuten offen ist, habe ich sie ziemlich sicher vergessen.
Zuerst habe ich den Task ohne zusätzliche Variablen angelegt. Dann bekamm ich aber jede Sekunde die die Tür ab Minute 15 geöffnet war eine Pushnachricht – Logisch, die Tür war ja weiterhin offen. Also musste ich einen Weg finden, dass ich nur eine einzige Pushnachricht bekomme. Die Lösung: Variablen. Doch Schritt für Schritt:
Weil ich möchte, dass mein Task bei jeder Statusänderung der Tür angestoßen wird, packe ich beide Status der Tür sowie zusätzlich die schwache Batterie in den auslösenden SOBALD-Block.
Mit den FALLS-Blöcken lege ich nun die Bedingungen für weitere Auslöser fest:
- Bei niedriger Batterie und wenn zusätzlich die Batterievariable auf „AUS“ steht, soll eine Pushnachricht mit dem Hinweis auf einen geringen Batteriestand an mein Mobiltelefon gesendet werden. Im Anschluss wird die Variable für die Batterie auf „AN“ gestellt. Dadurch sind die Bedingungen im ersten FALLS-Block nicht mehr erfüllt (Weil Variable nicht „AUS“) und ich bekomme keine weiteren Pushmeldungen. Eine reicht ja völlig.
- FALLS der Batteriestand nicht niedrig ist wird die Batterievariable auf „AUS“ gesetzt. Dadurch stelle ich sicher, das der Task im FALLS-Block 1 nun nach einem Batteriewechsel wieder erreicht und ausgelöst werden kann.
- Hier geht es nun um den Türstatus. Zuerst lege ich hier fest, dass die Variable für die Tür auf „AUS“ gesetzt wird, wenn die Terrariumtür geschlossen ist. Das ist wichtig für den folgenden vierten FALLS-Block.
- FALLS nun die Tür geöffnet ist und die die Türvariable auf „AUS“ steht (Was bedeutet, dass die Tür zuvor geschlossen war), DANN soll der Task erst einmal 15 Minuten warten. Hiermit stelle ich sicher, dass nicht jedes kurze Türöffnen in einer Warnung resultiert.
Nach Ablauf der 15 Minuten wird dann eine Weitere FALLS-Bedingung geprüft: Ist die Tür nun immer noch geöffnet und der Status der Türvariable weiterhin auf „AUS“, DANN bekomme ich eine Mitteilung aufs Mobiltelefon geschickt. Im Anschluss wird die Türvariable direkt auf „AN“ gesetzt, um ein weiteres Auslösen zu unterbinden. Das Auslösen dieses Taskteils wird nun erst wieder möglich, wenn die Tür geschlossen wurde.
Zum Weiterlesen: Push-Funktion in der AIO REMOTE NEO einrichten
Über all diese Tasks erreiche ich ein vollautomatisiertes Terrarium, das nicht nur zuverlässig für meine Reptilien sorgt, sondern mich auch warnt, wenn eine Funktion ausfällt oder ein Fehler auftritt.
* Mit * gekennzeichnete Links sind Affiliate Links / Werbung.