Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. $ findet Aliase mit mit fehlender Source nicht

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    6
    1
    84

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

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

$ findet Aliase mit mit fehlender Source nicht

Scheduled Pinned Locked Moved Skripten / Logik
11 Posts 5 Posters 880 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SwisslizardS Swisslizard

    Hallo

    Ich versuche ein kleines Script zu erstellen, welches Aliase bei denen der Source-Datenpunkt fehlt bereinigt.
    Dazu muss ich als erstes die IDs aller möglicherweise betroffenen Aliase finden, damit ich anschliessen prüfen kann ob die alias id auf einen existierenden Datenpunkt zeigt. Der folgende Code gibt die IDs der Aliase zurück.

    const ids=$("[id=alias.0.*]").toArray();
    log(ids);
    

    Leider gibt es dabei ein Problem. Bei Alias Punkten deren Quell-Datenpunkt gelöscht wurde, wird die ID mit dem obigen Statement nicht zurückgegeben, obwohl der Alias in der Objekt-Übersicht weiterhin angezeigt wird. Wenn der Alias Datenpunkt von Hand modifiziert wird, z.B. Änderung von common.name, dann gibt die obige Abfrage, die ID des Datenpunkts wieder zurück. Was ist der Hintergrund dieses Verhaltens bzw. ist das so gewollt?

    Gibt es einen Weg mit $ die IDs aller Aliase, inkl. jener die eine fehlende Quelle haben und danach nicht von Hand modifiziert wurden, zurückzugeben?
    Oder gibt es einen anderen Weg alle Aliase per Code zu finden?

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by
    #2

    @swisslizard sagte in $ findet Aliase mit mit fehlender Source nicht:

    Bei Alias Punkten deren Quell-Datenpunkt gelöscht wurde, wird die ID mit dem obigen Statement nicht zurückgegeben

    Da bekommst Du doch im Log entsprechende Warnungen.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    SwisslizardS 1 Reply Last reply
    0
    • mickymM mickym

      @swisslizard sagte in $ findet Aliase mit mit fehlender Source nicht:

      Bei Alias Punkten deren Quell-Datenpunkt gelöscht wurde, wird die ID mit dem obigen Statement nicht zurückgegeben

      Da bekommst Du doch im Log entsprechende Warnungen.

      SwisslizardS Offline
      SwisslizardS Offline
      Swisslizard
      wrote on last edited by Swisslizard
      #3

      @mickym
      Habs grad nochmal ausprobiert.

      • Neuen Datenpunkt angelegt unter userdata und neuen Alias dazu angelegt.
      • ID des Alias wird wie erwartet aufgelistet.
      • Datenpunkt unter userdata gelöscht (per Abfalleimersymbol). Alias nicht modifiziert.
      • ID des Alias wird vom Code nicht aufgelistet. Im Log gibt es keine Warnng.
      • Objektdaten des Alias modifiziert (common.name um ein x ergänzt).Alias zeigt aber immer noch ins leere,
      • ID des Alias wird vom Code aufgelistet.

      Etwas merkwürdig :question:

      mickymM 1 Reply Last reply
      1
      • SwisslizardS Swisslizard

        @mickym
        Habs grad nochmal ausprobiert.

        • Neuen Datenpunkt angelegt unter userdata und neuen Alias dazu angelegt.
        • ID des Alias wird wie erwartet aufgelistet.
        • Datenpunkt unter userdata gelöscht (per Abfalleimersymbol). Alias nicht modifiziert.
        • ID des Alias wird vom Code nicht aufgelistet. Im Log gibt es keine Warnng.
        • Objektdaten des Alias modifiziert (common.name um ein x ergänzt).Alias zeigt aber immer noch ins leere,
        • ID des Alias wird vom Code aufgelistet.

        Etwas merkwürdig :question:

        mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by
        #4

        @swisslizard Ja ich habs auch gerade ausprobiert. Scheint nur Warnungen zu geben, wenn der alias geändert oder erstellt wurde.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        MartinPM 1 Reply Last reply
        1
        • mickymM mickym

          @swisslizard Ja ich habs auch gerade ausprobiert. Scheint nur Warnungen zu geben, wenn der alias geändert oder erstellt wurde.

          MartinPM Offline
          MartinPM Offline
          MartinP
          wrote on last edited by
          #5

          Kann man da vielleicht einen indirekten Weg gehen ...

          1. Liste mit "_id" als Schlüssel
          2. Liste mit "id" als Schlüssel

          Alle die in 1. vorkommen aber nicht in 2. sind verwaist ...

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
          Linux pve 6.17.9-1-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          1 Reply Last reply
          0
          • SwisslizardS Swisslizard

            Hallo

            Ich versuche ein kleines Script zu erstellen, welches Aliase bei denen der Source-Datenpunkt fehlt bereinigt.
            Dazu muss ich als erstes die IDs aller möglicherweise betroffenen Aliase finden, damit ich anschliessen prüfen kann ob die alias id auf einen existierenden Datenpunkt zeigt. Der folgende Code gibt die IDs der Aliase zurück.

            const ids=$("[id=alias.0.*]").toArray();
            log(ids);
            

            Leider gibt es dabei ein Problem. Bei Alias Punkten deren Quell-Datenpunkt gelöscht wurde, wird die ID mit dem obigen Statement nicht zurückgegeben, obwohl der Alias in der Objekt-Übersicht weiterhin angezeigt wird. Wenn der Alias Datenpunkt von Hand modifiziert wird, z.B. Änderung von common.name, dann gibt die obige Abfrage, die ID des Datenpunkts wieder zurück. Was ist der Hintergrund dieses Verhaltens bzw. ist das so gewollt?

            Gibt es einen Weg mit $ die IDs aller Aliase, inkl. jener die eine fehlende Quelle haben und danach nicht von Hand modifiziert wurden, zurückzugeben?
            Oder gibt es einen anderen Weg alle Aliase per Code zu finden?

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by paul53
            #6

            @swisslizard sagte: Bei Alias Punkten deren Quell-Datenpunkt gelöscht wurde, wird die ID mit dem obigen Statement nicht zurückgegeben

            Das kann ich bei mir (JS Version 8.7.6) nicht nachvollziehen. Es werden auch Alias-DP aufgelistet, deren Quell-Datenpunkt schon vor einiger Zeit gelöscht wurde.

            Selektor_Alias.JPG

            Den Quell-DP "0_userdata.0.Batterie.Gesamt.Restkapazitaet" zu "alias.0.Batterie.Restladung" gibt es nicht mehr.

            EDIT: Weiter getestet und einen existierenden DP zugewiesen: Alias aufgelistet. Dann existierenden Quell-DP gelöscht: Alias nicht aufgelistet. Merkwürdig!

            Noch weiter getestet und Javascript-Instanz neu gestartet: Alias mit nicht existierendem Quell-DP wird wieder aufgelistet.

            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

            haus-automatisierungH 1 Reply Last reply
            0
            • paul53P paul53

              @swisslizard sagte: Bei Alias Punkten deren Quell-Datenpunkt gelöscht wurde, wird die ID mit dem obigen Statement nicht zurückgegeben

              Das kann ich bei mir (JS Version 8.7.6) nicht nachvollziehen. Es werden auch Alias-DP aufgelistet, deren Quell-Datenpunkt schon vor einiger Zeit gelöscht wurde.

              Selektor_Alias.JPG

              Den Quell-DP "0_userdata.0.Batterie.Gesamt.Restkapazitaet" zu "alias.0.Batterie.Restladung" gibt es nicht mehr.

              EDIT: Weiter getestet und einen existierenden DP zugewiesen: Alias aufgelistet. Dann existierenden Quell-DP gelöscht: Alias nicht aufgelistet. Merkwürdig!

              Noch weiter getestet und Javascript-Instanz neu gestartet: Alias mit nicht existierendem Quell-DP wird wieder aufgelistet.

              haus-automatisierungH Online
              haus-automatisierungH Online
              haus-automatisierung
              Developer Most Active
              wrote on last edited by
              #7

              @paul53 sagte in $ findet Aliase mit mit fehlender Source nicht:

              EDIT: Weiter getestet und einen existierenden DP zugewiesen: Alias aufgelistet. Dann existierenden Quell-DP gelöscht: Alias nicht aufgelistet. Merkwürdig!
              Noch weiter getestet und Javascript-Instanz neu gestartet: Alias mit nicht existierendem Quell-DP wird wieder aufgelistet.

              Puh, kannst Du das irgendwie in eine reproduzierbaren Beschreibung gießen (am liebsten als Issue)?

              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
              📚 Meine inoffizielle ioBroker Dokumentation

              paul53P SwisslizardS 2 Replies Last reply
              0
              • haus-automatisierungH haus-automatisierung

                @paul53 sagte in $ findet Aliase mit mit fehlender Source nicht:

                EDIT: Weiter getestet und einen existierenden DP zugewiesen: Alias aufgelistet. Dann existierenden Quell-DP gelöscht: Alias nicht aufgelistet. Merkwürdig!
                Noch weiter getestet und Javascript-Instanz neu gestartet: Alias mit nicht existierendem Quell-DP wird wieder aufgelistet.

                Puh, kannst Du das irgendwie in eine reproduzierbaren Beschreibung gießen (am liebsten als Issue)?

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #8

                @haus-automatisierung sagte: reproduzierbaren Beschreibung

                Zusammenfassung: Nach Löschen des Quell-DP eines Alias muss die Javascript-Instanz neu gestartet werden, damit ein $-Selektor auf "alias.0" den Alias mit dem gelöschten Quell-DP weiter auflistet.

                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 Reply Last reply
                2
                • haus-automatisierungH haus-automatisierung

                  @paul53 sagte in $ findet Aliase mit mit fehlender Source nicht:

                  EDIT: Weiter getestet und einen existierenden DP zugewiesen: Alias aufgelistet. Dann existierenden Quell-DP gelöscht: Alias nicht aufgelistet. Merkwürdig!
                  Noch weiter getestet und Javascript-Instanz neu gestartet: Alias mit nicht existierendem Quell-DP wird wieder aufgelistet.

                  Puh, kannst Du das irgendwie in eine reproduzierbaren Beschreibung gießen (am liebsten als Issue)?

                  SwisslizardS Offline
                  SwisslizardS Offline
                  Swisslizard
                  wrote on last edited by
                  #9

                  @haus-automatisierung

                  Ich kann das Problem mit folgender Anleitung reproduzieren. Kann auch gerne ein Issue erfassen. Bei https://github.com/ioBroker/ioBroker/issues ?

                  • Neuen Datenpunkt in 0_userdata.0.testdatenpunkt anlegen. Von Hand oder per Script.
                    0e6c93e4-8b61-44e1-94d5-2cb3aa7225a6-grafik.png

                  • Neuen Alias anlegen. Entweder per Alias-Manager, von Hand oder per Script.

                  {
                    "type": "state",
                    "common": {
                      "name": "testdatenpunkt",
                      "role": "state",
                      "type": "string",
                      "read": true,
                      "write": true,
                      "alias": {
                        "id": "0_userdata.0.testdatenpunkt"
                      }
                    },
                    "_id": "alias.0.testdatenpunktalias.testdatenpunkt",
                    "native": {},
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1725463536428,
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    }
                  }
                  
                  • Alias suchen mit:
                  const ids=$("[id=alias.0.testdatenpunktalias.testdatenpunkt]").toArray();
                  log(ids);
                  

                  Alias wird gefunden:

                  script.js.common.test.aliasMissingSourceTest: [ 'alias.0.testdatenpunktalias.testdatenpunkt' ]
                  
                  • Datenpunkt löschen
                    0b46b6c0-bb17-46dc-a9c3-7a7363abe9fe-grafik.png

                  • Alias suchen mit:

                  const ids=$("[id=alias.0.testdatenpunktalias.testdatenpunkt]").toArray();
                  log(ids);
                  

                  Alias wird nicht gefunden:

                  script.js.common.test.aliasMissingSourceTest: []
                  
                  • Javascript Instance neu starten oder Object Data von Alias ändern (z.B. common.name) und speichern.

                  • Alias suchen mit:

                  const ids=$("[id=alias.0.testdatenpunktalias.testdatenpunkt]").toArray();
                  log(ids);
                  

                  Alias wird gefunden:

                  script.js.common.test.aliasMissingSourceTest: [ 'alias.0.testdatenpunktalias.testdatenpunkt' ]
                  
                  paul53P 1 Reply Last reply
                  0
                  • SwisslizardS Swisslizard

                    @haus-automatisierung

                    Ich kann das Problem mit folgender Anleitung reproduzieren. Kann auch gerne ein Issue erfassen. Bei https://github.com/ioBroker/ioBroker/issues ?

                    • Neuen Datenpunkt in 0_userdata.0.testdatenpunkt anlegen. Von Hand oder per Script.
                      0e6c93e4-8b61-44e1-94d5-2cb3aa7225a6-grafik.png

                    • Neuen Alias anlegen. Entweder per Alias-Manager, von Hand oder per Script.

                    {
                      "type": "state",
                      "common": {
                        "name": "testdatenpunkt",
                        "role": "state",
                        "type": "string",
                        "read": true,
                        "write": true,
                        "alias": {
                          "id": "0_userdata.0.testdatenpunkt"
                        }
                      },
                      "_id": "alias.0.testdatenpunktalias.testdatenpunkt",
                      "native": {},
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1725463536428,
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    
                    • Alias suchen mit:
                    const ids=$("[id=alias.0.testdatenpunktalias.testdatenpunkt]").toArray();
                    log(ids);
                    

                    Alias wird gefunden:

                    script.js.common.test.aliasMissingSourceTest: [ 'alias.0.testdatenpunktalias.testdatenpunkt' ]
                    
                    • Datenpunkt löschen
                      0b46b6c0-bb17-46dc-a9c3-7a7363abe9fe-grafik.png

                    • Alias suchen mit:

                    const ids=$("[id=alias.0.testdatenpunktalias.testdatenpunkt]").toArray();
                    log(ids);
                    

                    Alias wird nicht gefunden:

                    script.js.common.test.aliasMissingSourceTest: []
                    
                    • Javascript Instance neu starten oder Object Data von Alias ändern (z.B. common.name) und speichern.

                    • Alias suchen mit:

                    const ids=$("[id=alias.0.testdatenpunktalias.testdatenpunkt]").toArray();
                    log(ids);
                    

                    Alias wird gefunden:

                    script.js.common.test.aliasMissingSourceTest: [ 'alias.0.testdatenpunktalias.testdatenpunkt' ]
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #10

                    @swisslizard sagte: Kann auch gerne ein Issue erfassen

                    Unter https://github.com/ioBroker/ioBroker.javascript/issues.

                    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

                    SwisslizardS 1 Reply Last reply
                    1
                    • paul53P paul53

                      @swisslizard sagte: Kann auch gerne ein Issue erfassen

                      Unter https://github.com/ioBroker/ioBroker.javascript/issues.

                      SwisslizardS Offline
                      SwisslizardS Offline
                      Swisslizard
                      wrote on last edited by
                      #11

                      @paul53
                      Issue erfasst.

                      1 Reply Last reply
                      1
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      551

                      Online

                      32.7k

                      Users

                      82.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe