Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Frage zu einem Script und dem genutzten Datenpunkt

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    12
    1
    135

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.3k

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

Frage zu einem Script und dem genutzten Datenpunkt

Scheduled Pinned Locked Moved JavaScript
37 Posts 5 Posters 3.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • O Offline
    O Offline
    opöl
    wrote on last edited by
    #1

    Hallo zusammen,

    ich möchte die unvergütete Einspeisung (Hichi ir Lesekopf) meines BK (Deye 600) mit einem Script auswerten und die eingespeiste Leistung in die DB schreiben. Grundsätzlich geht das auch, aber ich habe da ein paar Phänomene, die ich gerne verstehen und mit Eurer Unterstützung abstellen würde. Vielleicht hat ja jemand auch eine bessere Idee für die Umsetzung.

    Funktion:

    Mein Hichi IR Adapter zeigt (unvergütet) eingespeiste Leistung als negativen Wert an.
    Diese negativen Werte werden im Minutenabstand aufsummiert und als virtueller Einspeise-Zählerstand (in Wm) als positiver Summenwert in die DB geschrieben. Falls keine Einspeisung erfolgt (Strombezug), wird eine "0" addiert.

    Script:

    // Abonniere den Datenpunkt, der die Gesamtleistung misst
    //Zwischen Sensor und Power liegt noch ein Ordner ohne Name. Daher die 2 ".."
    on('sonoff.0.Stromzähler.SENSOR..Power', function (obj) {
        var einspeisung = 0; // Standardwert für die Einspeisung ist 0
        var gesamtleistung = obj.state.val; // Aktueller Wert der Gesamtleistung
    
        // Wenn die Gesamtleistung negativ ist, wird ins Netz eingespeist
       if (gesamtleistung < 0) {
           einspeisung = Math.abs(gesamtleistung); // Einspeisung ist der Betrag der negativen Gesamtleistung
        }
    
    // Schreibe den Wert in den neuen Datenpunkt "Einspeisung"
    // setState('sonoff.0.Stromzähler.SENSOR.Einspeisung', einspeisung);
        setState('0_userdata.0.Einspeisung.PV-Einspeisung', einspeisung, true);
    
    // Eingespeiste Leistung / Energie berechnen Einheit: Wm (Wattminuten), da 1 Wert / Minute
    // Hole aktuelle Einspeisung in (W)
    const ideinspeisung = '0_userdata.0.Einspeisung.PV-Einspeisung';
    var einspeisung = getState(ideinspeisung).val;
    
    // Hole alten Zählerstand (Wm)
    const idenergie = '0_userdata.0.Einspeisung.PV-Einspeisung-Power';
    var energie = getState(idenergie).val;
    // Addiere aktuelle Leistung (W * 1 Minute) zur alten eingespeisten Energie (Wm) und schreibe Wert
    energie_neu = energie + einspeisung;
        setState('0_userdata.0.Einspeisung.PV-Einspeisung-Power', energie_neu, true);
    });
    

    Phänomene:

    1. Neu geschriebene Werte (energie_neu) werden im iobroker kurz angezeigt, verschwinden aber wieder. Der letzte Wert von 18:22 Uhr ist kurz nach Erstellen des Screenshots verschwunden. Nur die älteren Einträge vom Testen bleiben erhalten. Das gleiche Bild zeigt sich beim Export der Werte als csv.
      8cc614ca-fa4a-4e90-9be1-5aac90d0d0dc-image.png

    2. Bei der Einspeisung bleiben die geschriebenen Werte im Datenpunkt erhalten, jedoch sieht der csv Export so aus:
      a50811c9-4aec-4a59-8521-cbcb2feddc50-image.png

    Woher kommen die unterschiedlichen Timestamps, die unregelmäßig, aber häufig auftauchen?
    Wie kann ich verhindern, dass 16,7 W als 16.Juli interpretiert werden? In den Admin Systemeinstellungen ist als Trennzeichen "Komma" angegeben, die csv liefert aber einen Punkt als Trennzeichen.

    Vielen Dank

    CodierknechtC T 2 Replies Last reply
    0
    • O opöl

      Hallo zusammen,

      ich möchte die unvergütete Einspeisung (Hichi ir Lesekopf) meines BK (Deye 600) mit einem Script auswerten und die eingespeiste Leistung in die DB schreiben. Grundsätzlich geht das auch, aber ich habe da ein paar Phänomene, die ich gerne verstehen und mit Eurer Unterstützung abstellen würde. Vielleicht hat ja jemand auch eine bessere Idee für die Umsetzung.

      Funktion:

      Mein Hichi IR Adapter zeigt (unvergütet) eingespeiste Leistung als negativen Wert an.
      Diese negativen Werte werden im Minutenabstand aufsummiert und als virtueller Einspeise-Zählerstand (in Wm) als positiver Summenwert in die DB geschrieben. Falls keine Einspeisung erfolgt (Strombezug), wird eine "0" addiert.

      Script:

      // Abonniere den Datenpunkt, der die Gesamtleistung misst
      //Zwischen Sensor und Power liegt noch ein Ordner ohne Name. Daher die 2 ".."
      on('sonoff.0.Stromzähler.SENSOR..Power', function (obj) {
          var einspeisung = 0; // Standardwert für die Einspeisung ist 0
          var gesamtleistung = obj.state.val; // Aktueller Wert der Gesamtleistung
      
          // Wenn die Gesamtleistung negativ ist, wird ins Netz eingespeist
         if (gesamtleistung < 0) {
             einspeisung = Math.abs(gesamtleistung); // Einspeisung ist der Betrag der negativen Gesamtleistung
          }
      
      // Schreibe den Wert in den neuen Datenpunkt "Einspeisung"
      // setState('sonoff.0.Stromzähler.SENSOR.Einspeisung', einspeisung);
          setState('0_userdata.0.Einspeisung.PV-Einspeisung', einspeisung, true);
      
      // Eingespeiste Leistung / Energie berechnen Einheit: Wm (Wattminuten), da 1 Wert / Minute
      // Hole aktuelle Einspeisung in (W)
      const ideinspeisung = '0_userdata.0.Einspeisung.PV-Einspeisung';
      var einspeisung = getState(ideinspeisung).val;
      
      // Hole alten Zählerstand (Wm)
      const idenergie = '0_userdata.0.Einspeisung.PV-Einspeisung-Power';
      var energie = getState(idenergie).val;
      // Addiere aktuelle Leistung (W * 1 Minute) zur alten eingespeisten Energie (Wm) und schreibe Wert
      energie_neu = energie + einspeisung;
          setState('0_userdata.0.Einspeisung.PV-Einspeisung-Power', energie_neu, true);
      });
      

      Phänomene:

      1. Neu geschriebene Werte (energie_neu) werden im iobroker kurz angezeigt, verschwinden aber wieder. Der letzte Wert von 18:22 Uhr ist kurz nach Erstellen des Screenshots verschwunden. Nur die älteren Einträge vom Testen bleiben erhalten. Das gleiche Bild zeigt sich beim Export der Werte als csv.
        8cc614ca-fa4a-4e90-9be1-5aac90d0d0dc-image.png

      2. Bei der Einspeisung bleiben die geschriebenen Werte im Datenpunkt erhalten, jedoch sieht der csv Export so aus:
        a50811c9-4aec-4a59-8521-cbcb2feddc50-image.png

      Woher kommen die unterschiedlichen Timestamps, die unregelmäßig, aber häufig auftauchen?
      Wie kann ich verhindern, dass 16,7 W als 16.Juli interpretiert werden? In den Admin Systemeinstellungen ist als Trennzeichen "Komma" angegeben, die csv liefert aber einen Punkt als Trennzeichen.

      Vielen Dank

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      wrote on last edited by
      #2

      @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

      Wie kann ich verhindern, dass 16,7 W als 16.Juli interpretiert werden? In den Admin Systemeinstellungen ist als Trennzeichen "Komma" angegeben, die csv liefert aber einen Punkt als Trennzeichen.

      Einfache Lösung: Verwende kein Excel, um Dir CSV-Dateien anzusehen.
      Da schlägt dann die eingebaute "Microsoft-Logik" zu.

      Ich bin ja immer schon dafür, Excel zu verbieten. Aber wer hört schon auf mich?

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      1 Reply Last reply
      1
      • T Do not disturb
        T Do not disturb
        ticaki
        wrote on last edited by ticaki
        #3
        on('sonoff.0.Stromzähler.SENSOR..Power',function (obj) {
            var einspeisung=0; // Standardwert für die Einspeisung ist 0
            var gesamtleistung=obj.state.val; // Aktueller Wert der Gesamtleistung
        
            // Wenn die Gesamtleistung negativ ist, wird ins Netz eingespeist
            if (gesamtleistung<0) {
                einspeisung=Math.abs(gesamtleistung); // Einspeisung ist der Betrag der negativen Gesamtleistung
            }
        
            // Schreibe den Wert in den neuen Datenpunkt "Einspeisung"
            // setState('sonoff.0.Stromzähler.SENSOR.Einspeisung', einspeisung);
            setState('0_userdata.0.Einspeisung.PV-Einspeisung',einspeisung,true);
        
            // Eingespeiste Leistung / Energie berechnen Einheit: Wm (Wattminuten), da 1 Wert / Minute
            // Hole aktuelle Einspeisung in (W)
            const ideinspeisung='0_userdata.0.Einspeisung.PV-Einspeisung';
            var einspeisung=getState(ideinspeisung).val;
        
            // Hole alten Zählerstand (Wm)
            const idenergie='0_userdata.0.Einspeisung.PV-Einspeisung-Power';
            var energie=getState(idenergie).val;
            // Addiere aktuelle Leistung (W * 1 Minute) zur alten eingespeisten Energie (Wm) und schreibe Wert
            energie_neu=energie+einspeisung;
            setState('0_userdata.0.Einspeisung.PV-Einspeisung-Power',energie_neu,true);
        });
        

        wenn das ordentlich formatiert ist sieht man den Fehler :) Für was genau sind zeile 16 und 17 gut... und geht das überhaupt so schnell wieder lesen?

        Davon abgesehen ist in der ersten id ein .. das "darf" eigentlich nicht sein.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        paul53P 1 Reply Last reply
        0
        • T ticaki
          on('sonoff.0.Stromzähler.SENSOR..Power',function (obj) {
              var einspeisung=0; // Standardwert für die Einspeisung ist 0
              var gesamtleistung=obj.state.val; // Aktueller Wert der Gesamtleistung
          
              // Wenn die Gesamtleistung negativ ist, wird ins Netz eingespeist
              if (gesamtleistung<0) {
                  einspeisung=Math.abs(gesamtleistung); // Einspeisung ist der Betrag der negativen Gesamtleistung
              }
          
              // Schreibe den Wert in den neuen Datenpunkt "Einspeisung"
              // setState('sonoff.0.Stromzähler.SENSOR.Einspeisung', einspeisung);
              setState('0_userdata.0.Einspeisung.PV-Einspeisung',einspeisung,true);
          
              // Eingespeiste Leistung / Energie berechnen Einheit: Wm (Wattminuten), da 1 Wert / Minute
              // Hole aktuelle Einspeisung in (W)
              const ideinspeisung='0_userdata.0.Einspeisung.PV-Einspeisung';
              var einspeisung=getState(ideinspeisung).val;
          
              // Hole alten Zählerstand (Wm)
              const idenergie='0_userdata.0.Einspeisung.PV-Einspeisung-Power';
              var energie=getState(idenergie).val;
              // Addiere aktuelle Leistung (W * 1 Minute) zur alten eingespeisten Energie (Wm) und schreibe Wert
              energie_neu=energie+einspeisung;
              setState('0_userdata.0.Einspeisung.PV-Einspeisung-Power',energie_neu,true);
          });
          

          wenn das ordentlich formatiert ist sieht man den Fehler :) Für was genau sind zeile 16 und 17 gut... und geht das überhaupt so schnell wieder lesen?

          Davon abgesehen ist in der ersten id ein .. das "darf" eigentlich nicht sein.

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

          @ticaki sagte: Für was genau sind zeile 16 und 17 gut... und geht das überhaupt so schnell wieder lesen?

          Diese Zeilen sind wegen der asynchronen Ausführung von setState() kontraproduktiv.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          CodierknechtC 1 Reply Last reply
          0
          • paul53P paul53

            @ticaki sagte: Für was genau sind zeile 16 und 17 gut... und geht das überhaupt so schnell wieder lesen?

            Diese Zeilen sind wegen der asynchronen Ausführung von setState() kontraproduktiv.

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            wrote on last edited by
            #5

            @opöl
            Wozu willst Du in Zeile 17 den Wert erneut in die Variable einlesen?
            Die trägt doch schon den aktuellen Wert.

            Wie @paul53 schon schreibt, funktioniert das unmittelbare Lesen eines DP nach dem Schreiben nicht, da das Ganze asynchron ausgeführt wird.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            1 Reply Last reply
            0
            • O opöl

              Hallo zusammen,

              ich möchte die unvergütete Einspeisung (Hichi ir Lesekopf) meines BK (Deye 600) mit einem Script auswerten und die eingespeiste Leistung in die DB schreiben. Grundsätzlich geht das auch, aber ich habe da ein paar Phänomene, die ich gerne verstehen und mit Eurer Unterstützung abstellen würde. Vielleicht hat ja jemand auch eine bessere Idee für die Umsetzung.

              Funktion:

              Mein Hichi IR Adapter zeigt (unvergütet) eingespeiste Leistung als negativen Wert an.
              Diese negativen Werte werden im Minutenabstand aufsummiert und als virtueller Einspeise-Zählerstand (in Wm) als positiver Summenwert in die DB geschrieben. Falls keine Einspeisung erfolgt (Strombezug), wird eine "0" addiert.

              Script:

              // Abonniere den Datenpunkt, der die Gesamtleistung misst
              //Zwischen Sensor und Power liegt noch ein Ordner ohne Name. Daher die 2 ".."
              on('sonoff.0.Stromzähler.SENSOR..Power', function (obj) {
                  var einspeisung = 0; // Standardwert für die Einspeisung ist 0
                  var gesamtleistung = obj.state.val; // Aktueller Wert der Gesamtleistung
              
                  // Wenn die Gesamtleistung negativ ist, wird ins Netz eingespeist
                 if (gesamtleistung < 0) {
                     einspeisung = Math.abs(gesamtleistung); // Einspeisung ist der Betrag der negativen Gesamtleistung
                  }
              
              // Schreibe den Wert in den neuen Datenpunkt "Einspeisung"
              // setState('sonoff.0.Stromzähler.SENSOR.Einspeisung', einspeisung);
                  setState('0_userdata.0.Einspeisung.PV-Einspeisung', einspeisung, true);
              
              // Eingespeiste Leistung / Energie berechnen Einheit: Wm (Wattminuten), da 1 Wert / Minute
              // Hole aktuelle Einspeisung in (W)
              const ideinspeisung = '0_userdata.0.Einspeisung.PV-Einspeisung';
              var einspeisung = getState(ideinspeisung).val;
              
              // Hole alten Zählerstand (Wm)
              const idenergie = '0_userdata.0.Einspeisung.PV-Einspeisung-Power';
              var energie = getState(idenergie).val;
              // Addiere aktuelle Leistung (W * 1 Minute) zur alten eingespeisten Energie (Wm) und schreibe Wert
              energie_neu = energie + einspeisung;
                  setState('0_userdata.0.Einspeisung.PV-Einspeisung-Power', energie_neu, true);
              });
              

              Phänomene:

              1. Neu geschriebene Werte (energie_neu) werden im iobroker kurz angezeigt, verschwinden aber wieder. Der letzte Wert von 18:22 Uhr ist kurz nach Erstellen des Screenshots verschwunden. Nur die älteren Einträge vom Testen bleiben erhalten. Das gleiche Bild zeigt sich beim Export der Werte als csv.
                8cc614ca-fa4a-4e90-9be1-5aac90d0d0dc-image.png

              2. Bei der Einspeisung bleiben die geschriebenen Werte im Datenpunkt erhalten, jedoch sieht der csv Export so aus:
                a50811c9-4aec-4a59-8521-cbcb2feddc50-image.png

              Woher kommen die unterschiedlichen Timestamps, die unregelmäßig, aber häufig auftauchen?
              Wie kann ich verhindern, dass 16,7 W als 16.Juli interpretiert werden? In den Admin Systemeinstellungen ist als Trennzeichen "Komma" angegeben, die csv liefert aber einen Punkt als Trennzeichen.

              Vielen Dank

              T Do not disturb
              T Do not disturb
              ticaki
              wrote on last edited by
              #6

              @opöl
              Desweiteren ist energie_neu nicht deklariert - const energie_neu =

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              1 Reply Last reply
              0
              • T Do not disturb
                T Do not disturb
                ticaki
                wrote on last edited by ticaki
                #7

                @paul53 @Codierknecht
                Doch das geht:

                setState('0_userdata.0.Test', 4);
                let test = getState('0_userdata.0.Test').val*2
                setState('0_userdata.0.Test', test);
                test = getState('0_userdata.0.Test').val*2
                setState('0_userdata.0.Test', test);
                log(`getState: ${getState('0_userdata.0.Test').val} should be: ${test}`);
                
                script.js.Test.Skript_1: getState: 16 should be: 16
                

                hab nicht im Code geschaut, aber ich denke der JS schreibt das direkt in seinen Cache und ruft eine async funktion auf die es weiter durchreicht. Das war mal anders. Denke wurde wegen Blockly geändert, da benutze die Leute nicht wirklich variablen.

                @opöl

                solltest 16 und 17 trotzdem löschen weil du die daten ja schon hast, macht keinen Sinn die nochmal anzufragen.

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                1 Reply Last reply
                1
                • CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  wrote on last edited by Codierknecht
                  #8

                  @ticaki sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                  Das war mal anders

                  Hängt dann natürlich auch davon ab, welche Version des JS-Controllers @opöl am Start hat.

                  Könnte man das mit

                  await setStateAsync()
                  

                  umgehen?

                  Natürlich nur interessehalber.
                  Das wird ja hier eigentlich gar nicht benötigt.

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  O 1 Reply Last reply
                  0
                  • CodierknechtC Codierknecht

                    @ticaki sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                    Das war mal anders

                    Hängt dann natürlich auch davon ab, welche Version des JS-Controllers @opöl am Start hat.

                    Könnte man das mit

                    await setStateAsync()
                    

                    umgehen?

                    Natürlich nur interessehalber.
                    Das wird ja hier eigentlich gar nicht benötigt.

                    O Offline
                    O Offline
                    opöl
                    wrote on last edited by
                    #9

                    @codierknecht,
                    eigentlich bin ich ein Freund von Excel und hatte die Hoffnung, dass man iobroker dazu überreden könnte, Kommata zu verwenden. Naja, ist ja erst einmal nur zur manuellen Kontrolle der Werte. Ich schaue mal, was sich da so anbietet.

                    @ticaki und @paul53 ,
                    ich hatte mal gelesen, dass Variablen außerhalb einer Funktion nicht mehr aktuell sind bzw. sein können. Wenn ich die Variable direkt weiter verwerten kann, probiere ich es ohne die beiden Zeilen.

                    Vielen Dank für die Tipps bisher. Die werden so umgesetzt.

                    Hat jemand eine Idee zu der 1. Frage?
                    Die neuen Werte verschwinden nach 30-40 Sekunden wieder.

                    Danke und Gruß

                    T 1 Reply Last reply
                    0
                    • O opöl

                      @codierknecht,
                      eigentlich bin ich ein Freund von Excel und hatte die Hoffnung, dass man iobroker dazu überreden könnte, Kommata zu verwenden. Naja, ist ja erst einmal nur zur manuellen Kontrolle der Werte. Ich schaue mal, was sich da so anbietet.

                      @ticaki und @paul53 ,
                      ich hatte mal gelesen, dass Variablen außerhalb einer Funktion nicht mehr aktuell sind bzw. sein können. Wenn ich die Variable direkt weiter verwerten kann, probiere ich es ohne die beiden Zeilen.

                      Vielen Dank für die Tipps bisher. Die werden so umgesetzt.

                      Hat jemand eine Idee zu der 1. Frage?
                      Die neuen Werte verschwinden nach 30-40 Sekunden wieder.

                      Danke und Gruß

                      T Do not disturb
                      T Do not disturb
                      ticaki
                      wrote on last edited by ticaki
                      #10

                      @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                      @ticaki und @paul53 ,
                      ich hatte mal gelesen, dass Variablen außerhalb einer Funktion nicht mehr aktuell sind bzw. sein können. Wenn ich die Variable direkt weiter verwerten kann, probiere ich es ohne die beiden Zeilen.

                      Aber das ist doch alles nur 1 Funktion? Zu deiner Frage muß ich nochmal schauen ob ich was überlesen habe.

                      EDIT: In dem Code gibt es keinen Grund warum der Wert auf 0 gesetzt werden sollte.

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      O 1 Reply Last reply
                      0
                      • T ticaki

                        @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                        @ticaki und @paul53 ,
                        ich hatte mal gelesen, dass Variablen außerhalb einer Funktion nicht mehr aktuell sind bzw. sein können. Wenn ich die Variable direkt weiter verwerten kann, probiere ich es ohne die beiden Zeilen.

                        Aber das ist doch alles nur 1 Funktion? Zu deiner Frage muß ich nochmal schauen ob ich was überlesen habe.

                        EDIT: In dem Code gibt es keinen Grund warum der Wert auf 0 gesetzt werden sollte.

                        O Offline
                        O Offline
                        opöl
                        wrote on last edited by
                        #11

                        @ticaki,
                        der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                        In meinem Fall gibt es tatsächlich einen namenlosen Ordner in den Objekten unterhalb „Sensor“. Wie der dahin kommt, ist mir auch schleierhaft. Daher die beiden „..“. Steht ganz oben im Kommentar meines Scripts.

                        Gruß

                        CodierknechtC T 3 Replies Last reply
                        0
                        • O opöl

                          @ticaki,
                          der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                          In meinem Fall gibt es tatsächlich einen namenlosen Ordner in den Objekten unterhalb „Sensor“. Wie der dahin kommt, ist mir auch schleierhaft. Daher die beiden „..“. Steht ganz oben im Kommentar meines Scripts.

                          Gruß

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          wrote on last edited by
                          #12

                          @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                          der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                          Und dann in Zeile 14 weggeschrieben.
                          Dann braucht man den in Zeile 19 ja nicht wieder einzulesen.
                          In einspeisung steht ja dann noch immer der gleiche Wert.

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          O 1 Reply Last reply
                          1
                          • CodierknechtC Codierknecht

                            @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                            der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                            Und dann in Zeile 14 weggeschrieben.
                            Dann braucht man den in Zeile 19 ja nicht wieder einzulesen.
                            In einspeisung steht ja dann noch immer der gleiche Wert.

                            O Offline
                            O Offline
                            opöl
                            wrote on last edited by
                            #13

                            @codierknecht ,

                            habe ich verstanden und umgesetzt.

                            Danke

                            1 Reply Last reply
                            0
                            • O opöl

                              @ticaki,
                              der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                              In meinem Fall gibt es tatsächlich einen namenlosen Ordner in den Objekten unterhalb „Sensor“. Wie der dahin kommt, ist mir auch schleierhaft. Daher die beiden „..“. Steht ganz oben im Kommentar meines Scripts.

                              Gruß

                              T Do not disturb
                              T Do not disturb
                              ticaki
                              wrote on last edited by
                              #14

                              @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                              @ticaki,
                              der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                              Ich meinte damit:

                              Neu geschriebene Werte (energie_neu) werden im iobroker kurz angezeigt, verschwinden aber wieder.

                              werte verschwinden nicht. Daher bin ich davon ausgegangen das irgendwas die überschreibt.

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

                              O 1 Reply Last reply
                              0
                              • T ticaki

                                @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                                @ticaki,
                                der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                                Ich meinte damit:

                                Neu geschriebene Werte (energie_neu) werden im iobroker kurz angezeigt, verschwinden aber wieder.

                                werte verschwinden nicht. Daher bin ich davon ausgegangen das irgendwas die überschreibt.

                                O Offline
                                O Offline
                                opöl
                                wrote on last edited by
                                #15

                                @ticaki ,
                                ich habe es gerade noch einmal überprüft.
                                Ein neuer Eintrag (der alte Wert, da ja im Moment keine Einspeisung erfolgt) wird im Datenpunkt „0_userdata.0.Einspeisung.PV-Einspeisung-Power“ für < 1 Minute angezeigt, verschwindet aber dann. Dann wird der neue Wert genau so lange angezeigt, bis auch der „verschwindet“. Die alten Werte aus der Testphase bleiben erhalten. Auch der Datenexport zeigt ein identisches Ergebnis.

                                Wenn ein anderes Script den DP überschreiben würde, wäre doch unter dem Zeitstempel etwas abgelegt?
                                Adapter schreiben doch in dem Bereich eh nicht?

                                Ich gehe morgen nochmal meine Scripte durch.
                                Vielleicht ist ja auch was quer mit einem Alias?

                                Gruß

                                O 1 Reply Last reply
                                0
                                • O opöl

                                  @ticaki ,
                                  ich habe es gerade noch einmal überprüft.
                                  Ein neuer Eintrag (der alte Wert, da ja im Moment keine Einspeisung erfolgt) wird im Datenpunkt „0_userdata.0.Einspeisung.PV-Einspeisung-Power“ für < 1 Minute angezeigt, verschwindet aber dann. Dann wird der neue Wert genau so lange angezeigt, bis auch der „verschwindet“. Die alten Werte aus der Testphase bleiben erhalten. Auch der Datenexport zeigt ein identisches Ergebnis.

                                  Wenn ein anderes Script den DP überschreiben würde, wäre doch unter dem Zeitstempel etwas abgelegt?
                                  Adapter schreiben doch in dem Bereich eh nicht?

                                  Ich gehe morgen nochmal meine Scripte durch.
                                  Vielleicht ist ja auch was quer mit einem Alias?

                                  Gruß

                                  O Offline
                                  O Offline
                                  opöl
                                  wrote on last edited by
                                  #16

                                  Kurzes Update:
                                  Einer Eingebung folgend, habe ich meiner Windows Erfahrung geschuldet mal den Raspberry neu gestartet.
                                  Nach einem kurzen Moment der Freude, weil der Wert von 22:26 Uhr erhalten blieb, folgte prompt die Ernüchterung.
                                  Die nachfolgend geschriebenen Werte verschwinden wieder…..

                                  Gruß

                                  T 1 Reply Last reply
                                  0
                                  • O opöl

                                    Kurzes Update:
                                    Einer Eingebung folgend, habe ich meiner Windows Erfahrung geschuldet mal den Raspberry neu gestartet.
                                    Nach einem kurzen Moment der Freude, weil der Wert von 22:26 Uhr erhalten blieb, folgte prompt die Ernüchterung.
                                    Die nachfolgend geschriebenen Werte verschwinden wieder…..

                                    Gruß

                                    T Do not disturb
                                    T Do not disturb
                                    ticaki
                                    wrote on last edited by
                                    #17

                                    @opöl

                                    verwende einen on() auf den datenpunkt und lass dir obj.state.from ins log schreiben.

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    1 Reply Last reply
                                    0
                                    • O opöl

                                      @ticaki,
                                      der Wert wird standardmäßig auf „0“ gesetzt und im Falle der Einspeisung durch den errechneten Wert ersetzt.

                                      In meinem Fall gibt es tatsächlich einen namenlosen Ordner in den Objekten unterhalb „Sensor“. Wie der dahin kommt, ist mir auch schleierhaft. Daher die beiden „..“. Steht ganz oben im Kommentar meines Scripts.

                                      Gruß

                                      CodierknechtC Online
                                      CodierknechtC Online
                                      Codierknecht
                                      Developer Most Active
                                      wrote on last edited by
                                      #18

                                      @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                                      In meinem Fall gibt es tatsächlich einen namenlosen Ordner in den Objekten unterhalb „Sensor“. Wie der dahin kommt, ist mir auch schleierhaft. Daher die beiden „..“. Steht ganz oben im Kommentar meines Scripts.

                                      Der "Geister-Ordner" wird möglicherweise gar nicht existieren, wenn der DP mit genau diesem Tippfehler per Script erzeugt wurde.
                                      Das solltest Du noch korrigieren und eine saubere Struktur erzeugen.
                                      Früher oder später könnte (wird) Dir sowas auf die Füße fallen.
                                      Ich zitiere mal Brian W. Kernighan: “Don’t comment bad code—rewrite it.”
                                      Spart dann übrigens auch eine Zeile Code ... #2

                                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                      HmIP|ZigBee|Tasmota|Unifi
                                      Zabbix Certified Specialist
                                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                      O 1 Reply Last reply
                                      0
                                      • CodierknechtC Codierknecht

                                        @opöl sagte in Frage zu einem Script und dem genutzten Datenpunkt:

                                        In meinem Fall gibt es tatsächlich einen namenlosen Ordner in den Objekten unterhalb „Sensor“. Wie der dahin kommt, ist mir auch schleierhaft. Daher die beiden „..“. Steht ganz oben im Kommentar meines Scripts.

                                        Der "Geister-Ordner" wird möglicherweise gar nicht existieren, wenn der DP mit genau diesem Tippfehler per Script erzeugt wurde.
                                        Das solltest Du noch korrigieren und eine saubere Struktur erzeugen.
                                        Früher oder später könnte (wird) Dir sowas auf die Füße fallen.
                                        Ich zitiere mal Brian W. Kernighan: “Don’t comment bad code—rewrite it.”
                                        Spart dann übrigens auch eine Zeile Code ... #2

                                        O Offline
                                        O Offline
                                        opöl
                                        wrote on last edited by
                                        #19

                                        @codierknecht ,
                                        der „Geisterordner“ sonoff.0.Stromzähler.SENSOR..Power wurde nicht manuell sondern vom Sonoff Adapter angelegt. Bis ich mit dem Script begonnen habe, ist mir das garnicht aufgefallen.

                                        @ticaki ,
                                        leider muss ich zugeben, dass ich die ersten Gehversuche mit Java Scripts mache. Wärst Du so freundlich, mir das mit dem Log Eintrag in die Feder zu diktieren?

                                        T 1 Reply Last reply
                                        0
                                        • O opöl

                                          @codierknecht ,
                                          der „Geisterordner“ sonoff.0.Stromzähler.SENSOR..Power wurde nicht manuell sondern vom Sonoff Adapter angelegt. Bis ich mit dem Script begonnen habe, ist mir das garnicht aufgefallen.

                                          @ticaki ,
                                          leider muss ich zugeben, dass ich die ersten Gehversuche mit Java Scripts mache. Wärst Du so freundlich, mir das mit dem Log Eintrag in die Feder zu diktieren?

                                          T Do not disturb
                                          T Do not disturb
                                          ticaki
                                          wrote on last edited by
                                          #20

                                          @opöl

                                          die id mußte selbst eintragen.

                                          on('sonoff.0.Stromzähler.SENSOR..Power', function (obj) {
                                              log(obj.state.from);
                                          }); 
                                           
                                          

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          O 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          565

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe