Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. JavaScript
  5. Bitte Hilfe beim Erstellen einer kleinen Programmzeile

NEWS

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    741

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.4k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    5.4k

Bitte Hilfe beim Erstellen einer kleinen Programmzeile

Geplant Angeheftet Gesperrt Verschoben JavaScript
28 Beiträge 2 Kommentatoren 1.8k Aufrufe 1 Beobachtet
  • Ä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.
  • 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.

    ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @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
      schrieb am zuletzt editiert von
      #16

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

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

      ? 1 Antwort Letzte Antwort
      0
      • paul53P paul53

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

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @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
          schrieb am zuletzt editiert von
          #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: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

          ? 1 Antwort Letzte Antwort
          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 ?

            ? Offline
            ? Offline
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von Ein ehemaliger Benutzer
            #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 Antwort Letzte Antwort
            0
            • ? Ein ehemaliger Benutzer

              @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
              schrieb am zuletzt editiert von
              #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: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

              ? 1 Antwort Letzte Antwort
              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.

                ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • ? Ein ehemaliger Benutzer

                  @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
                  schrieb am zuletzt editiert von
                  #22

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

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                  ? 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

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

                    ? Offline
                    ? Offline
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                    #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 Antwort Letzte Antwort
                    0
                    • ? Ein ehemaliger Benutzer

                      @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 Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #24

                      @TH-G
                      Wird der Datenpunkt vom Adapter "stiebel-isg" erzeugt und geschrieben ? Dann erstelle ein Issue auf Github, dass der Wert nur false und true enthalten darf und nicht null.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                      ? 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @TH-G
                        Wird der Datenpunkt vom Adapter "stiebel-isg" erzeugt und geschrieben ? Dann erstelle ein Issue auf Github, dass der Wert nur false und true enthalten darf und nicht null.

                        ? Offline
                        ? Offline
                        Ein ehemaliger Benutzer
                        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                        #25

                        @paul53

                        Das Thema ist schon mehrfach angesprochen worden und es scheint keine Lösung dafür zu geben.

                        So ist es ja für VIS gelöst worden. Kann man daraus nicht etwas auch für das Problem hier nutzen?

                        var Intervall;
                        
                        
                        on({id: "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN"/*KÜHLEN*/, change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          Intervall = setInterval(function () {
                            if (getState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN").val == true) {
                              setState("0_userdata.0.Status_WP"/*Status_WP*/, 'Kühlen', true);
                            } else {
                              setState("0_userdata.0.Status_WP"/*Status_WP*/, 'nicht aktiv', true);
                              (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                            }
                          }, 1000);
                        });
                        
                        

                        z.B. mit dem DP 0_userdata.0.Status_WP

                        Dort gibt es folgende Texteinträge:

                        Kühlen
                        Heizen
                        Warmwasser
                        nicht aktiv

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • ? Ein ehemaliger Benutzer

                          @paul53

                          Das Thema ist schon mehrfach angesprochen worden und es scheint keine Lösung dafür zu geben.

                          So ist es ja für VIS gelöst worden. Kann man daraus nicht etwas auch für das Problem hier nutzen?

                          var Intervall;
                          
                          
                          on({id: "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN"/*KÜHLEN*/, change: "ne"}, function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            Intervall = setInterval(function () {
                              if (getState("stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.KUEHLEN").val == true) {
                                setState("0_userdata.0.Status_WP"/*Status_WP*/, 'Kühlen', true);
                              } else {
                                setState("0_userdata.0.Status_WP"/*Status_WP*/, 'nicht aktiv', true);
                                (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                              }
                            }, 1000);
                          });
                          
                          

                          z.B. mit dem DP 0_userdata.0.Status_WP

                          Dort gibt es folgende Texteinträge:

                          Kühlen
                          Heizen
                          Warmwasser
                          nicht aktiv

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #26

                          @TH-G sagte:

                          mit dem DP 0_userdata.0.Status_WP

                          Dieser Datenpunkt zeigt immer den richtigen Zustand an ? Dann ändere es so:

                          if(getState('0_userdata.0.Status_WP').val == 'Kühlen') grundlast +=  3000;
                          on('0_userdata.0.Status_WP', function(dp) { // triggert bei Änderung des Status
                              if(dp.state.val == 'Kühlen') grundlast += 3000;
                              else grundlast = 550;
                          });
                          

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                          ? 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @TH-G sagte:

                            mit dem DP 0_userdata.0.Status_WP

                            Dieser Datenpunkt zeigt immer den richtigen Zustand an ? Dann ändere es so:

                            if(getState('0_userdata.0.Status_WP').val == 'Kühlen') grundlast +=  3000;
                            on('0_userdata.0.Status_WP', function(dp) { // triggert bei Änderung des Status
                                if(dp.state.val == 'Kühlen') grundlast += 3000;
                                else grundlast = 550;
                            });
                            
                            ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von
                            #27

                            @paul53

                            Ja der stimmte bisher immer :-)

                            Habe ich geändert und keine Fehlermeldung mehr.

                            Ich werde das nun testen

                            Vielen Dank für deine Hilfe und Ausdauert!

                            ? 1 Antwort Letzte Antwort
                            0
                            • ? Ein ehemaliger Benutzer

                              @paul53

                              Ja der stimmte bisher immer :-)

                              Habe ich geändert und keine Fehlermeldung mehr.

                              Ich werde das nun testen

                              Vielen Dank für deine Hilfe und Ausdauert!

                              ? Offline
                              ? Offline
                              Ein ehemaliger Benutzer
                              schrieb am zuletzt editiert von
                              #28

                              @paul53

                              Erste Anwendung hat schon geklappt und die Grundlast wurde erhöht

                              1 Antwort Letzte Antwort
                              0

                              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                              Registrieren Anmelden
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              374

                              Online

                              33.0k

                              Benutzer

                              83.5k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2026
                              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