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. Skripten / Logik
  4. Gibt es ein "For each"? [gelöst]

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Gibt es ein "For each"? [gelöst]

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 2 Kommentatoren 1.4k Aufrufe
  • Ä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.
  • M Offline
    M Offline
    mlapp
    schrieb am zuletzt editiert von
    #1

    Hallo Gemeinde,

    ich habe hier relativ viele (so ca. 25) MiHome Devices, die mit Batterie funktionieren.

    Jetzt kam ich auf die Idee, ein Blockly zu erstellen, dass für jedes Device die Baterieladung prüft und falls unter einem bestimmten Wert, 10% oder so, eine Nachricht in der VIS anzeigt, dass am Gerät XY die Batterie getauscht werden muss.

    Für ein Gerät gar kein Problem. Für 25 eigentlich auch nicht, aber bei vielen Geräten ist es erstens viel Arbeit und zweitens muss man dran denken, neue Geräte mit in das Script auf zu nehmen.

    Von daher kam ich auf die Idee, so etwas mit einer for each Schleife zu lösen. Leider gibt es das in Blockly nicht oder ich bin blind.

    Kann mir da einer weiter helfen? Evtl. auch direkt mit JS?

    Ich stell mir das so vor, dass man einen Ordner angibt und alle Objekte im Ordner werden in der Schleife behandelt. Wäre so etwas machbar?

    LG, Markus

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @mlapp:

      Evtl. auch direkt mit JS? `
      Dafür gibt es den https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#–-selector.

      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 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        mlapp
        schrieb am zuletzt editiert von
        #3

        Oh cool. Danke für den Tipp.

        Gibts dazu auch irgendwo Beispiele?

        Das wäre noch viel cooler :-)

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          In der Doku gibt es bereits einige Beispiele. Wenn Du einen Screenhot mit den Datenpunkten posten würdest, könnte man konkret werden (ich habe kein MiHome).

          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 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mlapp
            schrieb am zuletzt editiert von
            #5

            Hy, über die Suche gabs auch schon diverse Treffer.

            Hab das Script auch soweit am laufen, allerdings scheint es aktuell mit .Devicename Probleme zu geben.

            Den brauch ich aber zwingend, wenn ich wissen will bei welchem Gerät die Batterie leer ist.

            Ich behalte das mal im Auge.

            Trotzdem Danke für deine Hilfe :-)

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @mlapp:

              scheint es aktuell mit .Devicename Probleme zu geben. `
              Sind denn die Datenpunkte bei MiHome einem Device-Objekt zugeordnet ?

              Falls nicht, Vorschlag:

              const idVis = 'MiHome.Batterietausch';
              const batt = $('mihome.0.*.percent');
              
              createState(idVis, '', {type: 'string'});
              
              function lowBatt() {
              	var low = [];
              	batt.each(function (id, i) {
              		if(getState(id).val < 10) {
              			low.push(id.split('.')[3]); // Geräte-ID
              		}
              	});
              	setState(idVis, low.join(',
              '), true);		
              }
              
              schedule('0 * * * *', lowBatt); // jede volle Stunde
              
              

              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 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                mlapp
                schrieb am zuletzt editiert von
                #7

                Hy,

                dein Script funktioniert soweit. Allerdings gibt es die ID und nicht den Namen aus.

                Das Script wirft im Moment magnet_158d0001e62da0 aus, sollte aber "TS Balkontür Außen" zurück liefern.

                Geht das auch noch irgendwie?

                So sieht das aus:
                5505_mihome.png

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @mlapp:

                  sollte aber "TS Balkontür Außen" zurück liefern.

                  Geht das auch noch irgendwie? `
                  Das sollte auch gehen.

                  		if(getState(id).val < 10) {
                  			id = id.split('.');
                  			id = 'mihome.0.' + id[2] + '.' + id[3];
                  			low.push(getObject(id).common.name); // Geräte-Name
                  		}
                  
                  

                  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 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    mlapp
                    schrieb am zuletzt editiert von
                    #9

                    Perfekt. Genau das wars :-)

                    Tausend Dank!

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @mlapp:

                      Genau das wars `
                      Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

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

                      529

                      Online

                      32.7k

                      Benutzer

                      82.3k

                      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