Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Aktuellen Wert zyklisch in ein Verzeichnis schreiben

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    429

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    613

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Aktuellen Wert zyklisch in ein Verzeichnis schreiben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
39 Beiträge 5 Kommentatoren 3.9k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Lemmi

    @Homoran

    Die Dateirechte stehen dann der openWB zu wenn ich das richtig verstehe. Bezüglich des Formates bin gerade überfragt. Diese Info habe ich bekommen:

    In OpenWB nutzt du dann das http modul das abfragt:
    http://lokaleip/openWB/ramdisk/xxxbezug

    Ich werde mal nachfragen in welchem Format es vorliegen muss. Eventuell hilft das:

    57ede427-d7e9-4f1c-bc41-0e91b59ab015-grafik.png

    weiter.

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #27

    @Lemmi sagte in Aktuellen Wert zyklisch in ein Verzeichnis schreiben:

    Eventuell hilft das:

    enthält der Wert etwas anderes als 0-9 oder - wird der Wert auf NULL gesetzt.

    @Lemmi sagte in Aktuellen Wert zyklisch in ein Verzeichnis schreiben:

    Allerdings mit mit punkt.

    Ein Punkt darf nicht drin sein

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • L Lemmi

      @thewhobox

      Im Browser erscheint wirklich nur die reine Zahl. Allerdings mit mit punkt. es wird nicht gerundet. Vielleicht stört das ja auch. Habe den Entwickler per Mail gefragt ob ich überprüfen kann ob die Abfrage überhaupt gestartet wird und ob es eine Fehlermeldung gibt. Mal sehen was er Antwortet.

      thewhoboxT Offline
      thewhoboxT Offline
      thewhobox
      schrieb am zuletzt editiert von
      #28

      @Lemmi Du könntest zum Testen einen Datenpunkt unter javascript.0.openwb.netzbezug anlegen und dort eine ganze Zahl (ohne Komma) eintragen.
      Und dann diesen Wert abfragen lassen. Funktioniert es dann?

      Falls ja, musst du nur per Skript auf den alten DP triggern, aufrunden auf ne ganze Zahl und dann in den neuen DP schreiben.

      Meine Adapter: emby | discovery
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      L 1 Antwort Letzte Antwort
      0
      • thewhoboxT thewhobox

        @Lemmi Du könntest zum Testen einen Datenpunkt unter javascript.0.openwb.netzbezug anlegen und dort eine ganze Zahl (ohne Komma) eintragen.
        Und dann diesen Wert abfragen lassen. Funktioniert es dann?

        Falls ja, musst du nur per Skript auf den alten DP triggern, aufrunden auf ne ganze Zahl und dann in den neuen DP schreiben.

        L Offline
        L Offline
        Lemmi
        schrieb am zuletzt editiert von
        #29

        @thewhobox

        muss jetzt zur Arbeit und werde mich heute Abend weiter damit beschäftigen.

        unltdnetworxU 1 Antwort Letzte Antwort
        0
        • L Lemmi

          @thewhobox

          muss jetzt zur Arbeit und werde mich heute Abend weiter damit beschäftigen.

          unltdnetworxU Offline
          unltdnetworxU Offline
          unltdnetworx
          Developer
          schrieb am zuletzt editiert von unltdnetworx
          #30

          @Lemmi
          Hallo Sven,
          da du, wie bereits erwähnt, mittlerweile vier Threads zum Thema offen hast, antworte ich mal hier, da die Lösung schon von @thewhobox aufgezeigt wurde. Die wenigst praktikable Lösung wäre also den Adapter anzupassen.

          Nochmal in Kurzform:

          • Erstelle dir für alle drei gewünschten Werte einen neuen Datenpunkt unter den Javascript-Objekten.
          • Baue dir ein Blockly mit folgenden Aufgaben:
            • Trigger (Auslösung des Scriptblocks) entweder als Cron, also zeitgesteuert alle 15 Sekunden (energymanager Adapter natürlich auf diesen Wert setzen) oder bei Änderung des Wertes im Quelladapter
            • Runden des Ursprungswertes
            • Schreiben in den oben neu erzeugten Wert
          • Greife aus der Weboberfläche auf die NEUEN gerundeten angepassten Werte zu

          Das ist jetzt mal ein Versuch zu erklären, was mein Vorredner gemeint hat. Geht natürlich professioneller, aber zum ersten Testen reichts.

          Bin gerade unterwegs. Bei Interesse später ausführlicher.

          Gruß, Michael
          Weitere Infos im Profil.
          Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

          1 Antwort Letzte Antwort
          1
          • L Offline
            L Offline
            Lemmi
            schrieb am zuletzt editiert von
            #31

            Hallo Michael,

            hört sich gut an. Wenn es dir nichts ausmacht, wäre es super, wenn du es etwas ausführlicher beschreiben könntest. Stosse hier nämlich ständig an meine Grenzen. mit dem Runden könnte das doch so funktionieren oder?

            function precisionRound(number, precision) {

            var factor = Math.pow(10, precision);

            return Math.round(number * factor) / factor;

            }

            on({id: 'javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input', change: "any"}, function (obj) {

            var value = obj.state.val;

            var oldValue = obj.oldState.val;

            setState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_kWh"/Zaehlerstand_kWh/, (precisionRound((getState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input").val / 75)), 3), true);

            });

            Die Datenpunkte in einem neuen Ordner oder direkt im Energymanager?

            unltdnetworxU 1 Antwort Letzte Antwort
            0
            • L Lemmi

              Hallo Michael,

              hört sich gut an. Wenn es dir nichts ausmacht, wäre es super, wenn du es etwas ausführlicher beschreiben könntest. Stosse hier nämlich ständig an meine Grenzen. mit dem Runden könnte das doch so funktionieren oder?

              function precisionRound(number, precision) {

              var factor = Math.pow(10, precision);

              return Math.round(number * factor) / factor;

              }

              on({id: 'javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input', change: "any"}, function (obj) {

              var value = obj.state.val;

              var oldValue = obj.oldState.val;

              setState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_kWh"/Zaehlerstand_kWh/, (precisionRound((getState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input").val / 75)), 3), true);

              });

              Die Datenpunkte in einem neuen Ordner oder direkt im Energymanager?

              unltdnetworxU Offline
              unltdnetworxU Offline
              unltdnetworx
              Developer
              schrieb am zuletzt editiert von unltdnetworx
              #32

              @Lemmi
              Setze den Code bitte mal in Code-Tags.
              Die Datenpunkte kannst du anlegen wo du willst. Hat keinen Einfluss auf die Funktionalität.

              Nur kurz vom Überfliegen, der Wert wird bei dir nie angepasst werden. Du prüfst auf Änderungen des Zielwertes und willst den dann anpassen. Du musst auf Änderungen des Energymanager Wertes prüfen.

              Bau dir das dich erst mal mit Blockly zusammen und schau dir den entstandenen Code mal an. Damit du den Aufbau verstehst.

              Gruß, Michael
              Weitere Infos im Profil.
              Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

              1 Antwort Letzte Antwort
              0
              • L Offline
                L Offline
                Lemmi
                schrieb am zuletzt editiert von
                #33

                Das war auch nur ein Beispiel aus dem Forum was ich gefunden habe welches sich mit runden von Zahlen beschäftigt. https://forum.iobroker.net/topic/11986/gelöst-js-skript-runden-auf-3-stellen-nach-dem-komma

                Datenpunkte anlegen bekomme ich noch hin. Blockly über Spipte öffnen auch noch. Root Verzeichnis, Common oder Global ? Aber dann geht es los!! Wo/Wie muss ich anfangen und wo hört es auf!! Werde heute Abend mal damit herumexperimentieren. Wie gesagt bin ich hier absoluter Anfänger.

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  Lemmi
                  schrieb am zuletzt editiert von
                  #34

                  Hallo Michael,
                  habe mal ein bisschen mit Blockly gespielt und folgendes entworfen:

                  74c28b73-5a7c-4315-9ac4-8b9323d7ee09-grafik.png

                  Funktioniert wie zu erwarten natürlich nicht!!

                  Entspricht das ungefähr dem was du mir vorgeschlagen hast?

                  unltdnetworxU 1 Antwort Letzte Antwort
                  0
                  • L Lemmi

                    Hallo Michael,
                    habe mal ein bisschen mit Blockly gespielt und folgendes entworfen:

                    74c28b73-5a7c-4315-9ac4-8b9323d7ee09-grafik.png

                    Funktioniert wie zu erwarten natürlich nicht!!

                    Entspricht das ungefähr dem was du mir vorgeschlagen hast?

                    unltdnetworxU Offline
                    unltdnetworxU Offline
                    unltdnetworx
                    Developer
                    schrieb am zuletzt editiert von unltdnetworx
                    #35

                    @Lemmi
                    Du mischt jetzt verschiedene Lösungsversuche durcheinander. Den Exec-Block brauchst du nicht. Und im blauen Block setzt du den Wert auf "true" also wahr. Lies einfach was da steht von oben nach unten.

                    So sollte es z.B. gehen:
                    OpenWB.jpg

                    Dein "Schreibe"-Block ist sogar besser. In den Wert dann eben nicht "wahr" sondern "runde ..." einsetzen.
                    Damit wird überprüft, ob sich das Objekt Einspeisung geändert hat und schreibt dann einen Wert in den neuen Datenpunkt. Der Wert wird berechnet, indem der Wert der Einspeisung mal 1000 gerechnet wird (kW in Watt) und das ganze dann gerundet wird.

                    Das machst du dreimal, einfach den Falls-Block komplett kopieren, darunter einhacken und die Datenpunkte anpassen.

                    Im Anschluss in OpenWB den Link anpassen und fertig.

                    Gruß, Michael
                    Weitere Infos im Profil.
                    Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                    1 Antwort Letzte Antwort
                    1
                    • unltdnetworxU Offline
                      unltdnetworxU Offline
                      unltdnetworx
                      Developer
                      schrieb am zuletzt editiert von
                      #36

                      @Lemmi
                      Hattest du schon Erfolg?

                      Gruß, Michael
                      Weitere Infos im Profil.
                      Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                      1 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        Lemmi
                        schrieb am zuletzt editiert von
                        #37

                        Hallo Michael,

                        sorry das ich mich jetzt erst melde!!! Hatten am WE Kommunion unserer Tochter und Fussballturnier unseres Sohnes. Bin heute erst dazu gekommen meine Versuche zu perfektionieren. Da die OpenWB für Einspeisung und Speicherentladung auch noch ein Minus davor haben wollte musste ich die Datenpunkte dahingehend verändern. Habe es aber geschafft und es scheint nun auch so zu sein wie es muss.

                        aa4b5fd9-bd24-498c-9db4-fe2dde50282a-grafik.png

                        Beispielskript:

                        a03bd542-2fd3-471e-8a94-43fd43a2d499-grafik.png

                        Werde nun beobachten, ob sich alles so verhält wie ich es mir wünsche und ggf. ein paar Kleinigkeiten ändern.

                        Vielen, Vielen Dank nochmal an dich für deine Hilfe!!!!! Ohne die hätte ich es ganz sicher nicht geschafft.

                        Gruß Sven

                        unltdnetworxU 1 Antwort Letzte Antwort
                        0
                        • L Lemmi

                          Hallo Michael,

                          sorry das ich mich jetzt erst melde!!! Hatten am WE Kommunion unserer Tochter und Fussballturnier unseres Sohnes. Bin heute erst dazu gekommen meine Versuche zu perfektionieren. Da die OpenWB für Einspeisung und Speicherentladung auch noch ein Minus davor haben wollte musste ich die Datenpunkte dahingehend verändern. Habe es aber geschafft und es scheint nun auch so zu sein wie es muss.

                          aa4b5fd9-bd24-498c-9db4-fe2dde50282a-grafik.png

                          Beispielskript:

                          a03bd542-2fd3-471e-8a94-43fd43a2d499-grafik.png

                          Werde nun beobachten, ob sich alles so verhält wie ich es mir wünsche und ggf. ein paar Kleinigkeiten ändern.

                          Vielen, Vielen Dank nochmal an dich für deine Hilfe!!!!! Ohne die hätte ich es ganz sicher nicht geschafft.

                          Gruß Sven

                          unltdnetworxU Offline
                          unltdnetworxU Offline
                          unltdnetworx
                          Developer
                          schrieb am zuletzt editiert von unltdnetworx
                          #38

                          @Lemmi
                          Schön, dass es geklappt. Danke für die Rückmeldung.

                          Nur eine Frage, warum rechnest du in dem Beispiel so viel? Du könntest doch einfach den Wert Batterieladung runden, oder nicht?

                          Gruß, Michael
                          Weitere Infos im Profil.
                          Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                          1 Antwort Letzte Antwort
                          0
                          • L Offline
                            L Offline
                            Lemmi
                            schrieb am zuletzt editiert von
                            #39

                            Wenn ich den Wert einfach nur runde, dann erscheint bei Standby des Speichers einfach nur 0. Die OpenWB stellt sich dann auf 0 Watt und Entladung ein. Die OpenWB ist so eingestellt, dass ein entladen des Speichers verhindert werden soll und lädt dann das Auto nicht. Habe die Rechnerei sogar noch um - 0,001 erweitert. Somit erscheint dann 1Watt Ladung und das Auto lädt. Die 1 Watt Verfälschung ist unproblematisch, da erst ab 1400 Watt Überschuss geladen wird.

                            P.S.: Ich könnte wahrscheinlich auch einfach vom Datenpunkt Batterieladung 0,001 abziehen und erhalte das gleiche Ergebnis :grin: . Aber Hauptsache es funzt :+1:

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            410

                            Online

                            32.6k

                            Benutzer

                            81.9k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe