Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skript zur Bewässerung

    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

    Skript zur Bewässerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sebastian0010 last edited by

      Liebe Community,

      habe eine Einsteigerfrage zur Programmierung einer Bewässerung. Habe einen Gardena 6-fach-Verteiler, der mechanisch durch den Wasserdruck von Kreis 1-6 durchschaltet. Davor einen mit Homematic-Schaltaktor mit Gardena-Ventil. Aktuell programmiere ich ein passendes Skript, welches weitgehend bereits funktioniert.

      Allerdings möchte ich mittels Variablen unterschiedliche Dauern für die einzelnen der 6 Kreise festlegen.
      Aktuell habe ich selbiges leider recht umständlich mit einer if-Abfrage gelöst:

      if (getState(actualcircuit).val == 2) {
          Dauer = Kreis2min*60000;
        }
        else if (getState(actualcircuit).val == 3) {
          Dauer = Kreis3min*60000;
        }
        else if (getState(actualcircuit).val == 4) {
          Dauer = Kreis4min*60000;
        }
        else if (getState(actualcircuit).val == 5) {
          Dauer = Kreis5min*60000;
        }
        else if (getState(actualcircuit).val == 6) {
          Dauer = Kreis6min*60000;
        }
        else {
          Dauer = Kreis1min*60000;
        }
      

      Um alles zu vereinfachen, würde ich das ungefähr wie folgt lösen:

      Dauer = Kreis + Wert von actualcircuit + min (Mit zeitlichen Definitionen gibt es die Variablen Kreis1min bis Kreis6min, je nach Wert von actualcircuit, soll die richtige Variable angesprochen werden)

      Mir fehlen leider die Programmierkenntnisse, wie ich das sinnvoll lösen kann.

      Kann mir da evtl. jemand einen Tipp geben?

      Vielen Dank im Voraus,
      LG Sebastian

      Weiss leider nicht, wie man das mit Javascript

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

        @sebastian0010 sagte: Variablen Kreis1min bis Kreis6min

        Variablenbezeichner lassen sich nicht modifizieren. Alternative: Array mit 6 Werten.

        Dauer = 60000 * Kreise[getState(actualcircuit).val - 1]; // Kreise enthält ein Array mit Minutenwerten
        
        S 1 Reply Last reply Reply Quote 0
        • S
          sebastian0010 @paul53 last edited by

          @paul53 Genial! Genau damit war es lösbar. Vielen Dank für den Input, das war mir nicht bewusst, dass man es in dieser Form realisieren muss. 👍

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

          Support us

          ioBroker
          Community Adapters
          Donate

          527
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          255
          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