Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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
    16
    1
    923

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

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

Geplant Angeheftet Gesperrt Verschoben Entwicklung
sprinkle controlindexm.htmlindexm.jskonfigurationsdaten
13 Beiträge 3 Kommentatoren 823 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #4

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

    1 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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 Offline
        D Offline
        dirkhe
        Developer
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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 Offline
            D Offline
            dirkhe
            Developer
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #9

              @dirkhe Super besten Dank, Dirk Peter

              D 1 Antwort Letzte Antwort
              0
              • Dirk PeterD Dirk Peter

                @dirkhe Super besten Dank, Dirk Peter

                D Offline
                D Offline
                dirkhe
                Developer
                schrieb am zuletzt editiert von
                #10

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

                1 Antwort Letzte Antwort
                0
                • Dirk PeterD Offline
                  Dirk PeterD Offline
                  Dirk Peter
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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 Offline
                    D Offline
                    dirkhe
                    Developer
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      966

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe