Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Globale Funktionen für Alias Konvertierung?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Globale Funktionen für Alias Konvertierung?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @xelarep last edited by

      @xelarep
      Du meinst, Du hast unterhalb von alias.0 eine komplette Struktur für das Gerät und willst dort dann alles "zusammenhalten"?
      Das kannst Du ja halten wie ein Dachdecker - Deine freie Wahl.
      Auch wenn ein Alias auf einen eigenen DP etwas überflüssig ist.

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @Codierknecht last edited by

        @codierknecht sagte in Globale Funktionen für Alias Konvertierung?:

        @xelarep
        Auch wenn ein Alias auf einen eigenen DP etwas überflüssig ist.

        Verstehe nicht wieso. Wo ist den der Unterschied zwischen einen Skript das für sich zusammengehöre Datenpunkte nicht kreuz und quer durch die Landschaft verteilt und einem Adapter? Ja den Adapter kann man nicht ändern, aber so falsch ist das nicht das Datenpunkt die von X hergestellt werden auch dort liegen wo man sie vermutet. 🙂

        1 Reply Last reply Reply Quote 0
        • B
          Blockmove last edited by

          @codierknecht said in Globale Funktionen für Alias Konvertierung?:

          Auch wenn ein Alias auf einen eigenen DP etwas überflüssig ist.

          Wenn man so argumentiert, dann sind Alias allgemein etwas überflüssig 😀

          Eigentlich sollen sie ja nur Gerätetausch erleichtern und für Übersichtlichkeit sorgen. Da ist es doch egal ob die Daten von nem Adapter oder von einem Script kommen.

          Das ist doch - aus meiner Sicht - das Schöne an ioBroker dass es verschiedene Wege gibt 👍

          1 Reply Last reply Reply Quote 1
          • Codierknecht
            Codierknecht Developer Most Active last edited by

            @ticaki @Blockmove
            Aliase benutzt man vermutlich meistens, um den Tausch von Geräten zu erleichtern.
            Wenn dahinter aber ein DP aus 0_userdata steckt, muss auf jeden Fall auch ein Script angepasst werden.
            Daher finde ich in diesem Fall einen Alias etwas überflüssig.
            Vor allem dann, wenn man im Alias nochmal eine Konvertierung vornehmen will, die man genau so gut auch gleich im Script machen kann.

            Nutzt man Aliase, um DP "zusammenzuhalten", kann das ja jeder halten wie er/sie will.

            X 1 Reply Last reply Reply Quote 0
            • X
              xelarep @Codierknecht last edited by

              @codierknecht sagte in Globale Funktionen für Alias Konvertierung?:

              Nutzt man Aliase, um DP "zusammenzuhalten", kann das ja jeder halten wie er/sie will.

              @codierknecht genau deswegen ja meine Eingangsfrage 😉
              Ich würde halt gerne die 0_userdata vermeiden und direkt im Alias konvertieren. Dort kann ich aber halt nur Grundrechenarten oder JSON ein/auspacken 😞

              Ich hab die letzten Jahre genügend Hardware gewechselt und wollte deswegen im Zuge der Aufräumarbeiten mir das Leben halt so angenehm wie möglich machen. Dazu gehören für mich dann Aliase - was ja auch schon mal ein Erleichterung ist.

              Jetzt könnte ich sogar den flot wieder behalten 😬

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

                @xelarep sagte in Globale Funktionen für Alias Konvertierung?:

                Ich würde halt gerne die 0_userdata vermeiden und direkt im Alias konvertieren

                Wie Du mittlerweile erfahren hast, geht das so nicht.
                0_userdata vermeiden und direkt in einen Alias schreiben geht nicht.
                Da in 0_userdata aber mit einem Script geschrieben wird, kannst Du ja dort die Konvertierung vornehmen und den Wert bereits so wegschreiben wie Du ihn gerne hättest.
                Den Alias benutzt Du dann nur zum "zusammenhalten".

                Wenn sich an der Ecke die Hardware ändert, hilft Dir der Alias ja wenig. Das Script muss sowieso angepackt werden.

                X paul53 2 Replies Last reply Reply Quote 0
                • X
                  xelarep @Codierknecht last edited by

                  @codierknecht Deswegen habe ich das ja gestern genau so gemacht 🙂

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

                    @codierknecht sagte: hilft Dir der Alias ja wenig. Das Script muss sowieso angepackt werden.

                    In Skripten solle man nur Alias-DP und eigene DP verwenden: Im Alias kann man (unvollständige) Vorarbeit durch Konvertierung machen, im eigenen Datenpunkt steht dann das endgültige Ergebnis.

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

                      @xelarep sagte: Restlaufzeit meiner USV in Sekunden angibt. Den habe ich bisher mit einer kleinen JavaScript Funktionen in einen String Aal 'HH:MM:SS' gewandelt.

                      Beispiel für Javascript-Funktion mit Dauern im Alias und formatiert in eigenen Datenpunkten:

                      const ids = ['alias.0.abc', 'alias.0.xyz']; // enhalten Dauern in s
                      
                      on(ids, function(dp) {
                          const id = dp.id.replace('alias.0.', '0_userdata.0.');
                          setState(id, formatDate(1000 * dp.state.val, 'hh:mm:ss'), true);
                      });
                      

                      Es geht so einfach, wenn man unter "alias.0" und "0_userdata.0" die gleiche ID-Struktur verwendet.

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

                        @xelarep sagte: 0_userdata vermeiden und direkt im Alias konvertieren.

                        new Date(1000 * (val + 60 * new Date().getTimezoneOffset())).toLocaleTimeString('de-DE')
                        

                        ... bezieht sich auf Wandlung Sekunden nach "hh:mm:ss".

                        EDIT(18:15 Uhr): Korrigiert um Zeitzone.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        1.0k
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        5
                        19
                        576
                        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