Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Migration Scriptgui ccu.io -> iobroker.javascript

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Migration Scriptgui ccu.io -> iobroker.javascript

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

      Hallo Bluefox,

      ich traue mich jetzt mal auf Dein Angebot zur Unterstützung bei Scriptproblemen einzugehen. 😉

      Ich habe folgende Programme erstellt, die in Abhängigkeit vom Überschreiten eines bestimmten Verbrauchswertes eine Variable auf true oder false setzen. Darüber wird dann die Farbe eines Metro Widgets gesetzt.
      253_waschmaschine.jpg
      Folgende Fragen habe ich dazu:

      1. (Wie) kann man am intelligentesten manuell über iobroker.admin eine Variable anlegen?

      2. Wie geht so etwas aus einem Script heraus? Und wie lange ist eine solche Variable dann gültig. Nur für die Laufzeit des Scriptes oder persistent immer?

      3. (Wie) kann man ein bestehendes ccui.io prg oder script am besten importieren?

      Herzliche Grüße

      Bernhard

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

        Hallo Bernhard,

        schau mal mein Script an. Erzeugt eine Variable "DVerbrauch" rechnet was und schreibt den Wert in die Variable.

        Die Variable ist immer verfügbar bis du sie löscht. Du findest sie bei den Objekten wieder und kannst sie darüber dann visualisieren.

        Gruß Bernd
        304_sc2.png
        304_sc1.png
        1145_node-red-adapter-ip.jpg

        1 Reply Last reply Reply Quote 0
        • Bluefox
          Bluefox last edited by

          @Heinzelmaennchen:

          1. (Wie) kann man am intelligentesten manuell über iobroker.admin eine Variable anlegen? `
            Geht momentan nicht. Und ob es sein soll, da bin ich noch nicht schlüssig.
            @Heinzelmaennchen:
          1. Wie geht so etwas aus einem Script heraus? Und wie lange ist eine solche Variable dann gültig. Nur für die Laufzeit des Scriptes oder persistent immer? `
            Da hat schon bku wunderbar geantwortet:
          createState('MyNewState');// Immer und überall (unter javascript.0.MyNewState) da.
          
          

          @Heinzelmaennchen:

          1. (Wie) kann man ein bestehendes ccui.io prg oder script am besten importieren? `
            Momentan kenne ich nur den Manuelweg. Die Befehle sind meinstens auch in ioBroker da. Und wenn was nicht geht => anpassen.
          1 Reply Last reply Reply Quote 0
          • H
            Heinzelmaennchen last edited by

            Hallo Bernd,

            na das ging mal schnell 🙂

            Danke dafür

            Und sieht darüber hinaus auch noch sehr danach aus, als könnte ich das script mit ein paar kleinen Änderungen auch fast so übernehmen.

            Wenn ich das richtig interpretiere bildest Du den Durchschnittswert aus den letzten 3 Werten, richtig? Wie lange ist den die Zeitdifferenz dazwischen? Es geht mir dabei darum, ein Gefühl zu entwickeln, wie ich das bei mir angehe, da ich je nach Messpunkt zwischen zwei Messungen ca 500ms habe. Und von den Messpunkten habe ich fast 35 Stück übers Haus verteilt!

            Gruß

            Bernhard

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

              Bernhard,

              ja du hast das richtig erkannt - aber ich mittele mir nur 3 Stromverbrauchsmessungen um Spitzen auszugleichen. Ist auch noch mehr test. Meine Messwerte kommen so alle 3 Minuten. Läuft z.Z. ohne Prob.

              Ob dein Volumen so funktioniert kann ich nicht sagen - vom Gefühl bin ich eher skeptisch. Ausprobieren!

              Gruß Bernd

              1 Reply Last reply Reply Quote 0
              • S
                smiling_Jack last edited by

                @Heinzelmaennchen:

                Hallo Bluefox,

                1. (Wie) kann man ein bestehendes ccui.io prg oder script am besten importieren?

                Herzliche Grüße

                Bernhard `

                Am besten mit ScriptGUI für ioBroker. Aber das dauert leider noch etwas :oops:

                1 Reply Last reply Reply Quote 0
                • P
                  pix last edited by

                  Hallo,

                  hab jetzt doch schon mal angefangen, in iobroker zu scripten, damit ich beim Usertreffen nicht ganz unbeleckt dastehe. Die Portierung aller Skripte aus CCU.IO ist ein Riesenbatzen für mich (z.Zt. 78 Skripte, teils mehrere Seiten lang). Ich fange erstmal an mit den neuen Scripts, die keine Homematic-Datenpunkte verwenden (Adapter noch nicht aktiviert).

                  Frage 1: Das Anlegen einer Variable ist oben erklärt (createState). Gibt es die Möglichkeit, die Variablen näher zu definieren (so wie in CCU.IO mit setObject)? Ich möchte festlegen, welcher Typ sie ist (Boolean, Zeichenkette, etc.), welche Einheit sie verwendet (zB Volt oder °C) und schließlich einen String mit Leerzeichen zur Benennung in Yahui (dafür auch das obligatorische r in Klammern).

                  Frage 2: Wo werden die Scripts abgespeichert? Kann ich sie nur im Adapter editieren oder kann ich sie mit auch im Dateisystem finden und mit einem externen Editor arbeiten?

                  Die zwei Fragen möchte ich klären, damit ich mir nicht Doppelt Arbeit mache.

                  Gruß

                  Pix

                  EDIT: Wichtig sind für mich vor allem Variablen vom Type Werteliste. Wie erstelle ich die?

                  1 Reply Last reply Reply Quote 0
                  • ruhr70
                    ruhr70 last edited by

                    @bku:

                    Hallo Bernhard,

                    schau mal mein Script an. Erzeugt eine Variable "DVerbrauch" rechnet was und schreibt den Wert in die Variable.

                    Die Variable ist immer verfügbar bis du sie löscht. Du findest sie bei den Objekten wieder und kannst sie darüber dann visualisieren.

                    Gruß Bernd `

                    Hallo Bernd,

                    wie hast Du in der CCU die Variable "Stomverbrauch" (bei Dir hm-rega.0.9919) erzeugt?

                    Die Diagramme in der CCU finde ich schon ganz sinnvoll, z.B. kWh im Tagesverlauf nach Stunden, Im Wochen- und Monatsverlauf nach Tagen.

                    So etwas würde ich gerne in ioBroker nachbilden, frage mich nur wie?

                    Der ENERGY_COUNTER im hm-rpc Objekt zählt ja einfach nur hoch.

                    Jetzt könnte man jede Stunde das Delta der Werte nehmen und in eine Javascript Variable schreiben.

                    Ebenso um 0:00 Uhr das Delta der Werte zwischen 24h.

                    Ich habe allerdings keine Ahnung, wie ich das Umsetzen kann.

                    Mit Javascript und Schedule? Und dann? wie kommt man an die richtigen Werte um das Delta zu bilden?

                    Meine Frage oben zielte vor allem darauf, ob die gewünschten Werte schon in der CCU vorliegen und ich einfach diese verwenden kann.

                    VG,

                    Michael

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

                      @ruhr70:

                      wie hast Du in der CCU die Variable "Stomverbrauch" (bei Dir hm-rega.0.9919) erzeugt? `
                      Ist noch aus einer Script-Berechnung in CCU.IO - hab da noch Solar-Werte die ich rein- bzw. rausrechne. Dort wird die Variable in die CCU geschrieben.

                      Da ich im "Scripten" noch nicht so gut bin, ist es noch nicht in ioBroker portiert …..

                      Gruß Bernd

                      1 Reply Last reply Reply Quote 0
                      • ruhr70
                        ruhr70 last edited by

                        @bku:

                        Ist noch aus einer Script-Berechnung in CCU.IO - hab da noch Solar-Werte die ich rein- bzw. rausrechne. Dort wird die Variable in die CCU geschrieben.

                        Da ich im "Scripten" noch nicht so gut bin, ist es noch nicht in ioBroker portiert …..

                        Gruß Bernd `

                        Danke für die Rückmeldung.

                        Na, dann ist das ein Thema für später, um ein bisschen in Javascript reinzukommen 😉

                        1 Reply Last reply Reply Quote 0
                        • Bluefox
                          Bluefox last edited by

                          @pix:

                          Gibt es die Möglichkeit, die Variablen näher zu definieren (so wie in CCU.IO mit setObject)? `
                          In der neuen Version (vor 5 Minuten) gibt es die Möglichkeit:

                          https://github.com/ioBroker/ioBroker.ja … parameters

                          createState('myVariable', {unit: '°C', type: 'number'});
                          

                          @pix:

                          Wo werden die Scripts abgespeichert? `
                          48_scripts.png
                          Die kann man leider direkt nicht editieren. Aber da wird ace editor verwendet. Und der ist wirklich bequem. Und wenn nicht, sage einfach und wir werden es verbessern.

                          @pix:

                          Wichtig sind für mich vor allem Variablen vom Type Werteliste. Wie erstelle ich die? `

                          createState('myVariable', {type: 'number', states:['first','second',third']});
                          
                          1 Reply Last reply Reply Quote 0
                          • P
                            pix last edited by

                            Danke, das hilft mir weiter.

                            Habe noch https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md#state gefunden.

                            Gruss

                            Pix

                            1 Reply Last reply Reply Quote 0
                            • P
                              pix last edited by

                              Hallo,
                              @Bluefox:

                              Die kann man leider direkt nicht editieren. Aber da wird ace editor verwendet. Und der ist wirklich bequem. Und wenn nicht, sage einfach und wir werden es verbessern. `
                              Der Editor zeigt mir immer nur 23 Zeilen auf einmal an, auch wenn ich das Fenster größer ziehe (Browser Safari und Chrome auf OS X Yosemite). 261_bildschirmfoto_2015-03-29_um_15.09.35.jpg

                              Die Doku der Parameter für createState ist unvollständig. Wie nutze ich "forceCreation"? Wenn ich z.B. den Namen oder die EInheit einer Variable im Nachhinein ändern will, sollte sie beim Reload die Änderung in der Deklaration übernehmen. Bisher muss ich sie immer löschen und das Skript neu starten. Das ist sicher nicht gut u.a. für History.

                              Nutzt man das so?

                              createState('Alarmanlage', 0, {forceCreation: true}, {name: 'Status Alarmanlage (r)', type: 'number', states:['unscharf','scharf']});
                              

                              Gruß

                              Pix

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              681
                              Online

                              31.7k
                              Users

                              79.7k
                              Topics

                              1.3m
                              Posts

                              6
                              13
                              3870
                              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