Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    2.6k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    4.7k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    4.0k

HomematicIP Gerätenamen auslesen [gelöst]

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 492 Aufrufe 2 Beobachtet
  • Ä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
      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 -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
      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
          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 -
          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
          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: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

            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

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              327

              Online

              33.0k

              Benutzer

              83.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2026
              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