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. JavaScript
  5. HomematicIP Gerätenamen auslesen [gelöst]

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

HomematicIP Gerätenamen auslesen [gelöst]

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 381 Aufrufe 2 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.
  • S Offline
    S Offline
    SCHNittER
    schrieb am zuletzt editiert von SCHNittER
    #1

    Hallo,

    ich bin leider in JS völlig unbedarft und versuche mir anhand bestehender Scripte das nötigste beizubringen.

    Allerdings verzeifle ich gerade. Ich habe ein fenster_türen_zählen script

    function countOpenWindowsDoors()
    {
        var openWindows = 0;
        var openDoors = 0;
           
        // Fenster
        var windows = getObject("enum.functions.windowStatus").common.members;
        for(let i = 0; i < windows.length; i++) {
            var Status = getState(windows[i]).val;
            if ( Status == "OPEN") { 
                openWindows = openWindows + 1;
            }
        }
         
        // Türen
        var doors = getObject("enum.functions.doorStatus").common.members;
        for(let i = 0; i < doors.length; i++) {
            var Status = getState(doors[i]).val;
            if ( Status == "OPEN" ) { 
                openDoors = openDoors + 1;
            }
        } 
         
        var openWindowsText = "Kein Fenster geöffnet";
        var openDoorText = "Keine Tür geöffnet";
         
        if ( openWindows > 0 ) {
            openWindowsText = openWindows + " Fenster geöffnet"; 
        }
         
        
        if ( openDoors > 0 ) {
            openDoorText = openDoors + " Türe(n) geöffnet"; 
        }    
     
        setState('0_userdata.0.StatusWindowOpenText', openWindowsText );
        setState('0_userdata.0.StatusDoorOpenText', openDoorText );        
        setState('0_userdata.0.StatusWindowOpen', openWindows );
        setState('0_userdata.0.StatusDoorOpen', openDoors );    
    }
     
    $('state(functions=window)').on(function(obj) {
        countOpenWindowsDoors();
    });
     
    $('state(functions=door)').on(function(obj) {
        countOpenWindowsDoors();
    });
     
    countOpenWindowsDoors();
    

    Da funktioniert auch alles, allerdings würde ich mir gern den Namen des Aktors mit ausgeben lassen (welches Fenster genau geöffnet ist).
    Ich verstehe aber nicht, wie ich mit JS darauf zugreifen kann:

    iobroker.JPG

    Eigentlich sollte der Name doch "irgendwo" in getObject vorhanden sein.

    Danke schon einmal für die Hilfe

    Jens

    HomoranH paul53P 2 Antworten Letzte Antwort
    0
    • S SCHNittER

      Hallo,

      ich bin leider in JS völlig unbedarft und versuche mir anhand bestehender Scripte das nötigste beizubringen.

      Allerdings verzeifle ich gerade. Ich habe ein fenster_türen_zählen script

      function countOpenWindowsDoors()
      {
          var openWindows = 0;
          var openDoors = 0;
             
          // Fenster
          var windows = getObject("enum.functions.windowStatus").common.members;
          for(let i = 0; i < windows.length; i++) {
              var Status = getState(windows[i]).val;
              if ( Status == "OPEN") { 
                  openWindows = openWindows + 1;
              }
          }
           
          // Türen
          var doors = getObject("enum.functions.doorStatus").common.members;
          for(let i = 0; i < doors.length; i++) {
              var Status = getState(doors[i]).val;
              if ( Status == "OPEN" ) { 
                  openDoors = openDoors + 1;
              }
          } 
           
          var openWindowsText = "Kein Fenster geöffnet";
          var openDoorText = "Keine Tür geöffnet";
           
          if ( openWindows > 0 ) {
              openWindowsText = openWindows + " Fenster geöffnet"; 
          }
           
          
          if ( openDoors > 0 ) {
              openDoorText = openDoors + " Türe(n) geöffnet"; 
          }    
       
          setState('0_userdata.0.StatusWindowOpenText', openWindowsText );
          setState('0_userdata.0.StatusDoorOpenText', openDoorText );        
          setState('0_userdata.0.StatusWindowOpen', openWindows );
          setState('0_userdata.0.StatusDoorOpen', openDoors );    
      }
       
      $('state(functions=window)').on(function(obj) {
          countOpenWindowsDoors();
      });
       
      $('state(functions=door)').on(function(obj) {
          countOpenWindowsDoors();
      });
       
      countOpenWindowsDoors();
      

      Da funktioniert auch alles, allerdings würde ich mir gern den Namen des Aktors mit ausgeben lassen (welches Fenster genau geöffnet ist).
      Ich verstehe aber nicht, wie ich mit JS darauf zugreifen kann:

      iobroker.JPG

      Eigentlich sollte der Name doch "irgendwo" in getObject vorhanden sein.

      Danke schon einmal für die Hilfe

      Jens

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @schnitter sagte in HomematicIP Gerätenamen auslesen:

      "irgendwo" in getObject

      common.name

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      S 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @schnitter sagte in HomematicIP Gerätenamen auslesen:

        "irgendwo" in getObject

        common.name

        S Offline
        S Offline
        SCHNittER
        schrieb am zuletzt editiert von
        #3

        @homoran in common.name bekomme ich windows.state zurück, also den Namen von Aktor/channels/1/windowState

        HomoranH 1 Antwort Letzte Antwort
        0
        • S SCHNittER

          @homoran in common.name bekomme ich windows.state zurück, also den Namen von Aktor/channels/1/windowState

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #4

          @schnitter sagte in HomematicIP Gerätenamen auslesen:

          @homoran in common.name bekomme ich windows.state zurück, also den Namen von Aktor/channels/1/windowState

          das ist ja für den DP auch korrekt.
          Du musst dann das device auslesen

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          1
          • S SCHNittER

            Hallo,

            ich bin leider in JS völlig unbedarft und versuche mir anhand bestehender Scripte das nötigste beizubringen.

            Allerdings verzeifle ich gerade. Ich habe ein fenster_türen_zählen script

            function countOpenWindowsDoors()
            {
                var openWindows = 0;
                var openDoors = 0;
                   
                // Fenster
                var windows = getObject("enum.functions.windowStatus").common.members;
                for(let i = 0; i < windows.length; i++) {
                    var Status = getState(windows[i]).val;
                    if ( Status == "OPEN") { 
                        openWindows = openWindows + 1;
                    }
                }
                 
                // Türen
                var doors = getObject("enum.functions.doorStatus").common.members;
                for(let i = 0; i < doors.length; i++) {
                    var Status = getState(doors[i]).val;
                    if ( Status == "OPEN" ) { 
                        openDoors = openDoors + 1;
                    }
                } 
                 
                var openWindowsText = "Kein Fenster geöffnet";
                var openDoorText = "Keine Tür geöffnet";
                 
                if ( openWindows > 0 ) {
                    openWindowsText = openWindows + " Fenster geöffnet"; 
                }
                 
                
                if ( openDoors > 0 ) {
                    openDoorText = openDoors + " Türe(n) geöffnet"; 
                }    
             
                setState('0_userdata.0.StatusWindowOpenText', openWindowsText );
                setState('0_userdata.0.StatusDoorOpenText', openDoorText );        
                setState('0_userdata.0.StatusWindowOpen', openWindows );
                setState('0_userdata.0.StatusDoorOpen', openDoors );    
            }
             
            $('state(functions=window)').on(function(obj) {
                countOpenWindowsDoors();
            });
             
            $('state(functions=door)').on(function(obj) {
                countOpenWindowsDoors();
            });
             
            countOpenWindowsDoors();
            

            Da funktioniert auch alles, allerdings würde ich mir gern den Namen des Aktors mit ausgeben lassen (welches Fenster genau geöffnet ist).
            Ich verstehe aber nicht, wie ich mit JS darauf zugreifen kann:

            iobroker.JPG

            Eigentlich sollte der Name doch "irgendwo" in getObject vorhanden sein.

            Danke schon einmal für die Hilfe

            Jens

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @schnitter sagte: wie ich mit JS darauf zugreifen kann:

            function deviceName(id) { // Datenpunkt-ID
                id = id.substring(0, id.lastIndexOf('.'));
                id = id.substring(0, id.lastIndexOf('.'));
                id = id.substring(0, id.lastIndexOf('.'));
                if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.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

            S 1 Antwort Letzte Antwort
            1
            • paul53P paul53

              @schnitter sagte: wie ich mit JS darauf zugreifen kann:

              function deviceName(id) { // Datenpunkt-ID
                  id = id.substring(0, id.lastIndexOf('.'));
                  id = id.substring(0, id.lastIndexOf('.'));
                  id = id.substring(0, id.lastIndexOf('.'));
                  if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
              }
              
              S Offline
              S Offline
              SCHNittER
              schrieb am zuletzt editiert von
              #6

              @paul53 ja!!! jetzt hab ichs! super, vielen lieben Dank!

              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

              730

              Online

              32.6k

              Benutzer

              82.1k

              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