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. Skript schreibt nicht in Datenpunkte

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Skript schreibt nicht in Datenpunkte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
17 Beiträge 7 Kommentatoren 967 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.
  • F Fraenki23

    Hallo
    Ich such seit einigere Zeit ein Skript am liebsten Blockly das meinen momentanen Stromzählerstand
    auswertet und mir den Verbrauch Stunde Tag Monat Jahr in einen Datenpunkt schreibt.
    Am liebsten wäre es mir gewesen wenn ich für jede Stunde oder Tag einen Datenpunkt hätte um meinen Verbrauch auf die Schliche zu kommen.
    Im Moment teste ich ein Skript aus dem Netz das aber meine Datenpunkte die es angelegt hat werden mit dem Skript nicht gefüllt. Mein Datenpunkt vom Stromzähler erhöht sich wie er es soll. smartmeter.0.1-0:1_8_0__255.value
    Bin dankbar für jede Hilfe

    var cronH           = "0 * * * *";
    var cronD           = "59 23 * * *";
    var cronW           = "0 0 * * 1";
    var cronM           = "0 0 1 * *";
    var idHAGTotH       = "0_userdata.0.Stromzähler.tmp.Total-h";
    var idHAGTotD       = "0_userdata.0.Stromzähler.tmp.Total-d";
    var idHAGTotW       = "0_userdata.0.Stromzähler.tmp.Total-w";
    var idHAGTotM       = "0_userdata.0.Stromzähler.tmp.Total-m";
    var idHAGTotal      = "smartmeter.0.1-0:1_8_0__255.value";               /*Stromverbrauch insgesammt*/
    var idHAGZielH      = "0_userdata.0.Stromzähler.Hour";
    var idHAGZielD      = "0_userdata.0.Stromzähler.Day";
    var idHAGZielW      = "0_userdata.0.Stromzähler.Week";
    var idHAGZielM      = "0_userdata.0.Stromzähler.Month";
    var debug           = false;
    var DPArray         = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM];
    var DPUnit          = "kWh";
    DPArray.forEach(function(wert, index, array) {
        var DPType = wert.split(".");
        var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);
     
        if(index > 3) DPUnit = "Wh";
        createState(wert, 0, {
            name: DPDescr,
            desc: DPDescr,
            type: 'number',
            unit: DPUnit,
            role: 'value'
        });
    });
    function haupt (VorId, ZielId) {
        var nVorwert = getState(VorId).val;
        var nAktuell = getState(idHAGTotal).val;
        var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
        setState(ZielId, nDiff, true);
        if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
        var shandler = on ({id: ZielId, change: 'any'}, function(data) {
            setState(VorId, (nAktuell*10)/10, true);
            unsubscribe(shandler); 
        });
    }
    // regelmässige Wiederholungen
    // -----------------------------------------------------------------------------
    schedule(cronH, function () {
        haupt(idHAGTotH, idHAGZielH);
    });
    schedule(cronD, function () {
        haupt(idHAGTotD, idHAGZielD);
    });
    schedule(cronW, function () {
        haupt(idHAGTotW, idHAGZielW);
    });
    schedule(cronM, function () {
        haupt(idHAGTotM, idHAGZielM);
    });
    
    
    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von
    #4

    @fraenki23
    Probier mal den Adapter "SourceAnalytics".
    Der ist genau für diese Aufgabenstellung gemacht.

    "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

    F 1 Antwort Letzte Antwort
    0
    • bahnuhrB bahnuhr

      @fraenki23 sagte in Skript schreibt nicht in Datenpunkte:

      var shandler = on ({id: ZielId, change: 'any'}, function(data) {                                                                                                                                                                                    setState(VorId, (nAktuell*10)/10, true);                                                                                                                                                                                    unsubscribe(shandler);                                                                                                                                                                                 });
      

      On ist doch ein trigger.
      Wieso setzt du dieses einer Variable gleich ?

      F Offline
      F Offline
      Fraenki23
      schrieb am zuletzt editiert von
      #5

      @bahnuhr Hallo
      Danke für deine Antwort. Ich habe nur das Skript aus dem Netz mit meinem Datenpunkt vom Stromzähler gefüllt. Der Rest sollte funktionieren. Wie Du aber schreibst kann er nicht.
      Könntest Du das Skript an dieser Stelle ändern dass es funktionieren sollte.
      Danke Fränki

      bahnuhrB 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @fraenki23
        Probier mal den Adapter "SourceAnalytics".
        Der ist genau für diese Aufgabenstellung gemacht.

        F Offline
        F Offline
        Fraenki23
        schrieb am zuletzt editiert von
        #6

        @codierknecht Hallo
        Danke für den Tip. Habe ich auch schon am laufen. Leider mit komischen Werten .
        Danke Fränki

        1 Antwort Letzte Antwort
        0
        • F Fraenki23

          @bahnuhr Hallo
          Danke für deine Antwort. Ich habe nur das Skript aus dem Netz mit meinem Datenpunkt vom Stromzähler gefüllt. Der Rest sollte funktionieren. Wie Du aber schreibst kann er nicht.
          Könntest Du das Skript an dieser Stelle ändern dass es funktionieren sollte.
          Danke Fränki

          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #7

          @fraenki23 sagte in Skript schreibt nicht in Datenpunkte:

          Skript aus dem Netz

          woher ?
          Und das war ein Script für iob?


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          F 1 Antwort Letzte Antwort
          0
          • F Fraenki23

            Hallo
            Ich such seit einigere Zeit ein Skript am liebsten Blockly das meinen momentanen Stromzählerstand
            auswertet und mir den Verbrauch Stunde Tag Monat Jahr in einen Datenpunkt schreibt.
            Am liebsten wäre es mir gewesen wenn ich für jede Stunde oder Tag einen Datenpunkt hätte um meinen Verbrauch auf die Schliche zu kommen.
            Im Moment teste ich ein Skript aus dem Netz das aber meine Datenpunkte die es angelegt hat werden mit dem Skript nicht gefüllt. Mein Datenpunkt vom Stromzähler erhöht sich wie er es soll. smartmeter.0.1-0:1_8_0__255.value
            Bin dankbar für jede Hilfe

            var cronH           = "0 * * * *";
            var cronD           = "59 23 * * *";
            var cronW           = "0 0 * * 1";
            var cronM           = "0 0 1 * *";
            var idHAGTotH       = "0_userdata.0.Stromzähler.tmp.Total-h";
            var idHAGTotD       = "0_userdata.0.Stromzähler.tmp.Total-d";
            var idHAGTotW       = "0_userdata.0.Stromzähler.tmp.Total-w";
            var idHAGTotM       = "0_userdata.0.Stromzähler.tmp.Total-m";
            var idHAGTotal      = "smartmeter.0.1-0:1_8_0__255.value";               /*Stromverbrauch insgesammt*/
            var idHAGZielH      = "0_userdata.0.Stromzähler.Hour";
            var idHAGZielD      = "0_userdata.0.Stromzähler.Day";
            var idHAGZielW      = "0_userdata.0.Stromzähler.Week";
            var idHAGZielM      = "0_userdata.0.Stromzähler.Month";
            var debug           = false;
            var DPArray         = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM];
            var DPUnit          = "kWh";
            DPArray.forEach(function(wert, index, array) {
                var DPType = wert.split(".");
                var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);
             
                if(index > 3) DPUnit = "Wh";
                createState(wert, 0, {
                    name: DPDescr,
                    desc: DPDescr,
                    type: 'number',
                    unit: DPUnit,
                    role: 'value'
                });
            });
            function haupt (VorId, ZielId) {
                var nVorwert = getState(VorId).val;
                var nAktuell = getState(idHAGTotal).val;
                var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
                setState(ZielId, nDiff, true);
                if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
                var shandler = on ({id: ZielId, change: 'any'}, function(data) {
                    setState(VorId, (nAktuell*10)/10, true);
                    unsubscribe(shandler); 
                });
            }
            // regelmässige Wiederholungen
            // -----------------------------------------------------------------------------
            schedule(cronH, function () {
                haupt(idHAGTotH, idHAGZielH);
            });
            schedule(cronD, function () {
                haupt(idHAGTotD, idHAGZielD);
            });
            schedule(cronW, function () {
                haupt(idHAGTotW, idHAGZielW);
            });
            schedule(cronM, function () {
                haupt(idHAGTotM, idHAGZielM);
            });
            
            
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #8

            @fraenki23
            Wozu soll der Trigger in der Funktion gut sein? Die Klammern sind auch umsonst, wenn nicht gerundet wird. Vorschlag:

            function haupt (VorId, ZielId) {
                var nVorwert = getState(VorId).val;
                var nAktuell = getState(idHAGTotal).val;
                var nDiff = (nAktuell - nVorwert) * 1000;
                setState(ZielId, nDiff, true);
                if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
                setState(VorId, nAktuell, true);
            }
            

            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

            1 Antwort Letzte Antwort
            0
            • bahnuhrB bahnuhr

              @fraenki23 sagte in Skript schreibt nicht in Datenpunkte:

              Skript aus dem Netz

              woher ?
              Und das war ein Script für iob?

              F Offline
              F Offline
              Fraenki23
              schrieb am zuletzt editiert von Homoran
              #9

              @bahnuhr Hallo
              Hier der Link: https://www.smarthomejetzt.de/script-fuer-die-berechnung-von-stunden-tages-wochen-monats-und-jahresverbraeuchen/

              MOD-EDIT: externen Link sichtbar gemacht

              bahnuhrB HomoranH 2 Antworten Letzte Antwort
              0
              • F Fraenki23

                @bahnuhr Hallo
                Hier der Link: https://www.smarthomejetzt.de/script-fuer-die-berechnung-von-stunden-tages-wochen-monats-und-jahresverbraeuchen/

                MOD-EDIT: externen Link sichtbar gemacht

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #10

                @fraenki23 sagte in Skript schreibt nicht in Datenpunkte:

                @bahnuhr Hallo
                Hier der Link Skript Stromzähler geht nicht

                Tja, wieder ein Beispiel für ein Script aus dem Netz was offensichtlich nicht läuft.


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • F Fraenki23

                  @bahnuhr Hallo
                  Hier der Link: https://www.smarthomejetzt.de/script-fuer-die-berechnung-von-stunden-tages-wochen-monats-und-jahresverbraeuchen/

                  MOD-EDIT: externen Link sichtbar gemacht

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

                  @fraenki23 externe Links immer kennzeichnen!!

                  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 -

                  F 1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @fraenki23 externe Links immer kennzeichnen!!

                    F Offline
                    F Offline
                    Fraenki23
                    schrieb am zuletzt editiert von
                    #12

                    @homoran wie kenzeichne ich dies. Im Textfeld für den Link exteren Quelle reinschreiben?

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • F Fraenki23

                      @homoran wie kenzeichne ich dies. Im Textfeld für den Link exteren Quelle reinschreiben?

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

                      @fraenki23 sagte in Skript schreibt nicht in Datenpunkte:

                      @homoran wie kenzeichne ich dies. Im Textfeld für den Link exteren Quelle reinschreiben?

                      ich hab es mal geändert

                      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
                      • V Offline
                        V Offline
                        valbuz
                        schrieb am zuletzt editiert von
                        #14

                        Das Skript addiert die Verbrauchs-Tageswerte.
                        Ich habe jedoch nur die Möglichkeit den aktuellen Hausverbrauch abzufragen.

                        Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
                        Ev. auch ein anderes Skript etc.

                        Danke für Eur eHilfe.

                        Patrick

                        2xProxmox auf NUC
                        E3DC 13kWh Speicher via RCSP an ioBroker

                        CodierknechtC 1 Antwort Letzte Antwort
                        0
                        • V valbuz

                          Das Skript addiert die Verbrauchs-Tageswerte.
                          Ich habe jedoch nur die Möglichkeit den aktuellen Hausverbrauch abzufragen.

                          Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
                          Ev. auch ein anderes Skript etc.

                          Danke für Eur eHilfe.

                          Patrick

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von Codierknecht
                          #15

                          @valbuz sagte in Skript schreibt nicht in Datenpunkte:

                          Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
                          Ev. auch ein anderes Skript etc.

                          Adapter SourceAnalytics
                          18161aab-2e43-4e05-a2d4-07272e2e0b78-image.png

                          "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

                          V 2 Antworten Letzte Antwort
                          0
                          • CodierknechtC Codierknecht

                            @valbuz sagte in Skript schreibt nicht in Datenpunkte:

                            Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
                            Ev. auch ein anderes Skript etc.

                            Adapter SourceAnalytics
                            18161aab-2e43-4e05-a2d4-07272e2e0b78-image.png

                            V Offline
                            V Offline
                            valbuz
                            schrieb am zuletzt editiert von
                            #16

                            @codierknecht Danke, schau ich mir an.

                            2xProxmox auf NUC
                            E3DC 13kWh Speicher via RCSP an ioBroker

                            1 Antwort Letzte Antwort
                            0
                            • CodierknechtC Codierknecht

                              @valbuz sagte in Skript schreibt nicht in Datenpunkte:

                              Gibt es dazu auch ne Möglichkeit dennoch den täglichen Verbrauch zu erhalten?
                              Ev. auch ein anderes Skript etc.

                              Adapter SourceAnalytics
                              18161aab-2e43-4e05-a2d4-07272e2e0b78-image.png

                              V Offline
                              V Offline
                              valbuz
                              schrieb am zuletzt editiert von valbuz
                              #17

                              @codierknecht
                              Habe mir den Adapter nun installiert und konfiguriert.
                              Es sollten nun 3 Werte berechnet werden.

                              In den Objekten finde ich seit gestern keine Einträge :angry:
                              Dachte ich warte sicherlich mal das Ende des Tages ab.
                              Aber weiterhin keine Einträge vorhanden....

                              Gibt's da noch einen fehlende Eintrag zum aktivieren?

                              Danke
                              pat

                              Update: Alias deaktiviert!

                              2xProxmox auf NUC
                              E3DC 13kWh Speicher via RCSP an ioBroker

                              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

                              751

                              Online

                              32.6k

                              Benutzer

                              82.2k

                              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