Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. To many errors 95% scanned

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

  • Neues Video über Aliase, virtuelle Geräte und Kategorien
    BluefoxB
    Bluefox
    25
    1
    1.3k

To many errors 95% scanned

Scheduled Pinned Locked Moved Skripten / Logik
7 Posts 2 Posters 426 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • cashC Offline
    cashC Offline
    cash
    Most Active
    wrote on last edited by
    #1

    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
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @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.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • cashC Offline
        cashC Offline
        cash
        Most Active
        wrote on last edited by
        #3

        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
        0
        • cashC Offline
          cashC Offline
          cash
          Most Active
          wrote on last edited by
          #4

          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
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #5

            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;
               }
            
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              @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.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Reply Last reply
              0
              • cashC Offline
                cashC Offline
                cash
                Most Active
                wrote on last edited by
                #7

                Danke werde Deine Tipps beherzigen

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                616

                Online

                32.4k

                Users

                81.3k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe