Also meine Seite sieht jetzt so aus.
1653_vorgarten.jpg
Das ist das Widget für die Restlaufzeit:
[{"tpl":"tplHqCircle","data":{"visibility-cond":">","visibility-val":"0","oid":"javascript.0.Countdown.countdown","min":"0","max":"{javascript.0.Countdown.countdown}","step":"1","displayPrevious":true,"readOnly":true,"unit":"","visibility-oid":"","name":"Countdown","caption":"Restzeit min.","hideNumber":false,"color":"#ffffff","thickness":"0.15","cursor":"","bgcolor":"#f00f36","linecap":true,"anticlockwise":false,"oid-working":"javascript.0.Countdown.countdown","oid-signal":"","angleArc":"360","angleOffset":"0","comment":"","digits":"0","is_comma":"true","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","gestures-offsetY":"-6","descriptionLeft":"countdown"},"style":{"left":"963px","top":"117px","width":"200px","height":"200px","z-index":"77","text-align":"center","color":"#e7f5f9","font-family":"","font-style":"","font-weight":"","font-size":"","background-color":"rgba(0,140,200,1)","border-radius":"490px"},"widgetSet":"hqwidgets"}]
Das Script für die Zeitvorwahl:
// Countdown Brunnen
// http://forum.iobroker.net/viewtopic.php?f=21&t=5067
var count,timer;
function countdown(){
count--;
if(count > 0) setState('javascript.0.Countdown.countdown', count);
else {
setState('javascript.0.Countdown.countTrigger', false );
}
}
on({id: "javascript.0.Countdown.countTrigger", change: "ne"}, function(obj){
if(obj.state.val) {
count = getState('javascript.0.Countdown.Zeitvorgabe').val; // in Minuten
setState('javascript.0.Countdown.countdown', count);
timer = setInterval(countdown, 60000); // 1000 = 1 Sek. ; 60000 = 60 Sek.
} else {
clearInterval(timer);
setState('javascript.0.Countdown.countdown', 0 );
}
});
Das Widget dazu:
[{"tpl":"tplJquiRadioList","data":{"oid":"javascript.0.Countdown.Zeitvorgabe","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;10;15;30;45;60;120","texts":"0;10;15;30;45;60;120","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false},"style":{"left":"611px","top":"345px","width":"385px","height":"40px","background":"","background-color":""},"widgetSet":"jqui"}]
Das Widget für z.Bsp. Kreis1:
[{"tpl":"tplHqButton","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"oid":"javascript.0.AnAus","min":"0","max":"1","iconName":"/icons-icons8/objects/white/Watering Can.png","btIconWidth":"97","offsetAuto":"true","leftOffset":"15","topOffset":"55","timeAsInterval":false,"infoLeftFontSize":"20","infoFontRightSize":"12","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"oid-working":"javascript.0.AnAus","oid-battery":"","iconOn":"/icons-icons8/objects/white/Watering Can Filled.png","styleActive":"hq-button-green-active","styleNormal":"hq-button-red-active","usejQueryStyle":false,"descriptionLeft":"Kreis1","infoColor":"white","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","infoLeftPaddingLeft":"15","infoLeftPaddingRight":"50","infoRightPaddingRight":"15","infoBackground":"red"},"style":{"left":"676px","top":"429px","width":"107px","height":"108px"},"widgetSet":"hqwidgets"}]
Das Script für Kreis1:
// Pumpe: Ausschalten nach x Minuten
// http://forum.iobroker.net/viewtopic.php?f=21&t=5067
function weiter() {
var Zeitvorgabe = getState('javascript.0.Countdown.Zeitvorgabe').val ; // Zeit auswählen
//#############################################################
// Bewässerung zunächst ausschalten beim erstmaligen Skriptstart
// um im Falle eines Reboots den zuvor laufenden Bewässerungstimer auszuschalten (Not-Aus),
// da er nach Reboot den zuvor gesetzten Ausschalttrigger nicht mehr ausführen kann
setState("hm-rpc.0.NEQ1316670.1.STATE", false);
setState("hm-rpc.0.NEQ1316670.4.STATE", false);
//#############################################################
log (Zeitvorgabe);
if (Zeitvorgabe === 0 || Zeitvorgabe === isNaN) Zeitvorgabe = 30;
setStateDelayed("hm-rpc.0.NEQ1316670.1.STATE", true); // Kreis 1 Ventil einschalten
setStateDelayed("hm-rpc.0.NEQ1316670.4.STATE", true, 1000); // nach 1 Sek. Pumpe ein
setState("hm-rpc.0.NEQ1316670.1.ON_TIME", Zeitvorgabe); // OnTime setzen
// Countdown starten für Anzeige der Zeit auf View
setState('javascript.0.Countdown.countTrigger', true); // Countdown Brunnen starten
setStateDelayed("javascript.0.AnAus", 0, (Zeitvorgabe*60*1000)); // nach x Min. ausschalten -> Pumpe
setStateDelayed("hm-rpc.0.NEQ1316670.2.STATE", false); // Ventil 2 auf false setzen
setStateDelayed("hm-rpc.0.NEQ1316670.3.STATE", false); // Ventil 3 auf false setzen
//sendTo('telegram', "Brunnen eingeschaltet. \nNach " + (Zeitvorgabe*60*1000) + " Minuten wird er wieder automatisch ausgeschaltet.");
//log ("Brunnen eingeschaltet. Nach " + (Zeitvorgabe*60*1000) + " Minuten wird er wieder automatisch ausgeschaltet.");
}
function weiter2() {
setState("hm-rpc.0.NEQ1316670.1.STATE", false); // Brunnen Ventil aus
setState("hm-rpc.0.NEQ1316670.4.STATE", false); // Brunnen Pumpe aus
//sendTo('telegram', "Brunnen ausgeschaltet.");
//log ("Brunnen ausgeschaltet.");
setState('javascript.0.Countdown.countTrigger', false); // Countdown Pumpe aus
setState('javascript.0.Countdown.Zeitvorgabe', 0); // Zeitvorwahl auf Null setzen
setState('javascript.0.Countdown.countdown', 0); // Countdown auf Null setzen
setState("hm-rpc.0.NEQ1316670.1.ON_TIME", 0); // OnTime auf Null
}
on({id: "javascript.0.AnAus", change: "ne", val: 1}, function() { // Bewaesserung Kreis1 einschalten
//log("Auslöser Schalter - Cux: Brunnen ein");
weiter();
event("Gartenpumpe Kreis1 läuft"); // in eventlist schreiben
// Sprachausgabe
nachricht = 'Kreis eins ist eingeschalten '
setState("sayit.2.tts.text"/*Text to speech*/, nachricht); // Sprachausgabe Kreis 1 ein
});
on({id: "javascript.0.AnAus", change: "ne", val: 0}, function() { // Bewaesserung Kreis1 ausschalten
weiter2();
event("Gartenpumpe Kreis1 aus");
// Sprachausgabe
nachricht = 'Kreis eins ist ausgeschalten '
setState("sayit.2.tts.text"/*Text to speech*/, nachricht); // Sprachausgabe Kreis 1 aus
});
Dazu unter Objekte/Javascript.0 eine Variable anlegen:
1653_variable_anlegen.jpg
Das Widget für Kreis 1 muss dann auf javascript.0.AnAus verweisen.
Gruss