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.
    • W
      warhammer73 @Armilar last edited by

      @armilar
      Der Code muss aber auch nicht angepasst werden wenn es statt Actual und Second Temperatur und Luftfeuchtigkeit heisst.
      Dann ist
      a) Der Name wenigstens sprechend
      b) Auch dann kann ich physikalisch als Gerät mit dem Alias immer noch jedes Device hängen das Werte für Temperatur und Luftfeuchtigkeit bereitstellt und kann diese auch austauschen wie ich will und muss nichts weiter ausser die Verknüpfung bei Alias anpassen. Die muss ich bei einem Ersatzgerät aber auch für Actual und Second anpassen.

      Armilar 1 Reply Last reply Reply Quote 0
      • 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

                                805
                                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