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. $Selector für Objekte

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

$Selector für Objekte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 3 Kommentatoren 549 Aufrufe 1 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.
  • C Offline
    C Offline
    coalado
    schrieb am zuletzt editiert von
    #1

    Ich habe einige "verweiste" Alias Einträge.

      "_id": "alias.0.lights.stehlampe.online",
      "type": "state",
      "common": {
        "alias": {
          "id": "0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online"
        },...
    

    d.h. der state bzw das object dahinter gibt es nicht mehr (0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online)

    Um aufzuräumen, würde ich gerne durch die Liste gehen

    $("alias.*").each(id=>{
    if(!existsObject(getObject(id).common.alias.id)){
    //cleanup...
    }
    })
    

    Allerdings scheint zu alias.0.lights.stehlampe.online kein state mehr zu existieren,(Allerdings gibt es das objekt natürlich noch) und der selector gibt mir diese ids nicht zurück.
    Wie kann ich durch alle objekte "loopen"? $(...) scheint nur ids zu liefern zu denen es auch einen state gibt?

    T 1 Antwort Letzte Antwort
    0
    • C coalado

      Ich habe einige "verweiste" Alias Einträge.

        "_id": "alias.0.lights.stehlampe.online",
        "type": "state",
        "common": {
          "alias": {
            "id": "0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online"
          },...
      

      d.h. der state bzw das object dahinter gibt es nicht mehr (0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online)

      Um aufzuräumen, würde ich gerne durch die Liste gehen

      $("alias.*").each(id=>{
      if(!existsObject(getObject(id).common.alias.id)){
      //cleanup...
      }
      })
      

      Allerdings scheint zu alias.0.lights.stehlampe.online kein state mehr zu existieren,(Allerdings gibt es das objekt natürlich noch) und der selector gibt mir diese ids nicht zurück.
      Wie kann ich durch alle objekte "loopen"? $(...) scheint nur ids zu liefern zu denen es auch einen state gibt?

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von ticaki
      #2

      @coalado

      Du benutzt zu oft state so das ich nicht wirklich verstehe was du genau meinst.

      Ich finde bei mir aliase die einen ungültigen common.alias.id haben.

      Das hier hab ich angelegt und die alias.id gibts nicht:

      {
        "common": {
          "name": "test1",
          "desc": "Manuell erzeugt",
          "role": "state",
          "type": "boolean",
          "read": true,
          "write": true,
          "def": false,
          "alias": {
            "id": "0_userdata.0.internet_connecte"
          }
        },
      

      Bei einem Test mit :

      log(JSON.stringify($('alias.*')))
      

      Ist dieser State in der Aufzählung.

      edit:
      Und mit

      $("alias.*").each(id=>{
          if(!existsObject(getObject(id).common.alias.id)){
              log(id)
          }
      })
      

      erscheint er auch im log.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      paul53P 1 Antwort Letzte Antwort
      0
      • T ticaki

        @coalado

        Du benutzt zu oft state so das ich nicht wirklich verstehe was du genau meinst.

        Ich finde bei mir aliase die einen ungültigen common.alias.id haben.

        Das hier hab ich angelegt und die alias.id gibts nicht:

        {
          "common": {
            "name": "test1",
            "desc": "Manuell erzeugt",
            "role": "state",
            "type": "boolean",
            "read": true,
            "write": true,
            "def": false,
            "alias": {
              "id": "0_userdata.0.internet_connecte"
            }
          },
        

        Bei einem Test mit :

        log(JSON.stringify($('alias.*')))
        

        Ist dieser State in der Aufzählung.

        edit:
        Und mit

        $("alias.*").each(id=>{
            if(!existsObject(getObject(id).common.alias.id)){
                log(id)
            }
        })
        

        erscheint er auch im log.

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

        @ticaki sagte: nicht wirklich verstehe was du genau meinst.

        Ich übersetze mal:

        Allerdings scheint zu alias.0.lights.stehlampe.online kein Zustand mehr zu existieren,(Allerdings gibt es das statische Objekt natürlich noch) und der selector gibt mir diese ids nicht zurück.

        @coalado sagte in $Selector für Objekte:

          "id": "0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online"                                                                                                                                                                            
        

        Weshalb hat ein eigenen Datenpunkt einen Alias und weshalb enthält die ID eines eigenen Datenpunktes eine Geräte-ID?

        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

        T 1 Antwort Letzte Antwort
        1
        • paul53P paul53

          @ticaki sagte: nicht wirklich verstehe was du genau meinst.

          Ich übersetze mal:

          Allerdings scheint zu alias.0.lights.stehlampe.online kein Zustand mehr zu existieren,(Allerdings gibt es das statische Objekt natürlich noch) und der selector gibt mir diese ids nicht zurück.

          @coalado sagte in $Selector für Objekte:

            "id": "0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online"                                                                                                                                                                            
          

          Weshalb hat ein eigenen Datenpunkt einen Alias und weshalb enthält die ID eines eigenen Datenpunktes eine Geräte-ID?

          T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von ticaki
          #4

          @paul53

          Meinst du weil das common leer ist?

          {
            "common": {
              "alias": {
                "id": "userdata.0.gibsnicht"
              }
            },
            "type": "state",
            "native": {},
          

          wird auch gefunden

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          paul53P 1 Antwort Letzte Antwort
          0
          • T ticaki

            @paul53

            Meinst du weil das common leer ist?

            {
              "common": {
                "alias": {
                  "id": "userdata.0.gibsnicht"
                }
              },
              "type": "state",
              "native": {},
            

            wird auch gefunden

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

            @ticaki sagte: wird auch gefunden

            Ein Objekt, das keinen Zustand ({val, ack, ts, lc, ...}) hat, wird vom $Selector offenbar nicht gefunden.

            EDIT: Gerade getestet: Bei mir findet der Selektor auch Datenpunkte ohne Zustand - erkennbar im Tab "Objekte" am Wert (null).

            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

            T 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @ticaki sagte: wird auch gefunden

              Ein Objekt, das keinen Zustand ({val, ack, ts, lc, ...}) hat, wird vom $Selector offenbar nicht gefunden.

              EDIT: Gerade getestet: Bei mir findet der Selektor auch Datenpunkte ohne Zustand - erkennbar im Tab "Objekte" am Wert (null).

              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von ticaki
              #6

              @paul53
              Könnte sein das wir mit latest das problem nicht haben.

              @coalado
              welche Javascriptversion nutzt du - falls du auf latest bist, bitte beschreibe es genauer.

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              C 1 Antwort Letzte Antwort
              0
              • T ticaki

                @paul53
                Könnte sein das wir mit latest das problem nicht haben.

                @coalado
                welche Javascriptversion nutzt du - falls du auf latest bist, bitte beschreibe es genauer.

                C Offline
                C Offline
                coalado
                schrieb am zuletzt editiert von
                #7

                Ich bin auf 7.1.6
                Warum hat ein eigener Datenpunkt einen Alias und warum hat die ID eine GeräteID hat, tut jetzt hier eigentlich nichts zur Sache. Ich kann das gerne erklären, aber ich denke das würde jetzt nur vom eigentlichen Problem ablenken.

                Begrifflichkeiten:

                • object: Das Json-Objekt, das z.B. mit getObject abgerufen oder mit existsObject überprüft werden kann.

                • state: Der Zustand, den man mit getState abrufen oder mit existsState prüfen kann.

                So kann ich das Problem nachstellen:

                • Ich erstelle einen Alias (alias.0.example) zu einer ID (0_userdata.0.example) für die es sowohl object als auch state gibt
                • Ich lösche das object (deleteObject("0_userdata.0.example"))
                • das object alias.0.example gibt es noch. existsObject("alias.0.example") gibt true zurück
                • den state alias.0.example gibt es nicht mehr. existsState("alias.0.example") gibt false zurück
                • log($("alias.0.example")) gibt mir jetzt {'length':0} aus.
                • log($("alias.0.*")) enthält alias.0.example auch nicht mehr
                paul53P 1 Antwort Letzte Antwort
                0
                • C coalado

                  Ich bin auf 7.1.6
                  Warum hat ein eigener Datenpunkt einen Alias und warum hat die ID eine GeräteID hat, tut jetzt hier eigentlich nichts zur Sache. Ich kann das gerne erklären, aber ich denke das würde jetzt nur vom eigentlichen Problem ablenken.

                  Begrifflichkeiten:

                  • object: Das Json-Objekt, das z.B. mit getObject abgerufen oder mit existsObject überprüft werden kann.

                  • state: Der Zustand, den man mit getState abrufen oder mit existsState prüfen kann.

                  So kann ich das Problem nachstellen:

                  • Ich erstelle einen Alias (alias.0.example) zu einer ID (0_userdata.0.example) für die es sowohl object als auch state gibt
                  • Ich lösche das object (deleteObject("0_userdata.0.example"))
                  • das object alias.0.example gibt es noch. existsObject("alias.0.example") gibt true zurück
                  • den state alias.0.example gibt es nicht mehr. existsState("alias.0.example") gibt false zurück
                  • log($("alias.0.example")) gibt mir jetzt {'length':0} aus.
                  • log($("alias.0.*")) enthält alias.0.example auch nicht mehr
                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @coalado sagte: log($("alias.0.*")) enthält alias.0.example auch nicht mehr

                  Das kann ich bei mir (JS 7.4.0) nicht nachvollziehen:

                  Selektor_ohne_Zustand.JPG

                  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

                  758

                  Online

                  32.4k

                  Benutzer

                  81.5k

                  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