Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. HomematicIP Gerätenamen auslesen [gelöst]

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    HomematicIP Gerätenamen auslesen [gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SCHNittER last edited by 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

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @SCHNittER last edited by

        @schnitter sagte in HomematicIP Gerätenamen auslesen:

        "irgendwo" in getObject

        common.name

        S 1 Reply Last reply Reply Quote 0
        • S
          SCHNittER @Homoran last edited by

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

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @SCHNittER last edited by

            @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

            1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @SCHNittER last edited by 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 1 Reply Last reply Reply Quote 1
              • S
                SCHNittER @paul53 last edited by

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

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                951
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                3
                6
                264
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo