Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter stiebel-isg v1.4.x GitHub

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter stiebel-isg v1.4.x GitHub

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SaschaS @maodch last edited by

      @maodch @unltdnetworx

      Moin zusammen,
      ich glaube ich habe mit einem ähnlichen Problemkind zu kämpfen. Wenn ich versuche Daten mit "getState().val" bzw. "getState().ack" abzugreifen und die Datenpunkte vom stiebel-isg Adapter nicht belegt werden, weil im Moment der Abfrage die Variable vom ISG nicht benutzt wird, dann wird im Datenpunkt kein Wert bzw. auch nicht "false" eingetragen.

      Beispiel:

      console.log('Ausgabe1: ' + getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN').ack);
      console.log('Ausgabe2: ' + getState('stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV').ack);
      

      liefert:

      19:16:14.337	info	javascript.0 (25315) Stop script script.js.ISG.Test
      19:16:14.448	info	javascript.0 (25315) Start javascript script.js.ISG.Test
      19:16:14.464	warn	javascript.0 (25315) at script.js.ISG.Test:1:28
      19:16:14.465	info	javascript.0 (25315) script.js.ISG.Test: Ausgabe1: undefined
      19:16:14.465	info	javascript.0 (25315) script.js.ISG.Test: Ausgabe2: true
      19:16:14.465	info	javascript.0 (25315) script.js.ISG.Test: registered 0 subscriptions and 0 schedules
      

      Gibt es denn die Möglichkeit adapterseitig ein "false" zu setzen, wenn Datenpunkte vom ISG nicht belegt werden? Andere Lösungswege sind auch willkommen.

      unltdnetworx 1 Reply Last reply Reply Quote 0
      • unltdnetworx
        unltdnetworx Developer @SaschaS last edited by unltdnetworx

        @SaschaS
        Das geht leider nicht, weil die Werte im ISG nicht auf einen bestimmten Wert gesetzt werden, sondern einfach nicht mehr auftauchen.

        Das Problem wurde schon mal in diesem oder einem anderen Thread erörtert. Du könntest z.B. die letzte Änderung auswerten. Die Werte verfallen im Moment nach der doppelten Abrufzeit. Alternativ mit einem Script bei undefined auf false setzen.

        1 Reply Last reply Reply Quote 0
        • M
          maodch last edited by

          @SaschaS

          Musste es auch schmerzhaft lösen, aber es tut so:
          if(wertvonisg == null){WriteLog("NULL wurde von der ISG gemeldet",2);}

          sprich, halte die Daten (letzte Version) selber vor, und wenn die neuen Daten "null" sind, verwende die alten, bis du neue bekommst.

          Aber schon komisch, das Thema hat sich erst seit geringer Zeit aufgetan, au meinen alten Raspis läuft das ohne zu motzen, ausser, wenn der Adapter neu gestartet wird, taucht die gleiche Meldungsliste auf, dann aber nie mehr.

          unltdnetworx 1 Reply Last reply Reply Quote 0
          • unltdnetworx
            unltdnetworx Developer @maodch last edited by

            @maodch
            Hast du die PN gelesen?

            M 1 Reply Last reply Reply Quote 0
            • M
              maodch @unltdnetworx last edited by

              @unltdnetworx
              Sorry, erst jetzt. Danke.

              1 Reply Last reply Reply Quote 0
              • S
                SaschaS last edited by

                @maodch @unltdnetworx
                Erst einmal Danke für die schnelle Antwort. Ich scheue mich noch ein wenig auf Grund meiner Unerfahrenheit in geladene Adapter (also den Stiebel-ISG) einzugreifen und Datenpunkte zu beschreiben.

                Auch bin ich verwirrt, wo ich obigen Code zu implimentieren habe. Die If-Abfrage müsste doch dann auch in die schedule() mit rein. Dann erhalte ich doch auch nach Ablauf der Zeit wieder eine Warnung im Log. Könnt ihr noch einmal weiterhelfen. Danke 🙂

                Bislang sieht mein Code so aus:

                schedule("* * * * *", function () {
                    const HEIZKREISPUMPE = "stiebel-isg.0.Info.IST_SOLLWERTE.STATUS.HEIZKREISPUMPE";
                    var VORLAUFTEMP = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP').val;
                    var RÜCKLAUFTEMP = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.RÜCKLAUFTEMP').val;
                    var SPREIZUNG = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG').val;
                    var ISTWERT_HK1 = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.ISTWERT_HK1').val;
                    var VOLUMENSTROM = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VOLUMENSTROM').val;
                    //var HEIZKREISPUMPE = false;
                
                    // pump active, valid temperatures only
                    if (getState(HEIZKREISPUMPE).notExist) {
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VORLAUFTEMP',0,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_RÜCKLAUFTEMP',0,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_SPREIZUNG',0,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_ISTWERT_HK1',0,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VOLUMENSTROM',0,true);
                    
                    console.log("Die HKP läuft aktuell nicht. ");
                    }
                    else
                    {
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VORLAUFTEMP',VORLAUFTEMP,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_RÜCKLAUFTEMP',RÜCKLAUFTEMP,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_SPREIZUNG',SPREIZUNG,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_ISTWERT_HK1',ISTWERT_HK1,true);
                    setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VOLUMENSTROM',VOLUMENSTROM,true);
                
                    console.log("Die HKP ist aktiv. Die VL beträgt " + VORLAUFTEMP);    
                    }; 
                }; 
                
                unltdnetworx 1 Reply Last reply Reply Quote 0
                • unltdnetworx
                  unltdnetworx Developer @SaschaS last edited by unltdnetworx

                  @SaschaS
                  Am Besten erstellst du eigene Datenpunkte. Die Info Datenpunkte im ISG sind ohnehin nicht beschreibbar.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    SaschaS @unltdnetworx last edited by

                    @unltdnetworx Habe ich ja bereits größtenteils. Würde ich auch beibehalten. Aber ich muss ja mit getsState() auf die Heizkreispumpe vom Adapter zugreifen. Und wenn diese keinen Wert verzeichnet, dann gibt es doch die Warnung im Log.

                    unltdnetworx 1 Reply Last reply Reply Quote 0
                    • unltdnetworx
                      unltdnetworx Developer last edited by

                      Es gibt jetzt eine neue Version im Masterbranch. Es werden nun zusätzliche Felder aus bestimmten Heizungen unterstützt. Basierend auf der WPL25A.

                      Wer kann, bitte gerne testen und hier kurzes Feedback geben.

                      1 Reply Last reply Reply Quote 0
                      • unltdnetworx
                        unltdnetworx Developer @SaschaS last edited by

                        @SaschaS
                        Der Fehler kommt aus deinem Script, richtig?

                        Du könntest es mit try und catch versuchen.

                        Etwa so:

                        try {
                           var VORLAUFTEMP = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP').val;
                           setState('eigenerDatenpunkt',VORLAUFTEMP,true);
                        }
                        catch  (e) {
                           setState('eigenerDatenpunkt',0,true);
                        }
                        
                        S 1 Reply Last reply Reply Quote 0
                        • M
                          maodch last edited by

                          @unltdnetworx

                          Also, ich habe das Update nun rund 24h getestet und hatte keine Zwischenfälle.
                          Auch die Werte wurden vom System mehrmals verändert und funktionierten.

                          Also von meiner Seite aus, super Arbeit👍 👍 👍

                          1 Reply Last reply Reply Quote 0
                          • M
                            maodch last edited by

                            @unltdnetworx

                            mir ist jetzt im Langzeitbetrieb noch etwas aufgefallen.
                            Alle states motzen nicht mehr, ausser :
                            getState "stiebel-isg.0.Info.ANLAGE.HEIZUNG.AUSSENTEMPERATUR" not found (3)

                            Immer der, egal was du davon willst, der schlägt auf.
                            In der alten Version macht dieser State keinen Mux, in der neuen, immer trouble.
                            Kannst du das ev. noch fixen?

                            unltdnetworx 1 Reply Last reply Reply Quote 0
                            • unltdnetworx
                              unltdnetworx Developer @maodch last edited by unltdnetworx

                              @maodch
                              Werden da denn Werte bei dir geschrieben? Ich denke, bei mir wird der aktualisiert.
                              Evtl. den Wert mal löschen. Wird er dann neu erzeugt?

                              1 Reply Last reply Reply Quote 0
                              • unltdnetworx
                                unltdnetworx Developer last edited by unltdnetworx

                                Bei mir heißt der Wert stiebel-isg.0.Info.ANLAGE.HEIZEN.AUSSENTEMPERATUR und wird sowohl neu erstellt, als auch aktualisiert. 🕵️‍♂️

                                1 Reply Last reply Reply Quote 0
                                • M
                                  maodch last edited by

                                  @unltdnetworx

                                  Habe den State gelöscht, und er kam wieder, aber genau gleich.
                                  Interessant ist aber, dass der State der einzige ist der Gross/Klein geschrieben wird, alle anderen sind UPPERCASE.

                                  Habe selbes auch auf meinem Backupsystem, eim Raspy4. Auch dort, sieht der State genau gleich aus.

                                  ![Bild Text](3c1d465d-9d45-467b-9052-af75d556525f-grafik.png Bild Link)

                                  1 Reply Last reply Reply Quote 0
                                  • unltdnetworx
                                    unltdnetworx Developer last edited by

                                    Wegen der Groß-/Kleinschreibung hatte ich ursprünglich mal angefangen, die Namen zu übersetzen auch auf Englisch. Aber mit immer mehr Dynamik hab ich das wieder entfernt und offensichtlich den Eintrag vergessen.

                                    Hat aber keine Auswirkungen.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      SaschaS @unltdnetworx last edited by

                                      @unltdnetworx try und catch bringen nichts. Sobald ich getState().val verwende und bei den unten abgebildeten Werten kein State vorhanden ist, erhalte ich Warnings im Log. Egal ob getstate().val/.lc/.ack/.q/ts

                                      javascript.0	2020-02-01 15:14:36.341	warn	(25315) at script.js.ISG.Test:5:28
                                      javascript.0	2020-02-01 15:14:36.341	warn	(25315) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZKREISPUMPE" not found (3)
                                      javascript.0	2020-02-01 15:14:36.340	info	(25315) script.js.ISG.Test: Ausgabe5: undefined
                                      javascript.0	2020-02-01 15:14:36.340	warn	(25315) at script.js.ISG.Test:4:28
                                      javascript.0	2020-02-01 15:14:36.339	warn	(25315) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZKREISPUMPE" not found (3)
                                      javascript.0	2020-02-01 15:14:36.339	info	(25315) script.js.ISG.Test: Ausgabe3: undefined
                                      javascript.0	2020-02-01 15:14:36.339	warn	(25315) at script.js.ISG.Test:3:28
                                      javascript.0	2020-02-01 15:14:36.338	warn	(25315) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZKREISPUMPE" not found (3)
                                      javascript.0	2020-02-01 15:14:36.338	info	(25315) script.js.ISG.Test: Ausgabe2: null
                                      javascript.0	2020-02-01 15:14:36.337	warn	(25315) at script.js.ISG.Test:2:28
                                      javascript.0	2020-02-01 15:14:36.337	warn	(25315) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZKREISPUMPE" not found (3)
                                      javascript.0	2020-02-01 15:14:36.336	info	(25315) script.js.ISG.Test: Ausgabe1: undefined
                                      javascript.0	2020-02-01 15:14:36.336	warn	(25315) at script.js.ISG.Test:1:28
                                      javascript.0	2020-02-01 15:14:36.335	warn	(25315) getState "stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZKREISPUMPE" not found (3)
                                      

                                      Wurden in früheren Versionen vom Adapter für das ISG nicht auch "false"-Werte geschrieben?

                                      bd623804-69d8-43fb-97cf-68f9a15fa68a-image.png

                                      unltdnetworx 1 Reply Last reply Reply Quote 0
                                      • unltdnetworx
                                        unltdnetworx Developer @SaschaS last edited by

                                        @SaschaS
                                        Nein, können sie nicht, weil das ISG den Wert einfach nicht mehr anzeigt. Daher kann ich ihn auch nicht auf false setzen lassen.

                                        Zeig bitte mal deinen Code.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          SaschaS @unltdnetworx last edited by

                                          @unltdnetworx
                                          Hm..ist ja doof.

                                          Mein Code ist noch am Entstehen. Prinzipiell geht es mir aber darum, dass ich auf Änderungen von stiebel-isg.0.Info.IST_SOLLWERTE.STATUS.HEIZKREISPUMPE oder stiebel-isg.0.Info.IST_SOLLWERTE.STATUS.HEIZEN reagieren möchte. Ist dazu greife ich eben mit getState() auf die Variable vom ISG Adapter zu.

                                          schedule("* * * * *", function () {
                                              const HEIZKREISPUMPE = "stiebel-isg.0.Info.IST_SOLLWERTE.STATUS.HEIZKREISPUMPE";
                                              var VORLAUFTEMP = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP').val;
                                              var RÜCKLAUFTEMP = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.RÜCKLAUFTEMP').val;
                                              var SPREIZUNG = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG').val;
                                              var ISTWERT_HK1 = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.ISTWERT_HK1').val;
                                              var VOLUMENSTROM = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VOLUMENSTROM').val;
                                              //var HEIZKREISPUMPE = false;
                                           
                                              // pump active, valid temperatures only
                                              if (getState(HEIZKREISPUMPE).notExist) {
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VORLAUFTEMP',0,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_RÜCKLAUFTEMP',0,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_SPREIZUNG',0,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_ISTWERT_HK1',0,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VOLUMENSTROM',0,true);
                                              
                                              console.log("Die HKP läuft aktuell nicht. ");
                                              }
                                              else
                                              {
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VORLAUFTEMP',VORLAUFTEMP,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_RÜCKLAUFTEMP',RÜCKLAUFTEMP,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_SPREIZUNG',SPREIZUNG,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_ISTWERT_HK1',ISTWERT_HK1,true);
                                              setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.HKP_VOLUMENSTROM',VOLUMENSTROM,true);
                                           
                                              console.log("Die HKP ist aktiv. Die VL beträgt " + VORLAUFTEMP);    
                                              }; 
                                          }; 
                                          
                                          unltdnetworx 1 Reply Last reply Reply Quote 0
                                          • unltdnetworx
                                            unltdnetworx Developer @SaschaS last edited by

                                            @SaschaS
                                            Und wenn du meinen Vorschlag mal probierst?

                                            S 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            517
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            stiebel-isg test
                                            12
                                            203
                                            16587
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo