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

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

                      417

                      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