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. $ findet Aliase mit mit fehlender Source nicht

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.2k

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

$ findet Aliase mit mit fehlender Source nicht

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 5 Kommentatoren 729 Aufrufe 3 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.
  • SwisslizardS Offline
    SwisslizardS Offline
    Swisslizard
    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          1
          • mickymM mickym

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

            MartinPM Online
            MartinPM Online
            MartinP
            schrieb am zuletzt editiert von
            #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 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            1 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antworten Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      1
                      • paul53P paul53

                        @swisslizard sagte: Kann auch gerne ein Issue erfassen

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

                        SwisslizardS Offline
                        SwisslizardS Offline
                        Swisslizard
                        schrieb am zuletzt editiert von
                        #11

                        @paul53
                        Issue erfasst.

                        1 Antwort Letzte Antwort
                        1
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        816

                        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