Dieses Skript (hab ich irgendwo gefunden und für mich angepasst) wird im oberen Teil mit den Grenzwerten für die Pflanze und dem Pflanzennamen parametriert.
Die Datenpunkte werden mit zwei Ausführungsintervallen abgefragt. Die Datenpunkte Feuchte, Dünger und Temperatur werden alle 2 Stunden zwischen 07:00 und 22:00 abgefragt. Die Helligkeit wird nur in dem Zeitfenster 10:00 bis 16:00 abgefragt.
Das Skript erfasst nur Grenzwertüber- bzw. unterschreitungen. Für jeden Parameter gibt es also einen Max und einen Min Wert. Über- bzw. Unterschreitung wird dann mit einem aussagekräftigen Text an den telegram Adapter (telegram.0) gesendet.
Die Texte und die Ausführungsintervalle und natürlich die Pflanzenparameter im oberen Teil könnt ihr euch wunschgemäß anpassen. Die Adapteradresse müsst ihr natürlich an eure Geräte anpassen, damit da überhaupt was passiert. Am einfachsten über die Funktion 'Alle Vorkommen ändern' im Skripteditor.
/* -- do not edit following lines - START --
{
"expert": true,
"debug": false,
"verbose": false
}
-- do not edit previous lines - END --*/
//Pflanzensensor 1
var SensorName, Feuchte_max, Feuchte_min, Duenger_max, Duenger_min, Helligkeit_max, Helligkeit_min, Temp_max, Temp_min;
SensorName = "Sansevieria re"
// zwischen 7-22h
Feuchte_min = 7; //7
Feuchte_max = 50; //50
Duenger_min = 300; //300
Duenger_max = 1000; //1000
Temp_min = 10; //10
Temp_max = 32; //32
// zwischen 10-15h
Helligkeit_min = 1500; //1500
Helligkeit_max = 60000; //60000
//Cron Trigger
//schedule("*/30 7-22 * * *", function () { //alle 30 Minuten zwischen 07:00 und 22:00
schedule("0 7-22/2 * * *", function () { //alle 2 Stunden zwischen 07:00 und 22:00
//Bodenfeuchte min.
if (getState('ble.0.c4:7c:8d:6b:14:df.moisture').val < Feuchte_min) {
sendTo("telegram.0", "send", {
text: SensorName + ' hat Durst. Bodenfeuchte Soll '+ Feuchte_min +'-' + Feuchte_max +'%. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.moisture").val +'%. Bitte gießen!'
});
}
//Bodenfeuchte max.
if (getState('ble.0.c4:7c:8d:6b:14:df.moisture').val > Feuchte_max) {
sendTo("telegram.0", "send", {
text: SensorName + ' ertrinkt. Bodenfeuchte Soll '+ Feuchte_min +'-' + Feuchte_max +'%. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.moisture").val +'%. Bitte lüften bzw. überschüssiges Wasser entfernen!'
});
}
//Düngergehalt min.
if (getState('ble.0.c4:7c:8d:6b:14:df.fertility').val < Duenger_min) {
sendTo("telegram.0", "send", {
text: SensorName + ' hat Hunger! Düngergehalt Soll '+ Duenger_min +'-' + Duenger_max +' µS/cm. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.fertility").val +' µS/cm. Bitte düngen!'
});
}
//Düngergehalt max.
if (getState('ble.0.c4:7c:8d:6b:14:df.fertility').val > Duenger_max) {
sendTo("telegram.0", "send", {
text: SensorName + ' ist überdüngt! Düngergehalt Soll '+ Duenger_min +'-' + Duenger_max +' µS/cm. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.fertility").val +' µS/cm. Bitte spülen!'
});
}
//Temperatur min..
if (getState('ble.0.c4:7c:8d:6b:14:df.temperature').val < Temp_min) {
sendTo("telegram.0", "send", {
text: SensorName + ' friert! Temperatur Soll '+ Temp_min + '-' + Temp_max +'°. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.temperature").val +'° Bitte wärmen!'
});
}
//Temperatur max.
if (getState('ble.0.c4:7c:8d:6b:14:df.temperature').val > Temp_max) {
sendTo("telegram.0", "send", {
text: SensorName + ' schwitzt! Temperatur Soll '+ Temp_min + '-' + Temp_max +'°. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.temperature").val +'°. Bitte kühlen!'
});
}
});
//schedule("*/30 10-15 * * *", function () { //alle 30 Minuten zwischen 10:00 und 15:00
schedule("0 10-16/2 * * *", function () { //alle 2 Stunden zwischen 10:00 und 16:00
//Lichtintensität min.
if (getState('ble.0.c4:7c:8d:6b:14:df.illuminance').val < Helligkeit_min) {
sendTo("telegram.0", "send", {
text: SensorName + ' bekommt zu wenig Licht! Lichtintensität Soll '+ Helligkeit_min +'-' + Helligkeit_max +' lux. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.illuminance").val +' lux. Bitte für Licht sorgen!'
});
}
//Lichtintensität max.
if (getState('ble.0.c4:7c:8d:6b:14:df.illuminance').val > Helligkeit_max) {
sendTo("telegram.0", "send", {
text: SensorName + ' bekommt zu viel Licht! Lichtintensität Soll '+ Helligkeit_min + '-' + Helligkeit_max +' lux. Ist: '+ getState("ble.0.c4:7c:8d:6b:14:df.illuminance").val +' lux. Bitte abdunkeln!'
});
}
});