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. Bitte Hilfe beim Erstellen einer kleinen Programmzeile

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Bitte Hilfe beim Erstellen einer kleinen Programmzeile

Scheduled Pinned Locked Moved JavaScript
28 Posts 2 Posters 1.0k Views 1 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.
  • TH GT TH G

    @paul53

    Danke aber ich kann Grundlast nicht in einen anderen Namen ändern, da es bei Updates immer Probleme geben wird.

    Ja Java Script

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

    @TH-G sagte:

    Grundlast nicht in einen anderen Namen Ist ändern

    Dann kann ich Dir ohne Kenntnis des Scripts nicht helfen.

    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

    TH GT 1 Reply Last reply
    0
    • paul53P paul53

      @TH-G sagte:

      Grundlast nicht in einen anderen Namen Ist ändern

      Dann kann ich Dir ohne Kenntnis des Scripts nicht helfen.

      TH GT Offline
      TH GT Offline
      TH G
      wrote on last edited by
      #5

      @paul53

      Es geht um dieses Skript

      https://raw.githubusercontent.com/Maverick78de/SMA_forecast_charging/master/bat_regelung_2.0.js

      paul53P 1 Reply Last reply
      0
      • TH GT TH G

        @paul53

        Es geht um dieses Skript

        https://raw.githubusercontent.com/Maverick78de/SMA_forecast_charging/master/bat_regelung_2.0.js

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

        @TH-G
        grundlast wird an 2 Stellen verwendet. Wie willst Du das ohne Eingriff in das Script (Update) anpassen ?

        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

        TH GT 1 Reply Last reply
        0
        • paul53P paul53

          @TH-G
          grundlast wird an 2 Stellen verwendet. Wie willst Du das ohne Eingriff in das Script (Update) anpassen ?

          TH GT Offline
          TH GT Offline
          TH G
          wrote on last edited by TH G
          #7

          @paul53

          Ich hatte die Hoffnung, Grundlast einfach zu erhöhen, wenn die Kühlung aktiv ist bzw. wenn nicht, wieder auf den Grundwert zurückzugehen.

          Der statische Teil des Skripts ändert sich in der Regel nicht. Bei Updates muss nur der Teil danach neu rein kopiert werden.

          paul53P 1 Reply Last reply
          0
          • TH GT TH G

            @paul53

            Ich hatte die Hoffnung, Grundlast einfach zu erhöhen, wenn die Kühlung aktiv ist bzw. wenn nicht, wieder auf den Grundwert zurückzugehen.

            Der statische Teil des Skripts ändert sich in der Regel nicht. Bei Updates muss nur der Teil danach neu rein kopiert werden.

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

            @TH-G sagte:

            Der statische Teil des Skripts ändert sich in der Regel nicht. Bei Updates muss nur der Teil danach neu rein kopiert werden.

            "BETRIEBSSTATUS.KUEHLEN" ist aber dynamisch, muss also auch in der zyklischen Funktion ausgewertet werden. Oder Du baust vor der zyklischen Funktion einen Trigger ein.

            if(getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN').val) grundlast +=  3000;
            on('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN', function(dp) {
                if(dp.state.val) grundlast += 3000;
                else grundlast -= 3000;
            });
            

            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

            TH GT 1 Reply Last reply
            0
            • paul53P paul53

              @TH-G sagte:

              Der statische Teil des Skripts ändert sich in der Regel nicht. Bei Updates muss nur der Teil danach neu rein kopiert werden.

              "BETRIEBSSTATUS.KUEHLEN" ist aber dynamisch, muss also auch in der zyklischen Funktion ausgewertet werden. Oder Du baust vor der zyklischen Funktion einen Trigger ein.

              if(getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN').val) grundlast +=  3000;
              on('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN', function(dp) {
                  if(dp.state.val) grundlast += 3000;
                  else grundlast -= 3000;
              });
              
              TH GT Offline
              TH GT Offline
              TH G
              wrote on last edited by
              #9

              @paul53

              Danke

              Das ganze Skript wird doch zyklisch abgefragt

              var Interval = setInterval(function () {
                processing(); /*start processing in interval*/
              }, (update*1000));
              

              Das bedeute doch dann auch, dass die Grundlast ständig angepasst wird oder?

              paul53P 1 Reply Last reply
              0
              • TH GT TH G

                @paul53

                Danke

                Das ganze Skript wird doch zyklisch abgefragt

                var Interval = setInterval(function () {
                  processing(); /*start processing in interval*/
                }, (update*1000));
                

                Das bedeute doch dann auch, dass die Grundlast ständig angepasst wird oder?

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

                @TH-G sagte:

                Das bedeute doch dann auch, dass die Grundlast ständig angepasst wird oder?

                Nicht ständig, sondern nur bei Umschaltung auf "Kühlen". Die Änderung von grundlast muss vor der Deklaration der zyklisch aufgerufenen Funktion processing() erfolgen (vor Zeile 63).

                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

                TH GT 1 Reply Last reply
                0
                • paul53P paul53

                  @TH-G sagte:

                  Das bedeute doch dann auch, dass die Grundlast ständig angepasst wird oder?

                  Nicht ständig, sondern nur bei Umschaltung auf "Kühlen". Die Änderung von grundlast muss vor der Deklaration der zyklisch aufgerufenen Funktion processing() erfolgen (vor Zeile 63).

                  TH GT Offline
                  TH GT Offline
                  TH G
                  wrote on last edited by TH G
                  #11

                  @paul53

                  Sorry Paul wenn ich anstrengend bin aber ich möchte es gerne verstehen.

                  Wenn das gesamte Skript alle 1000 ms abgefragt wird, wird doch auch der Status von Kühlen angefragt oder?

                  Ah ich verstehe. In dem Skript wird erst ab Zeile 63 alle 1000 abgefragt.

                  paul53P 1 Reply Last reply
                  0
                  • TH GT TH G

                    @paul53

                    Sorry Paul wenn ich anstrengend bin aber ich möchte es gerne verstehen.

                    Wenn das gesamte Skript alle 1000 ms abgefragt wird, wird doch auch der Status von Kühlen angefragt oder?

                    Ah ich verstehe. In dem Skript wird erst ab Zeile 63 alle 1000 abgefragt.

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

                    @TH-G sagte:

                    Wenn das gesamte Skript alle 1000 ms abgefragt wird, wird doch auch der Status von Kühlen angefragt oder?

                    Nein, es wird nur die Funktion processing() zyklisch abgearbeitet. Alles davor nicht. Kühlen wird bisher nicht abgefragt, deshalb muss es vor Zeile 63 ergänzt werden.

                    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

                    TH GT 1 Reply Last reply
                    0
                    • paul53P paul53

                      @TH-G sagte:

                      Wenn das gesamte Skript alle 1000 ms abgefragt wird, wird doch auch der Status von Kühlen angefragt oder?

                      Nein, es wird nur die Funktion processing() zyklisch abgearbeitet. Alles davor nicht. Kühlen wird bisher nicht abgefragt, deshalb muss es vor Zeile 63 ergänzt werden.

                      TH GT Offline
                      TH GT Offline
                      TH G
                      wrote on last edited by TH G
                      #13

                      @paul53

                      Wenn ich dein Script nach Zeile 63 einbaue, würde es doch zyklisch abgefragt werden oder?

                      Noch eine andere Frage. Warum steht hinter val kein true? Woher weiss das Skript das Kühlung aktiv ist?

                      paul53P 1 Reply Last reply
                      0
                      • TH GT TH G

                        @paul53

                        Wenn ich dein Script nach Zeile 63 einbaue, würde es doch zyklisch abgefragt werden oder?

                        Noch eine andere Frage. Warum steht hinter val kein true? Woher weiss das Skript das Kühlung aktiv ist?

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

                        @TH-G sagte:

                        Wenn ich dein Script nach Zeile 63 einbaue, würde es doch zyklisch abgefragt werden oder?

                        Ja, das wäre aber kontraproduktiv. Mein Vorschlag passt die Variable grundlast per Trigger an, wenn sich der Status von Kühlen ändert. Bau es anstelle der leeren Zeile 62 ein.

                        if(getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN').val) grundlast +=  3000;
                        on('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN', function(dp) { // triggert bei Änderung des Status Kühlen
                            if(dp.state.val) grundlast += 3000;
                            else grundlast -= 3000;
                        });
                        
                        // ab hier Programmcode, nichts ändern!
                        function processing() {
                        

                        @TH-G sagte in Bitte Hilfe beim Erstellen einer kleinen Programmzeile:

                        Woher weiss das Skript das Kühlung aktiv ist?

                        Weil dann der Wert des Datenpunktes true ist.

                        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

                        TH GT 1 Reply Last reply
                        0
                        • paul53P paul53

                          @TH-G sagte:

                          Wenn ich dein Script nach Zeile 63 einbaue, würde es doch zyklisch abgefragt werden oder?

                          Ja, das wäre aber kontraproduktiv. Mein Vorschlag passt die Variable grundlast per Trigger an, wenn sich der Status von Kühlen ändert. Bau es anstelle der leeren Zeile 62 ein.

                          if(getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN').val) grundlast +=  3000;
                          on('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN', function(dp) { // triggert bei Änderung des Status Kühlen
                              if(dp.state.val) grundlast += 3000;
                              else grundlast -= 3000;
                          });
                          
                          // ab hier Programmcode, nichts ändern!
                          function processing() {
                          

                          @TH-G sagte in Bitte Hilfe beim Erstellen einer kleinen Programmzeile:

                          Woher weiss das Skript das Kühlung aktiv ist?

                          Weil dann der Wert des Datenpunktes true ist.

                          TH GT Offline
                          TH GT Offline
                          TH G
                          wrote on last edited by
                          #15

                          @paul53

                          Habe ich in Zeile 62 eingefügt. Folgende Warnung kommt dann:

                          7.8.2020, 16:14:46.668 [info ]: javascript.0 (31544) Stop script script.js.common.SMA_Bat_Regelung_2_1
                          7.8.2020, 16:14:46.682 [info ]: javascript.0 (31544) Start javascript script.js.common.SMA_Bat_Regelung_2_1
                          7.8.2020, 16:14:46.731 [warn ]: javascript.0 (31544) at script.js.common.SMA_Bat_Regelung_2_1:62:4
                          7.8.2020, 16:14:46.735 [info ]: javascript.0 (31544) script.js.common.SMA_Bat_Regelung_2_1: registered 1 subscription and 0 schedules

                          paul53P 1 Reply Last reply
                          0
                          • TH GT TH G

                            @paul53

                            Habe ich in Zeile 62 eingefügt. Folgende Warnung kommt dann:

                            7.8.2020, 16:14:46.668 [info ]: javascript.0 (31544) Stop script script.js.common.SMA_Bat_Regelung_2_1
                            7.8.2020, 16:14:46.682 [info ]: javascript.0 (31544) Start javascript script.js.common.SMA_Bat_Regelung_2_1
                            7.8.2020, 16:14:46.731 [warn ]: javascript.0 (31544) at script.js.common.SMA_Bat_Regelung_2_1:62:4
                            7.8.2020, 16:14:46.735 [info ]: javascript.0 (31544) script.js.common.SMA_Bat_Regelung_2_1: registered 1 subscription and 0 schedules

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

                            @TH-G
                            Ich hatte getState falsch geschrieben (inzwischen korrigiert).

                            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

                            TH GT 1 Reply Last reply
                            0
                            • paul53P paul53

                              @TH-G
                              Ich hatte getState falsch geschrieben (inzwischen korrigiert).

                              TH GT Offline
                              TH GT Offline
                              TH G
                              wrote on last edited by
                              #17

                              @paul53

                              Warnung ist immer noch da:

                              // PV-WR Register Definition, nur bei Bedarf anpassen
                                var PV_Dev_Type = ModBusPV + ".inputRegisters.30053_DevTypeId", /*Typnummer*/
                                    PVWR_limit = ModBusPV + ".holdingRegisters.41255_WNomPrc";
                                    
                              if(getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN').val) grundlast +=  3000;
                              on('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN', function(dp) { // triggert bei Änderung des Status Kühlen
                                  if(dp.state.val) grundlast += 3000;
                                  else grundlast -= 3000;
                              });
                              
                              // ab hier Programmcode, nichts ändern!
                              function processing() {
                              // Start der Parametrierung
                              
                              
                              paul53P 1 Reply Last reply
                              0
                              • TH GT TH G

                                @paul53

                                Warnung ist immer noch da:

                                // PV-WR Register Definition, nur bei Bedarf anpassen
                                  var PV_Dev_Type = ModBusPV + ".inputRegisters.30053_DevTypeId", /*Typnummer*/
                                      PVWR_limit = ModBusPV + ".holdingRegisters.41255_WNomPrc";
                                      
                                if(getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN').val) grundlast +=  3000;
                                on('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN', function(dp) { // triggert bei Änderung des Status Kühlen
                                    if(dp.state.val) grundlast += 3000;
                                    else grundlast -= 3000;
                                });
                                
                                // ab hier Programmcode, nichts ändern!
                                function processing() {
                                // Start der Parametrierung
                                
                                
                                paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by
                                #18

                                @TH-G sagte:

                                Warnung ist immer noch da

                                Schau mal im Tab "Log" nach. Dort gibt es meist mehr Informationen. Ist die Datenpunkt-ID richtig geschrieben ?

                                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

                                TH GT 1 Reply Last reply
                                0
                                • paul53P paul53

                                  @TH-G sagte:

                                  Warnung ist immer noch da

                                  Schau mal im Tab "Log" nach. Dort gibt es meist mehr Informationen. Ist die Datenpunkt-ID richtig geschrieben ?

                                  TH GT Offline
                                  TH GT Offline
                                  TH G
                                  wrote on last edited by TH G
                                  #19

                                  @paul53

                                  Ja der DP ist richtig: stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN

                                  javascript.0 2020-08-07 16:25:44.150 warn (31544) at script.js.common.SMA_Bat_Regelung_2_1:62:4
                                  javascript.0 2020-08-07 16:25:44.145 warn (31544) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN" not found (3)

                                  paul53P 1 Reply Last reply
                                  0
                                  • TH GT TH G

                                    @paul53

                                    Ja der DP ist richtig: stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN

                                    javascript.0 2020-08-07 16:25:44.150 warn (31544) at script.js.common.SMA_Bat_Regelung_2_1:62:4
                                    javascript.0 2020-08-07 16:25:44.145 warn (31544) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN" not found (3)

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

                                    @TH-G sagte:

                                    "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN" not found (3)

                                    Die Warnung sagt aus, dass der Datenpunkt nicht gefunden wurde.

                                    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

                                    TH GT 1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @TH-G sagte:

                                      "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN" not found (3)

                                      Die Warnung sagt aus, dass der Datenpunkt nicht gefunden wurde.

                                      TH GT Offline
                                      TH GT Offline
                                      TH G
                                      wrote on last edited by
                                      #21

                                      @paul53

                                      Verstehe aber er ist da und nutze diesen auch für VIS und da wird es richtig angezeigt.

                                      Der DP ist auch über die Kopierfuktion kopiert worden, damit es keine Schreibfehler gibt.

                                      paul53P 1 Reply Last reply
                                      0
                                      • TH GT TH G

                                        @paul53

                                        Verstehe aber er ist da und nutze diesen auch für VIS und da wird es richtig angezeigt.

                                        Der DP ist auch über die Kopierfuktion kopiert worden, damit es keine Schreibfehler gibt.

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

                                        @TH-G
                                        Poste mal die RAW-Ansicht des Objektes in Code tags.

                                        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

                                        TH GT 1 Reply Last reply
                                        0
                                        • paul53P paul53

                                          @TH-G
                                          Poste mal die RAW-Ansicht des Objektes in Code tags.

                                          TH GT Offline
                                          TH GT Offline
                                          TH G
                                          wrote on last edited by TH G
                                          #23

                                          @paul53

                                          Hallo Paul,

                                          es gab für VIS damals auch das Problem, das es nicht möglich ist, ein leeres Feld zu triggern. Kann das hier auch das Problem sein?

                                          https://forum.iobroker.net/topic/34677/triggern-dp-ohne-wert-nicht-möglich-true-leer-stiebel-isg/53

                                          AlCalzone schrieb damals dazu:

                                          Der Adapter nutzt die expire-Funktion, um states automatisch nach gewisser Zeit zurück (auf null) zu setzen. Scheint als bekommt der JS-Adapter diese Änderung nicht mit.

                                          {
                                            "from": "system.adapter.stiebel-isg.0",
                                            "user": "system.user.admin",
                                            "ts": 1592375626112,
                                            "common": {
                                              "name": "KÜHLEN",
                                              "type": "boolean",
                                              "unit": "",
                                              "role": "indicator.state",
                                              "read": true,
                                              "write": false
                                            },
                                            "native": {},
                                            "acl": {
                                              "object": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator",
                                              "state": 1636
                                            },
                                            "_id": "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN",
                                            "type": "state"
                                          }
                                          
                                          paul53P 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

                                          401

                                          Online

                                          32.7k

                                          Users

                                          82.3k

                                          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