Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Sprinkle Control => Hilfe! Fehler in der index_m.html

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Sprinkle Control => Hilfe! Fehler in der index_m.html

Scheduled Pinned Locked Moved Entwicklung
sprinkle controlindexm.htmlindexm.jskonfigurationsdaten
13 Posts 3 Posters 837 Views 3 Watching
  • 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.
  • Dirk PeterD Dirk Peter
    Github Link https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol
    index_m.html https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/admin/index_m.html
    index_m.js https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/admin/index_m.js
    Beschreibung https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/docs/de/sprinklecontrol.md

    Hallo, brauche unbedingt eure Hilfe!

    Schon beim Laden/Neuinstallation (ohne Fehler) des Adapters Sprinkle Control 0.2.2 werden die Datenpunkte

    • "methodControlSM": "calculation",
    • "triggerSM": "",
    • "startDay": null,

    doppelt angelegt. Einmal unerwünscht unter "native": und einmal so wie gewollt unter "events":.
    Screenshot 2021-08-01 121313.jpg
    Dies führt dazu, dass das letzte event (Bewässerungskreis) die Daten der 3 Datenpunkte (methodControlSM, triggerSM, startDay) unter native schreiben und somit es zu Fehlern beim Start des Programms kommen kann.
    Ich vermute es liegt an den doppelten Selektoren in der index_m.js, aber ich weiß auch nicht wie ich es besser machen soll.
    Daher mein Hilferuf! Ich komme einfach nicht weiter.
    Danke im Voraus für eure Hilfe,
    Dirk Peter

    T Offline
    T Offline
    tombox
    wrote on last edited by
    #2

    @dirk-peter
    https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/9e9ded9c73121a8941d4d359efdfe1568806f056/admin/index_m.html#L690

    Könnte doch dafür sorgen dass das native element geschrieben wird. Kannst ja durch umbenennen mal testen.

    Dirk PeterD 1 Reply Last reply
    0
    • Dirk PeterD Dirk Peter
      Github Link https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol
      index_m.html https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/admin/index_m.html
      index_m.js https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/admin/index_m.js
      Beschreibung https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/master/docs/de/sprinklecontrol.md

      Hallo, brauche unbedingt eure Hilfe!

      Schon beim Laden/Neuinstallation (ohne Fehler) des Adapters Sprinkle Control 0.2.2 werden die Datenpunkte

      • "methodControlSM": "calculation",
      • "triggerSM": "",
      • "startDay": null,

      doppelt angelegt. Einmal unerwünscht unter "native": und einmal so wie gewollt unter "events":.
      Screenshot 2021-08-01 121313.jpg
      Dies führt dazu, dass das letzte event (Bewässerungskreis) die Daten der 3 Datenpunkte (methodControlSM, triggerSM, startDay) unter native schreiben und somit es zu Fehlern beim Start des Programms kommen kann.
      Ich vermute es liegt an den doppelten Selektoren in der index_m.js, aber ich weiß auch nicht wie ich es besser machen soll.
      Daher mein Hilferuf! Ich komme einfach nicht weiter.
      Danke im Voraus für eure Hilfe,
      Dirk Peter

      D Do not disturb
      D Do not disturb
      dirkhe
      Developer
      wrote on last edited by
      #3

      @dirk-peter du könntest mal versuchen, nachdem der Dialog für ein Ventil geschlossen wurde, alle Werte auf null zu setzen, denn scheinbar versucht er alle inputfelder, die gefüllt sind, unter native zu schreiben, habe jetzt aber nur in den Quellcode geschaut, nicht debuggt

      Dirk PeterD 1 Reply Last reply
      0
      • T tombox

        @dirk-peter
        https://github.com/Dirk-Peter-md/ioBroker.sprinklecontrol/blob/9e9ded9c73121a8941d4d359efdfe1568806f056/admin/index_m.html#L690

        Könnte doch dafür sorgen dass das native element geschrieben wird. Kannst ja durch umbenennen mal testen.

        Dirk PeterD Offline
        Dirk PeterD Offline
        Dirk Peter
        wrote on last edited by
        #4

        @tombox Danke für die schnelle Antwort. Komme leider erst am Sonntag zum Testen. Melde mich dann!
        Gruß Dirk Peter

        1 Reply Last reply
        0
        • D dirkhe

          @dirk-peter du könntest mal versuchen, nachdem der Dialog für ein Ventil geschlossen wurde, alle Werte auf null zu setzen, denn scheinbar versucht er alle inputfelder, die gefüllt sind, unter native zu schreiben, habe jetzt aber nur in den Quellcode geschaut, nicht debuggt

          Dirk PeterD Offline
          Dirk PeterD Offline
          Dirk Peter
          wrote on last edited by
          #5

          @dirkhe Hallo tombox, komme zwar erst am Sonntag wieder zum Testen, aber gegen deine Theorie spricht, das wenn ich den Adapter ganz frisch neu installiere und mir beim ersten öffnen der Konfiguration die Konfigurationsdatei sichere/speichere ohne Dateneingabe und ohne in die Details der Bewässerungskreise zu gehen, so sind die 3 Datenpunkte schon unter nativ angelegt. Obwohl sie an dieser Stelle in der io-package.json nicht aufgeführt sind. Oder denke ich da irgendwo falsch?
          Gruß Dirk Peter

          D 1 Reply Last reply
          0
          • Dirk PeterD Dirk Peter

            @dirkhe Hallo tombox, komme zwar erst am Sonntag wieder zum Testen, aber gegen deine Theorie spricht, das wenn ich den Adapter ganz frisch neu installiere und mir beim ersten öffnen der Konfiguration die Konfigurationsdatei sichere/speichere ohne Dateneingabe und ohne in die Details der Bewässerungskreise zu gehen, so sind die 3 Datenpunkte schon unter nativ angelegt. Obwohl sie an dieser Stelle in der io-package.json nicht aufgeführt sind. Oder denke ich da irgendwo falsch?
            Gruß Dirk Peter

            D Do not disturb
            D Do not disturb
            dirkhe
            Developer
            wrote on last edited by
            #6

            @dirk-peter so, ich habe mal genauer geschaut. Mache es mal so:

            index:m.html Zeile 53

                            <div class="row" id="mainsettings">
                                <!-- main settings -->
                                <div id="tab-settings" class="col s12 page">
                                    <div class="row">
            

            index_m.js Zeile 421

            function save(callback) {
                // example: select elements with class=value and build settings object
                // Beispiel: Wählen Sie Elemente mit class = value aus und erstellen Sie das Einstellungsobjekt
                let obj = {};
                $('#mainsettings .value').each(function () {
                    let $this = $(this);
                    if ($this.attr('type') === 'checkbox') {
                        obj[$this.attr('id')] = $this.prop('checked');
                    } else {
                        obj[$this.attr('id')] = $this.val();
                    }
                });
            

            musst mal schauen, für das initialisieren kannst du ggf auch auf $('#mainsettings') zurückgreifen. So so wendet JQuery die Suche nur auf diesen Bereich an.

            Dirk PeterD 1 Reply Last reply
            0
            • D dirkhe

              @dirk-peter so, ich habe mal genauer geschaut. Mache es mal so:

              index:m.html Zeile 53

                              <div class="row" id="mainsettings">
                                  <!-- main settings -->
                                  <div id="tab-settings" class="col s12 page">
                                      <div class="row">
              

              index_m.js Zeile 421

              function save(callback) {
                  // example: select elements with class=value and build settings object
                  // Beispiel: Wählen Sie Elemente mit class = value aus und erstellen Sie das Einstellungsobjekt
                  let obj = {};
                  $('#mainsettings .value').each(function () {
                      let $this = $(this);
                      if ($this.attr('type') === 'checkbox') {
                          obj[$this.attr('id')] = $this.prop('checked');
                      } else {
                          obj[$this.attr('id')] = $this.val();
                      }
                  });
              

              musst mal schauen, für das initialisieren kannst du ggf auch auf $('#mainsettings') zurückgreifen. So so wendet JQuery die Suche nur auf diesen Bereich an.

              Dirk PeterD Offline
              Dirk PeterD Offline
              Dirk Peter
              wrote on last edited by
              #7

              @dirkhe habe mal auf der schnelle Getestet.
              Jetzt wird tatsächlich nicht mehr unter "native" geschrieben, aber unter "events" fehlen auch die Einträge. Screenshot 2021-08-04 094156.jpg
              Wie es aussieht bzw. was mir auffällt, das Problem besteht, seit dem ich die Combobox unter "events" eingefügt hatte. Habe ich diese vielleicht nicht richtig in die html eingefügt bzw. deklariert?
              MfG Dirk Stassen

              D 1 Reply Last reply
              0
              • Dirk PeterD Dirk Peter

                @dirkhe habe mal auf der schnelle Getestet.
                Jetzt wird tatsächlich nicht mehr unter "native" geschrieben, aber unter "events" fehlen auch die Einträge. Screenshot 2021-08-04 094156.jpg
                Wie es aussieht bzw. was mir auffällt, das Problem besteht, seit dem ich die Combobox unter "events" eingefügt hatte. Habe ich diese vielleicht nicht richtig in die html eingefügt bzw. deklariert?
                MfG Dirk Stassen

                D Do not disturb
                D Do not disturb
                dirkhe
                Developer
                wrote on last edited by
                #8

                @dirk-peter da müsste ich nochmal tiefer eintauchen, wie du events speicherst, sobald ich Zeit habe, schaue ich mir das mal an

                Dirk PeterD 1 Reply Last reply
                0
                • D dirkhe

                  @dirk-peter da müsste ich nochmal tiefer eintauchen, wie du events speicherst, sobald ich Zeit habe, schaue ich mir das mal an

                  Dirk PeterD Offline
                  Dirk PeterD Offline
                  Dirk Peter
                  wrote on last edited by
                  #9

                  @dirkhe Super besten Dank, Dirk Peter

                  D 1 Reply Last reply
                  0
                  • Dirk PeterD Dirk Peter

                    @dirkhe Super besten Dank, Dirk Peter

                    D Do not disturb
                    D Do not disturb
                    dirkhe
                    Developer
                    wrote on last edited by
                    #10

                    @dirk-peter Ich habe das gerade bei mir nachgestellt und bei mir wird "methodControlSM" aber angelegt

                    1 Reply Last reply
                    0
                    • Dirk PeterD Offline
                      Dirk PeterD Offline
                      Dirk Peter
                      wrote on last edited by
                      #11

                      @dirkhe Eigenartig, bei mir wird "methodControlSM" und "startDay" nicht angelegt.
                      Testablauf:

                      • Adapterinstanz installieren Konfiguration öffnet sich automatisch
                      • Konfiguration Speichern => alles in Ordnung
                        Test 1.jpg
                      • Bewässerungskreis 2 über + anlegen
                      • Konfiguration Speichern => "methodControlSM" und "startDay" sind nicht angelegt
                        Test 2.jpg
                        Ja irgendwie ist bei mir der Wurm drin!
                        index_m.html
                        index_m.html
                        index_m.js
                        index_m.js
                        Gruß Dirk Peter
                      D 1 Reply Last reply
                      0
                      • Dirk PeterD Dirk Peter

                        @dirkhe Eigenartig, bei mir wird "methodControlSM" und "startDay" nicht angelegt.
                        Testablauf:

                        • Adapterinstanz installieren Konfiguration öffnet sich automatisch
                        • Konfiguration Speichern => alles in Ordnung
                          Test 1.jpg
                        • Bewässerungskreis 2 über + anlegen
                        • Konfiguration Speichern => "methodControlSM" und "startDay" sind nicht angelegt
                          Test 2.jpg
                          Ja irgendwie ist bei mir der Wurm drin!
                          index_m.html
                          index_m.html
                          index_m.js
                          index_m.js
                          Gruß Dirk Peter
                        D Do not disturb
                        D Do not disturb
                        dirkhe
                        Developer
                        wrote on last edited by
                        #12

                        @dirk-peter ah jetzt konnte ich es auch nachstellen. Der Fehler ist hier:

                               }
                                setTimeout(function () {
                                    $('#events .values-input[data-name="enabled"][data-index="' + id + '"]').prop('checked', true);
                                    $('#events .values-input[data-name="wateringTime"][data-index="' + id + '"]').val('20').trigger('change');
                                    $('#events .values-input[data-name="wateringAdd"][data-index="' + id + '"]').val('200').trigger('change');
                                    $('#events .values-input[data-name="wateringInterval"][data-index="' + id + '"]').val('0').trigger('change');
                                    $('#events .values-input[data-name="maxSoilMoistureIrrigation"][data-index="' + id + '"]').val('8').trigger('change');
                                    $('#events .values-input[data-name="maxSoilMoistureRain"][data-index="' + id + '"]').val('10').trigger('change');
                                    $('#events .values-input[data-name="triggersIrrigation"][data-index="' + id + '"]').val('50').trigger('change');
                                    $('#events .values-input[data-name="pipeFlow"][data-index="' + id + '"]').val('700').trigger('change');
                                    $('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').val('calculation').trigger('change');
                                    //$('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').select().trigger('change');
                                    $('#events .values-input[data-name="triggerSM"][data-index="' + id + '"]').val('50').trigger('change');
                                    $('#events .values-input[data-name="analogZPct"][data-index="' + id + '"]').val('0').trigger('change');
                                    $('#events .values-input[data-name="analogOHPct"][data-index="' + id + '"]').val('100').trigger('change');
                                    $('#events .values-input[data-name="startDay"][data-index="' + id + '"]').val('threeRd').trigger('change');
                                    $('#events .values-input[data-name="startDay"][data-index="' + id + '"]').select().trigger('change');
                        

                        In Zeile 12 des code Beispiels. Die Zeile macht hier keinen Sinn (ich habe sie mal auskommentiert). Du initialisiert ja hier die fehlenden table Zeilen, da hast du ja eh nur die versteckten input felder, da sollte kein select raus gemacht werden.

                        Du hast den ganzen Block 3 mal drin, einmal zum Dialog initialisieren, einmal um den Dialog auszulesen und wenn du auf neu klickst. Ich würde das Speichern vom Dialog in die TableZeilen so ändern, dass du eine Methode hast, die dir ein Object event zusammenbastelt und mit dem Object füllst du dann die Zeile. Wenn ein neuer Sprinkler angelegt wird, erzeugst du ein default event object und füllst damit ebenfalls die Zeile. Dann schleichen sich nicht so schnell copy und paste fehler ein :)

                        gruss
                        Dirk

                        Dirk PeterD 1 Reply Last reply
                        0
                        • D dirkhe

                          @dirk-peter ah jetzt konnte ich es auch nachstellen. Der Fehler ist hier:

                                 }
                                  setTimeout(function () {
                                      $('#events .values-input[data-name="enabled"][data-index="' + id + '"]').prop('checked', true);
                                      $('#events .values-input[data-name="wateringTime"][data-index="' + id + '"]').val('20').trigger('change');
                                      $('#events .values-input[data-name="wateringAdd"][data-index="' + id + '"]').val('200').trigger('change');
                                      $('#events .values-input[data-name="wateringInterval"][data-index="' + id + '"]').val('0').trigger('change');
                                      $('#events .values-input[data-name="maxSoilMoistureIrrigation"][data-index="' + id + '"]').val('8').trigger('change');
                                      $('#events .values-input[data-name="maxSoilMoistureRain"][data-index="' + id + '"]').val('10').trigger('change');
                                      $('#events .values-input[data-name="triggersIrrigation"][data-index="' + id + '"]').val('50').trigger('change');
                                      $('#events .values-input[data-name="pipeFlow"][data-index="' + id + '"]').val('700').trigger('change');
                                      $('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').val('calculation').trigger('change');
                                      //$('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').select().trigger('change');
                                      $('#events .values-input[data-name="triggerSM"][data-index="' + id + '"]').val('50').trigger('change');
                                      $('#events .values-input[data-name="analogZPct"][data-index="' + id + '"]').val('0').trigger('change');
                                      $('#events .values-input[data-name="analogOHPct"][data-index="' + id + '"]').val('100').trigger('change');
                                      $('#events .values-input[data-name="startDay"][data-index="' + id + '"]').val('threeRd').trigger('change');
                                      $('#events .values-input[data-name="startDay"][data-index="' + id + '"]').select().trigger('change');
                          

                          In Zeile 12 des code Beispiels. Die Zeile macht hier keinen Sinn (ich habe sie mal auskommentiert). Du initialisiert ja hier die fehlenden table Zeilen, da hast du ja eh nur die versteckten input felder, da sollte kein select raus gemacht werden.

                          Du hast den ganzen Block 3 mal drin, einmal zum Dialog initialisieren, einmal um den Dialog auszulesen und wenn du auf neu klickst. Ich würde das Speichern vom Dialog in die TableZeilen so ändern, dass du eine Methode hast, die dir ein Object event zusammenbastelt und mit dem Object füllst du dann die Zeile. Wenn ein neuer Sprinkler angelegt wird, erzeugst du ein default event object und füllst damit ebenfalls die Zeile. Dann schleichen sich nicht so schnell copy und paste fehler ein :)

                          gruss
                          Dirk

                          Dirk PeterD Offline
                          Dirk PeterD Offline
                          Dirk Peter
                          wrote on last edited by
                          #13

                          @dirkhe
                          Hallo Dirk,
                          danke fürs Suchen und Finden! Werde dann mal versuchen es besser zu machen und dabei jQuery zu lernen.
                          Nochmals Danke für die Hilfe,
                          Dirk Peter

                          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

                          353

                          Online

                          32.7k

                          Users

                          82.4k

                          Topics

                          1.3m

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

                          • Don't have an account? Register

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