Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Alias oder JS

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alias oder JS

    This topic has been deleted. Only users with topic management privileges can see it.
    • peterk34
      peterk34 last edited by

      Eine Frage an die Optimierungsprofis. Was ist den Ressourcen schonender: ein komplexes alias mit Konvertierung oder ein Javascript welches einen Datenpunkt überwacht, auswertet und dann einen anlegt.

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active last edited by

        Naja, bei beiden läuft JavaScript, der Alias ist letztendlich auch nichts anderes bzw. dahinter baut ja eine Logik das auseinander.
        Ich arbeite viel mit JavaScript weil da mein Skript z.B. einen JSON einliest und den auf 10 Datenpunkte schreibt.
        Bei einem Alias - soweit ich das verstanden habe - würde sich jeder Alias-Datenpunkt seinen Wert einzeln ziehen, mein JSON oben also 10fach entweder abgefragt oder es triggert 10fach etwas um die Punkte wegzuschreiben.

        Da die JavaScript-Instanzen jeweils eigene Prozesse sind könnte man hier sogar optimieren indem man die Skripte auf mehrere Instanzen verteilt. Würde sich aber wohl nur bei sehr prozessorintensiven Skripten lohnen.

        Meine 10 Datenpunkte per JavaScript zu zerlegen dauert laut Log (Debug Meldung davor und danach) jedenfalls um die 0.001 Sekunden ...
        Bei mir laufen ca. 400 Skripte auf 2 Instanzen - bei mir hat jede Steckdose mit Tasmota sein eigenes Skript mit 6 Triggern. Plus diverses was man sonst noch steuern will oder das Summieren der Solaranlage und anderer Zähler im 15 Sekunden Takt. Das mit dem jeweils eigenem Skript ist zwar - bei Updates von Skripts - durchaus mühsam, skaliert aber besser als wenn ein Adapter das alleine macht.

        Alias ist natürlich so ein "Einrichten und vergessen bis sich die Quelle ändert" Ding.
        In meinen Skripten prüfe und korrigiere ich oft halt noch mehr, dank der Suche (man kann ja nach allen über alle Skripte suchen) finde ich auch so schnell alle Stellen wo ich einmal etwas ändern müsste, z.B. wenn ein Sensor nicht mehr hinter zigbee.0 sondern zigbee.1 steht. Die Datenpunkte lege ich am Scriptanfang alle in Variablen und verwende nur diese weiter unten im Skript. So muss ich imme rnur im Kopf es abändern.

        peterk34 1 Reply Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @peterk34 last edited by

          @peterk34 sagte in Alias oder JS:

          Was ist den Ressourcen schonender

          Da man für das Alias-Feature und die Konvertierungen gar keine Adapter braucht (passiert ja im js-controller), ist die Frage relativ leicht zu beantworten 🙂

          Scripts sind aber deutlich flexibler und können auch Infos "überspringen", was im Alias nicht geht. Oder Daten aus mehreren Datenpunkten zusammenführen, was im Alias auch nicht geht. Es kommt also drauf an, was man vor hat.

          peterk34 1 Reply Last reply Reply Quote 0
          • peterk34
            peterk34 @haus-automatisierung last edited by

            @haus-automatisierung

            dann machts also durchaus Sinn auch etwas komplexere Dinge wie

            '<div class="tblZelle txtWKB ' + (val <= 0 ? 'bgInaktiv' : 'bgAktiv' ) + '"><span>' +(val <=0 ? 'Entladung<br>' : 'Ladung<br>' ) + ((val <1000 && val>-1000) ? Math.round(val) + 'W' : (Math.round(val/100)/10) + 'kW') + '</span></div>'
            

            über alias zu lösen und dann wenn verschiedene Berechnungen oder Anpassungen erforderlich sind ins JS

            Danke Matthias

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • peterk34
              peterk34 @BananaJoe last edited by

              @bananajoe

              Danke für die ausführliche Erklärung. Ich hab ja auch schon einen ganzen A... voll scripts. Jetzt bin ich grad dabei mein VIS zu sanieren und das ergibt wieder viele mehr. Kann man aber wohl auch gut mit Alias lösen - zumindest zum Teil

              1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @peterk34 last edited by haus-automatisierung

                @peterk34 Ja, wobei ich Fan von Template literals bin:

                `<div class="tblZelle txtWKB ${val <= 0 ? 'bgInaktiv' : 'bgAktiv'}"><span>${val <= 0 ? 'Entladung' : 'Ladung'}<br>${val < 1000 && val > -1000 ? Math.round(val) : (Math.round(val / 100) / 10) + 'k'}W</span></div>`
                
                BananaJoe 1 Reply Last reply Reply Quote 0
                • BananaJoe
                  BananaJoe Most Active @haus-automatisierung last edited by

                  @haus-automatisierung @peterk34 wobei das ja schon wieder interessant sein könnte ob es von Vorteil ist/sein könnte die Werte in der VIS berechnen zu lassen (das macht Ihr doch an der Stelle mit Binding, oder?). Ich habe ja alles gerne in Datenpunkten.

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active last edited by

                    @bananajoe Ja, könnte man schon machen. Ich finde es auch nicht so schön, HTML in Datenpunkten zu haben.

                    peterk34 1 Reply Last reply Reply Quote 0
                    • peterk34
                      peterk34 @haus-automatisierung last edited by

                      @haus-automatisierung @BananaJoe wenn ich diese Formel mit bindings mache rufe ich den Wert aus dem Datenpunkt mehrmals ab. Ich hab’s dann als alias probiert und diesen Datenpunkt mittels binding in ein html Widget geholt. Die Klassen sind im css definiert. Es ist deutlich schneller über den alias als wenn ich’s im vis 2 vollständig berechne. Insgesamt ist’s eine Tabelle mit acht solchen Feldern- da ist der Unterschied nicht nur meßbar sondern deutlich merkbar

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      412
                      Online

                      32.0k
                      Users

                      80.3k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      467
                      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