Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. Devices Adapter Alias Namen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Devices Adapter Alias Namen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Armilar
      Armilar Most Active Forum Testing @warhammer73 last edited by Armilar

      @warhammer73 sagte in Devices Adapter Alias Namen:

      a) Der Name wenigstens sprechend

      Aus einem unleserlichen Datenpunkt (in dem Punkt hast du natürlich recht), wie z.B.

      deconz.0.Lights.5.on
      

      würde dann z.B. ein

      alias.0.schreibtischlampe_buero.ACTUAL 
      

      werden

      Jetzt ist er sprechend und kann flexibel ersetzt werden. D.h. deinem Code kann es egal sein, welcher Adapter hinter dem Device steckt.

      Aber es würde ja unschön aussehen, wenn der ALIAS als

      alias.0.schreibtischlampe_buero.on 
      

      angelegt werden würde und irgendwann ein

      AdapterXYZ.0.Lights.XY.switch
      

      den Job übernimmt.

      Ganz unsauber wäre es dann, wenn das Device mehrere Eigenschaften besitzt und zunächst nur als

      alias.0.schreibtischlampe_buero
      

      angelegt wird.

      Ich denke bei der Anzahl an individuellen Adaptern die es gibt (und da ist augenscheinlich nichts standardisiert) und die Adapter die noch kommen werden, würde ich beim TypeScript des NSPanel durchdrehen, wenn ich jeden Datenpunkt von seiner Endung und Abhängigkeit eines Adapters berücksichtigen müsste oder eigene individuelle Nomenklaturen zulassen würde. Ganz zu schweigen von dem Code, da sich ansonsten jeder sein eigenes individuelles Schema baut (das wäre unpflegbar und unsupportbar).

      Es werden direkt Aliase (Device oder Channel) mit Rollen abgefragt und verarbeitet.

      Der Geräte-Manager bekommt das in der Erstellung super hin. Und was ist so schlimm an der Endung?

      Das schlimmste ist dann, wenn jemand mit selbstgebastelten Aliasen erstmals versucht, den Content für die Devices zu erzeugen. Das geht dann zu 100% schief.

      Ich sag es mal so. Es gibt da quasi so eine Art "Standard" und der Geräte-Manager hält sich zumindest dran.

      W 1 Reply Last reply Reply Quote 1
      • W
        warhammer73 @Armilar last edited by

        @armilar

        Bleiben wir bei Deinem Beispiel:
        alias.0.schreibtischlampe_buero.ACTUAL
        ... was soll das Aussagen? Zumindest ich weiss garantiert in einem Jahr nicht mehr, was Actual ist.
        Der Zustand an/aus?
        Der Dimmgrad in Prozent?
        Die Leistungsaufnahme?
        Der RGB Farbwert?
        ...

        hingegen:
        alias.0.schreibtischlampe_buero.on
        alias.0.schreibtischlampe_buero.brightness
        alias.0.schreibtischlampe_buero.powerconsumption
        alias.0.schreibtischlampe_buero.rgb
        erklären sich von selbst.

        Und wenn da jetzt ein Adapter dahinter sitzt mit:
        XY.0.Lights.Power
        XY.0.Lights.threshold
        XY.0.Lights.consumption
        XY.0.Lights.color
        Muss mich das nicht interessieren solange ich die Aliase nutze.
        Da kann ich den Adapter auch austauschen gegen einen mit:
        YY.0.Lights.switch
        YY.0.Lights.color
        YY.0.Lights.power
        YY.0.Lights.mood

        Jeder wie er mag. Ich persönlich würde am Rad drehen wenn jeder Alias ein Actual hat und das mal die Temperatur, mal die Ventilstellung, mal an/aus, mal Stromverbrauch... ist.

        Codierknecht crunchip 2 Replies Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @warhammer73 last edited by

          @warhammer73
          Durchaus verständlich, aber konträr zum Vorgehen des Gerätemanagers.
          Darum: Eigene Aliase erstellen. Die kann man benennen wie man will und später jederzeit das dahinter liegende Gerät tauschen.
          Ist natürlich je nach Umfang 'ne Menge Arbeit.

          W 1 Reply Last reply Reply Quote 0
          • crunchip
            crunchip Forum Testing Most Active @warhammer73 last edited by crunchip

            @warhammer73 sagte in Devices Adapter Alias Namen:

            was soll das Aussagen

            @warhammer73 sagte in Devices Adapter Alias Namen:

            Zustand an/aus

            in dem Fall ja, aber nicht zum schalten, sondern der state der den aktuellen Zustand zeigt
            der weitere "selbe" DP der angelegt wird, wäre dann SET, dieser DP ist der zum schalten.

            wie HIER schon geschrieben, nimm den alias manager, wenn dich dieses actual stört

            EDIT
            hier mal ein Beispiel, mit der Datenstruktur
            8e12bb99-856a-4057-93e7-b524468e18a8-image.png a59d3baa-235d-4d87-b4b8-da2bb4306040-image.png f0fa7288-f8ec-4ab2-b989-137e7e4348f6-image.png

            W 1 Reply Last reply Reply Quote 0
            • W
              warhammer73 @Codierknecht last edited by

              @codierknecht
              Naja, so konträr zum Gerätemanager ist es ja gar nicht.
              Da kann ich auch für jeden Datenpunkt einen eigenen Alias anlegen und benennen wie ich will.
              Ich muss halt nur damit leben das ich Actual mit irgendwas füllen muss.
              Mit dem Kompromiss kann ich aber nun leben - Und das Gerät tauschen lässt sich damit natürlich auch.

              1 Reply Last reply Reply Quote 0
              • W
                warhammer73 @crunchip last edited by

                @crunchip
                Naja, aber auch vom aktuellen Zustand kann es mehrere Werte geben (z.B. Thermometer mit Temperatur, Luftfeuchte, Batteriestand, Empfangsqualität oder Thermostat: Öffnung des Ventils, Temperatur am Thermostat).
                Insofern krieg ich halt keine konsistente Nutzung eines so generischen Wertes hin - Macht ja aber nichts.
                Wie gerade geschrieben gibt es halt den Alias auf Actual, aber ich nutze ihn nicht weiter.

                Ja, den alias manager hatte ich mir auch angesehen - Aber dann doch lieber ganz händisch. Ist irgendwie für mich persönlich nicht so hilfreich.

                crunchip 1 Reply Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active @warhammer73 last edited by

                  @warhammer73 seh dir mein edit oben an

                  1 Reply Last reply Reply Quote 0
                  • A
                    Andersmacher last edited by

                    Ich hoffe, ich darf mich hier zu dem Thema Alias-Namen mit einhaken, weil mich das Thema "Benennung" auch beschäftigt:

                    Unabhängig davon, ob man nun für die Alias-Erstellung manuell vorgeht oder den Device- oder Alias-Manager benutzt, stellt sich für mich die Frage, welche "Anteile" an der (Original)datenpunktbennung "ziehe" ich (schlauerweise) in den Namen des Alias mit hinein und welche lasse ich nur in der Objekt-Hierarchie stehen.
                    Am Beispiel eines Homematic-Rauchmelders:

                    Originalname: Rauchmelder_Flur:0.LOWBAT
                    Aliasstruktur: alias.0.HM_Geräte.Rauchmelder_Flur.LOWBAT

                    Was ist aus Eurer Sicht schlauer bzw. wo liegen Vor- oder Nachteile (Ich habe noch keine Erfahrungen mit Aliassen, denke aber, daß das irgendwann relevant sein kann)?

                    Aliasname: LOWBAT

                    oder besser (wenn ja, warum, denn daß das LOWBAT zum Rauchmelder_Flur gehört erkennt man ja aus dem Objektbaum)

                    Aliasname: Rauchmelder_Flur.LOWBAT
                    oder sollte man sogar noch die :0 mit im Namen behalten?

                    Für Hinweise bin ich dankbar.

                    Codierknecht W 2 Replies Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @Andersmacher last edited by

                      @andersmacher
                      Wenn man sich einfach mal vor Augen führt, wozu die Aliase gedacht sind, wird eigentlich schnell klar wie man die benennen sollte.
                      Ein Alias dient dazu, den Original-DP zu anonymisieren.
                      Soll heißen: Egal welcher DP letztlich dahinter steckt - angesprochen wird nur noch der Alias.
                      Ziel des Ganzen: In Scripten und der VIS spricht man nur noch den Alias an. Ändert sich mal der Original-DP, weil man z.B. den Hersteller wechselt, muss an den Scripten und der VIS nix geändert werden.
                      Man braucht (und sollte) also im Namen des Alias weder den Hersteller noch die Instanz mit aufzunehmen.

                      @andersmacher sagte in Devices Adapter Alias Namen:

                      oder sollte man sogar noch die :0 mit im Namen behalten?

                      Sollte damit auch beantwortet sein.

                      Ich würde die Namen auch durchweg klein schreiben. Aber das ist eher Geschmackssache.

                      1 Reply Last reply Reply Quote 0
                      • W
                        warhammer73 @Andersmacher last edited by

                        @andersmacher said in Devices Adapter Alias Namen:

                        Am Beispiel eines Homematic-Rauchmelders:
                        Originalname: Rauchmelder_Flur:0.LOWBAT
                        Aliasstruktur: alias.0.HM_Geräte.Rauchmelder_Flur.LOWBAT

                        Was ist aus Eurer Sicht schlauer bzw. wo liegen Vor- oder Nachteile (Ich habe noch keine Erfahrungen mit Aliassen, denke aber, daß das irgendwann relevant sein kann)?

                        Aliasname: LOWBAT

                        oder besser (wenn ja, warum, denn daß das LOWBAT zum Rauchmelder_Flur gehört erkennt man ja aus dem Objektbaum)

                        Aliasname: Rauchmelder_Flur.LOWBAT
                        oder sollte man sogar noch die :0 mit im Namen behalten?

                        Für Hinweise bin ich dankbar.

                        Im Endeffekt kann Dir niemand sagen was für Dich der richtige Weg ist.
                        Beachte aber:
                        Der Alias sollte eindeutig und sprechend sein (Ist LOWBAT sicher nicht, sowas wie Rauchmelder_Flur.LOWBAT schon eher
                        Mache Dir am Besten vorher Gedanken wie Dein Maximalausbau aussehen könnte. Wenn die Chance besteht mehr wie einen Rauchmelder im Flur zu haben (oder es mehrere Flure gibt) dann berücksichtige das gleich in der Namensgebung (Also z.B. Rauchmelder_Flur_Erdgeschoss.LOWBAT)
                        Überlege Dir ob und welche Gruppierungen Du später oder gleich am Ehesten vornehmen könntest. Also eher alle Geräte im Flur zusammengefasst, oder eher alle Rauchmelder? Entsprechend den Aliasbaum aufbauen (Also Flur.Rauchmelder.LOWBAT oder Rauchmelder.Flur.LOWBAT)

                        Warum nicht nur LOWBAT? Weil Du in Scripten oder Konfigurationen gleich sehen willst was denn LOWBAT aussagt, ohne das Du dann erst in die Konfiguration gehst und schaust wo LOWBAT hinverweist.

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          Andersmacher @warhammer73 last edited by

                          @warhammer73 und @Codierknecht Danke für Eure Rückmeldungen und Hinweise!

                          Den Sinn der Aliasse (für VIS und Skripte im Falle eines Hardwarewechsels nichts ändern zu müssen) hatte ich bereits so interpretiert, wie Ihr es auch erläutert habt. Hatte da allerdings wohl nicht weit genug gedacht, daß man da später vielleicht nicht nur einen defekten HM-Rauchmelder gegen einen neuen tauscht, sondern natürlich auch einen komplett anderen nehmen könnte. Insofern wäre dann ein hersteller- oder gerätespezifischer Namensbestandteil schlecht/verwirrend. Ok, verstanden. Und das mit den etwaigen Gruppenbildungen ist mir auch klar. Mein Beispiel war da etwas vereinfachend.

                          Meine Haupt"sorge" war, daß ich mir durch ungeschickte Namenshierarchie vielleicht Skriptmöglichenkeiten "verbaue" oder unnötig kompliziert mache (z. B. für die Funktion "IDs vom Selektor"). Da Ihr soetwas nicht angesprochen habt, nehme ich mal an, daß ich mir diesbezüglich aber eher keine Sorgen machen muß.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Andersmacher last edited by

                            @andersmacher sagte: für die Funktion "IDs vom Selektor"

                            Wenn man keine Enums dafür verwenden will - die ja auch erst zugeordnet werden müssen, ist eine einheitliche ID-Struktur erforderlich. Wie diese Einheitlichkeit aussieht, ist letztlich egal.

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              Andersmacher @paul53 last edited by

                              @paul53 Danke!

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              785
                              Online

                              31.9k
                              Users

                              80.3k
                              Topics

                              1.3m
                              Posts

                              7
                              29
                              827
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo