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

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

$ findet Aliase mit mit fehlender Source nicht

Scheduled Pinned Locked Moved Skripten / Logik
11 Posts 5 Posters 876 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 Offline
    SwisslizardS Offline
    Swisslizard
    wrote on last edited by Swisslizard
    #1

    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 paul53P 2 Replies 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?

      mickymM Offline
      mickymM Offline
      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 Offline
          mickymM Offline
          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 Offline
                haus-automatisierungH Offline
                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

                        391

                        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