Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. To many errors 95% scanned

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    To many errors 95% scanned

    This topic has been deleted. Only users with topic management privileges can see it.
    • cash
      cash Most Active last edited by

      Ich komme einfach nicht weiter. Ich habe das Script jetzt hoch und runter durchsucht. Ich finde keinen Fehler. Kann mir wer helfen wo das Problem liegen könnte?

      Ich muss aber dazu sagen, dass ich kein Javascript Profi bin (sieht ja am aber vermutlich auch am Schreibstil vom Script :mrgreen: ). Bisher laufen aber eigentlich alle Scripte die ich geschrieben habe.

      Hier erstmal das Script:

      ! ````
      /**************************

      • 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(){
      if(getState(id_Wochentag_Zahl).val == 1){id_Startzeit = id_Mo_Startzeit;}
      else if(getState(id_Wochentag_Zahl).val == 2){id_Startzeit = id_Di_Startzeit;}
      else if(getState(id_Wochentag_Zahl).val == 3){id_Startzeit = id_Mi_Startzeit;}
      else if(getState(id_Wochentag_Zahl).val == 4){id_Startzeit = id_Do_Startzeit;}
      else if(getState(id_Wochentag_Zahl).val == 5){id_Startzeit = id_Fr_Startzeit;}
      else if(getState(id_Wochentag_Zahl).val == 6){id_Startzeit = id_Sa_Startzeit;}
      else {id_Startzeit = id_So_Startzeit;}
      ! if(getState(id_Wochentag_Zahl).val == 1){id_Maehdauer = id_Mo_Dauer;}
      else if(getState(id_Wochentag_Zahl).val == 2){id_Maehdauer = id_Di_Dauer;}
      else if(getState(id_Wochentag_Zahl).val == 3){id_Maehdauer = id_Mi_Dauer;}
      else if(getState(id_Wochentag_Zahl).val == 4){id_Maehdauer = id_Do_Dauer;}
      else if(getState(id_Wochentag_Zahl).val == 5){id_Maehdauer = id_Fr_Dauer;}
      else if(getState(id_Wochentag_Zahl).val == 6){id_Maehdauer = id_Sa_Dauer;}
      else {id_Maehdauer = id_So_Dauer;}
      ! var Maehdauer = getState(id_Maehdauer).val;
      var Regen_heute = 0;
      if(getState(id_Regen_heute).val < 0.5){Regen_heute = 0}
      else {Regen_heute = getState(id_Regen_heute).val}
      ! var Regen_morgen = 0;
      if(getState(id_Regen_morgen).val < 1.0){Regen_morgen = 0}
      else {Regen_morgen = getState(id_Regen_morgen).val}
      ! var maehen;
      var Startzeit = 'heute nicht';
      var maehen_heute = false;
      var vgl_Maehintervall = (parseInt(getState(id_vgl_Maehintervall).val) + 1);
      ! if((getState(id_Maehintervall).val- vgl_Maehintervall == 1) && (getState(id_Wochentag_Zahl).val == 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((getState(id_Maehintervall).val- 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}
      else if (getState(id_Regen_12).val < 0.2){maehen = true}
      else if (getState(id_Regen_13).val < 0.2){maehen = true}
      else if (getState(id_Regen_14).val < 0.2){maehen = true}
      else if (getState(id_Regen_15).val < 0.2){maehen = true}
      else if (getState(id_Regen_16).val < 0.2){maehen = true}
      else {maehen = false}
      }
      ! if(maehen){if(getState(id_Regen_11).val < 0.2){Startzeit = '11:00'}
      else if (getState(id_Regen_12).val < 0.2){Startzeit = '12:00'}
      else if (getState(id_Regen_13).val < 0.2){Startzeit = '13:00'}
      else if (getState(id_Regen_14).val < 0.2){Startzeit = '14:00'}
      else if (getState(id_Regen_15).val < 0.2){Startzeit = '15:00'}
      else if (getState(id_Regen_16).val < 0.2){Startzeit = '16:00'}
      else {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;}}
      ! if(getState(id_Maehen_gestern).val != getState(id_Maehen_heute).val){setState(id_Maehen_gestern,getState(id_Maehen_heute).val)}
      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();

      
      Zusatzfrage wann muss ich bei Javascript am Ende der Zeile ein ; benutzten?
      
      Schreibe ich so:
      
      >! ````
      if(logging)
          {
          log('Mähintervall: '+getState(id_Maehintervall).val);
          log('vgl Mähintervall: '+vgl_Maehintervall)
          }
      

      Kommt ein Hinweis missing semicolon

      Wenn ich allerdings die } direkt hinter dem ) schreibe. Kommt kein Hinweis.

      Homematic Script ist da ja sehr pingelig. Bisher habe ich mir das so zusammen gereimt das man eigentlich immer ; benutzen kann aber Javascript auch ohne zufrieden ist wenn if logisch in der gleichen Zeile geschlossen ist.

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @cash:

        wann muss ich bei Javascript am Ende der Zeile ein ; benutzten? `
        Man muss nicht. Es ist allerdings schlechter Stil, das Semikolon am Anweisungsende wegzulassen.

        Es ist auch schlechter Stil, die Anweisungen innerhalb einer Funktion nicht einzurücken, da dann das Ende der Funktion schlecht zu erkennen ist.

        if(getState(id_Wochentag_Zahl).val == 1){id_Startzeit = id_Mo_Startzeit;}
        else if(getState(id_Wochentag_Zahl).val == 2){id_Startzeit = id_Di_Startzeit;}
        else if(getState(id_Wochentag_Zahl).val == 3){id_Startzeit = id_Mi_Startzeit;}
        else if(getState(id_Wochentag_Zahl).val == 4){id_Startzeit = id_Do_Startzeit;}
        else if(getState(id_Wochentag_Zahl).val == 5){id_Startzeit = id_Fr_Startzeit;}
        else if(getState(id_Wochentag_Zahl).val == 6){id_Startzeit = id_Sa_Startzeit;}
        else {id_Startzeit = id_So_Startzeit;}
        
        if(getState(id_Wochentag_Zahl).val == 1){id_Maehdauer = id_Mo_Dauer;}
        else if(getState(id_Wochentag_Zahl).val == 2){id_Maehdauer = id_Di_Dauer;}
        else if(getState(id_Wochentag_Zahl).val == 3){id_Maehdauer = id_Mi_Dauer;}
        else if(getState(id_Wochentag_Zahl).val == 4){id_Maehdauer = id_Do_Dauer;}
        else if(getState(id_Wochentag_Zahl).val == 5){id_Maehdauer = id_Fr_Dauer;}
        else if(getState(id_Wochentag_Zahl).val == 6){id_Maehdauer = id_Sa_Dauer;}
        else {id_Maehdauer = id_So_Dauer;}
        
        

        14 mal getState(id_Wochentag_Zahl) belastet die CPU unnötig. Besser so

           var wd = getState(id_Wochentag_Zahl).val;
           if(wd == 1) {
              id_Startzeit = id_Mo_Startzeit;
              id_Maehdauer = id_Mo_Dauer;
           } else if(wd== 2) {
              id_Startzeit = id_Di_Startzeit;
              id_Maehdauer = id_Di_Dauer;
           } else if(wd == 3) {
              id_Startzeit = id_Mi_Startzeit;
              id_Maehdauer = id_Mi_Dauer;
           } else if(wd == 4) {
              id_Startzeit = id_Do_Startzeit;
              id_Maehdauer = id_Do_Dauer;
           } else if(wd == 5) {
              id_Startzeit = id_Fr_Startzeit;
              id_Maehdauer = id_Fr_Dauer;
           } else if(wd == 6) {
              id_Startzeit = id_Sa_Startzeit;
              id_Maehdauer = id_Sa_Dauer;
           } else {
              id_Startzeit = id_So_Startzeit;
              id_Maehdauer = id_So_Dauer;
           }
        
        

        oder mit https://wiki.selfhtml.org/wiki/JavaScript/Verzweigung#Fallunterscheidung_mit_.22switch.22.

        1 Reply Last reply Reply Quote 0
        • cash
          cash Most Active last edited by

          Ich hatte es erst eingerückt weil ich es so besser lesen kann. Es lief auch alles aber gestern hatte ich an div. Stellen änderungen vorgenommen und seit dem habe ich den Fehler.

          Daraufhin habe ich alles anguckt und weil ich nichts gefunden habe, habe ich dann einrückungen raus und viele Zeilenumbrüche entfernt…

          1 Reply Last reply Reply Quote 0
          • cash
            cash Most Active last edited by

            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?
            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              Die Struktur verschachtelter Abfrageb (if … else) erkennt man erst, wenn man sinnvoll einrückt. Ist nach einem if(Bedingung) oder else nur eine Anweisung abzuarbeiten, kann man die Anweisung in die gleiche Zeile schreiben. Beispiel:

                 if(logging) log('Logtext');
              

              Sauber ist es so:

                 if(logging) {
                    log('Logtext');
                 }
              

              Bei mehren Anweisungen muss die geschweifte Klammer verwendet werden:

                 if(Bedingung) {
                    Anweisung1;
                    Anweisung2;
                 } else {
                    Anweisung3;
                    Anweisung4;
                 }
              
              
              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @cash:

                statt switch() case() kann ich aber auch einfach if mit else if kombinieren oder? …

                bei swtich() case() muss ich dafür an das break denken damit er das macht oder verstehe ich die Funktionen falsch? `
                Das ist richtig. switch() case() erhöht lediglich die Übersichlichkeit.

                1 Reply Last reply Reply Quote 0
                • cash
                  cash Most Active last edited by

                  Danke werde Deine Tipps beherzigen

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  454
                  Online

                  31.7k
                  Users

                  79.9k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  402
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo