Jetzt läuft es endlich wieder. Habe alles neu gemacht incl Einrückungen und ;
! ````
/**************************
- Berechnet ob der Rasenmäher heute mähen soll
**************************/
var logging = true; //wenn true wird geloggt (true/false)
var sendpush = true; //wenn true wird eine Pushmitteilung verschickt (true/false)
var working_feiertag = true; //wenn true wird auch an Feiertagen gemäht (true/false)
var working_Sa = true; //wenn true wird an Samstagen gemäht. Nicht übersteuerbar. (true/false)
var working_So = false; //wenn true wird an Sonntagen gemäht. Nicht übersteuerbar. (true/false)
var today_rain_tomorow = true; //wenn true wird heute gemäht wenn Morgen Regen vorhergesagt wurde und der Mähintervall heute nicht erreicht wurde.
//gilt nur wenn es heute nicht regnet
! var pushover_Instanz = 'pushover.0';
var id_Maehintervall = "Systemvariable.0.Landroid.Maehintervall"/Maehintervall/;
var id_vgl_Maehintervall = "Systemvariable.0.Landroid.vgl_Maehintervall"/vgl_Maehintervall/;
var id_Maehen_heute = "Systemvariable.0.Landroid.Maehen_heute"/Maehen heute/;
var id_Maehen_gestern = "Systemvariable.0.Landroid.Maehen_gestern"/Maehen gestern/;
var id_Regen_heute = "daswetter.0.hourly.0d.Rain"/Rain/;
var id_Regen_morgen = "daswetter.0.hourly.1d.Rain"/Rain/;
var id_Regen_11 = "daswetter.0.hourly.0d.10h.Rain"/Rain/;
var id_Regen_12 = "daswetter.0.hourly.0d.11h.Rain"/Rain/;
var id_Regen_13 = "daswetter.0.hourly.0d.12h.Rain"/Rain/;
var id_Regen_14 = "daswetter.0.hourly.0d.13h.Rain"/Rain/;
var id_Regen_15 = "daswetter.0.hourly.0d.14h.Rain"/Rain/;
var id_Regen_16 = "daswetter.0.hourly.0d.15h.Rain"/Rain/;
var id_Mo_Startzeit = "landroid-s.0.calendar.monday.startTime"/Start time/;
var id_Di_Startzeit = "landroid-s.0.calendar.tuesday.startTime"/Start time/;
var id_Mi_Startzeit = "landroid-s.0.calendar.wednesday.startTime"/Start time/;
var id_Do_Startzeit = "landroid-s.0.calendar.thursday.startTime"/Start time/;
var id_Fr_Startzeit = "landroid-s.0.calendar.friday.startTime"/Start time/;
var id_Sa_Startzeit = "landroid-s.0.calendar.saturday.startTime"/Start time/;
var id_So_Startzeit = "landroid-s.0.calendar.thursday.startTime"/Start time/;
var id_Startzeit;
var id_Mo_Dauer = "landroid-s.0.calendar.monday.workTime"/Work time/;
var id_Di_Dauer = "landroid-s.0.calendar.tuesday.workTime"/Work time/;
var id_Mi_Dauer = "landroid-s.0.calendar.wednesday.workTime"/Work time/;
var id_Do_Dauer = "landroid-s.0.calendar.thursday.workTime"/Work time/;
var id_Fr_Dauer = "landroid-s.0.calendar.friday.workTime"/Work time/;
var id_Sa_Dauer = "landroid-s.0.calendar.saturday.workTime"/Work time/;
var id_So_Dauer = "landroid-s.0.calendar.sunday.workTime"/Work time/;
var id_Maehdauer;
var id_Wochentag_Zahl = "Kalender.0.Datum.Wochentag_Zahl"/Wochentag_Zahl/;
var id_Feiertag = "feiertage.0.heute.boolean"/Feiertag heute?/;
! var _prio = 0;
var _titel = 'Landroid';
var _message = 'Fehler';
var _device = 'TPhone';
//var _device = 'All';
! function send_pushover (_device, _message, _titel, _prio) {
if (_prio === 0){pushover_Instanz = 'pushover.0'}
else if (_prio == 1){pushover_Instanz = 'pushover.1'}
else if (_prio == 2){pushover_Instanz = 'pushover.2'}
else {pushover_Instanz = 'pushover.3'}
sendTo(pushover_Instanz, {
device: _device,
message: _message,
title: _titel,
priority: _prio
})}
! function func_maehen(){
var Wochentag_Zahl = getState(id_Wochentag_Zahl).val;
if(Wochentag_Zahl == 1)
{id_Startzeit = id_Mo_Startzeit;
id_Maehdauer = id_Mo_Dauer;
}
else if(Wochentag_Zahl == 2)
{
id_Startzeit = id_Di_Startzeit;
id_Maehdauer = id_Di_Dauer;
}
else if(Wochentag_Zahl == 3)
{id_Startzeit = id_Mi_Startzeit;
id_Maehdauer = id_Mi_Dauer;
}
else if(Wochentag_Zahl == 4)
{id_Startzeit = id_Do_Startzeit;
id_Maehdauer = id_Do_Dauer;
}
else if(Wochentag_Zahl == 5)
{id_Startzeit = id_Fr_Startzeit;
id_Maehdauer = id_Fr_Dauer;
}
else if(Wochentag_Zahl == 6)
{id_Startzeit = id_Sa_Startzeit;
id_Maehdauer = id_Sa_Dauer;
}
else
{
id_Startzeit = id_So_Startzeit;
id_Maehdauer = id_So_Dauer;
}
! var Maehdauer = getState(id_Maehdauer).val;
var Regen_heute = getState(id_Regen_heute).val;
var Regen_morgen = getState(id_Regen_morgen).val;
if(Regen_heute < 0.5){Regen_heute = 0;}
if(Regen_morgen < 1.0){Regen_morgen = 0}
var maehen = false;
var maehen_heute = false;
var Startzeit = 'heute nicht';
var Maehintervall = getState(id_Maehintervall).val;
var vgl_Maehintervall = (parseInt(getState(id_vgl_Maehintervall).val) + 1);
! if((Maehintervall- vgl_Maehintervall == 1) && (Wochentag_Zahl == 6))
{if(!working_So)
{if(working_Sa)
{maehen_heute = true;
}
}
}
//wenn Morgen regen und Paramter today_rain_tomorw auf true dann soll er prüfen ob er Mähen darf
else if((Maehintervall - vgl_Maehintervall == 1) && (Regen_morgen > 0))
{if(today_rain_tomorow)
{if(logging)
{
log('Mähintervall wäre Morgen erreicht. Leider regnet es. Es wird geprüft ob heute gemäht wird');
}
maehen_heute = true;
}
}
else
{
if(vgl_Maehintervall >= getState(id_Maehintervall).val)
{
maehen_heute = true;
setState(id_vgl_Maehintervall,0);
}
else
{
setState(id_vgl_Maehintervall,vgl_Maehintervall);
if(getState(id_Maehen_gestern).val != getState(id_Maehen_heute).val)
{
setState(id_Maehen_gestern,getState(id_Maehen_heute).val);
}
if(getState(id_Maehen_heute).val)
{
setState(id_Maehen_heute,false);
}
if(logging)
{
log('Heute wird nicht gemäht. Mähintervall nicht erreicht.');
log('Mähintervall: '+getState(id_Maehintervall).val);
log('vgl Mähintervall: '+vgl_Maehintervall);
}
_message = 'Heute wird nicht gemäht. Mähintervall nicht erreicht';
}
}
! if(maehen_heute)
{
if(getState(id_Regen_11).val < 0.2)
{
maehen = true;
Startzeit = '11:00';
}
else if (getState(id_Regen_12).val < 0.2)
{
maehen = true;
Startzeit = '12:00';
}
else if (getState(id_Regen_13).val < 0.2)
{
maehen = true;
Startzeit = '13:00';
}
else if (getState(id_Regen_14).val < 0.2)
{
maehen = true;
Startzeit = '14:00';
}
else if (getState(id_Regen_15).val < 0.2)
{
maehen = true;
Startzeit = '15:00';
}
else if (getState(id_Regen_16).val < 0.2)
{
maehen = true;
Startzeit = '16:00';
}
else
{
maehen = false;
Startzeit = '';
}
}
if(!working_feiertag)
{
if(getState(id_Feiertag).val)
{
maehen = false;
}
}
! if(!working_Sa)
{
if(getState(id_Wochentag_Zahl).val == 6)
{
maehen = false;
}
}
if(!working_So)
{
if(getState(id_Wochentag_Zahl).val == 7)
{
maehen = false;
}
}
! //Status gestern setzen
if(getState(id_Maehen_gestern).val != getState(id_Maehen_heute).val)
{
setState(id_Maehen_gestern,getState(id_Maehen_heute).val);
}
//Status heute setzen
setState(id_Maehen_heute,maehen);
!
! if(logging)
{
log('Regen heute: '+Regen_heute);
log('Regen morgen: '+Regen_morgen);
log('Heute mähen: ' +maehen);
log('Startzeit: '+Startzeit +' Dauer: '+Maehdauer);
log('Mähintervall: '+getState(id_Maehintervall).val);
log('vgl Mähintervall: '+vgl_Maehintervall);
}
! if(maehen)
{
_message = 'Heute soll gemäht werden ab: ' +Startzeit + ' Uhr' + ' Dauer: '+Maehdauer;
}
else
{
_message = 'Heute soll nicht gemäht werden';
}
! //Push verschicken
if(sendpush)
{
send_pushover(_device, _message, _titel, _prio);
}
!
}
! //einmalig ausführen
//schedule("15 10 * * *", func_maehen);
! //beim Scripstart
func_maehen();
statt switch() case() kann ich aber auch einfach if mit else if kombinieren oder? Macht doch das gleiche. Fängt oben an und sobald ein Bedingung zutrifft hört er auf bei swtich() case() muss ich dafür an das break denken damit er das macht oder verstehe ich die Funktionen falsch?