Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      looxer01 last edited by

      @frostnatt:

      vielen Dank für deine Rückmeldung. Ich habe es gerade ausprobiert und kann leider keine Änderung zum bereits geschilderten Verhalten feststellen… `
      Hi,

      neuer Vorschlag. Ich habe festgestellt, dass die Subscription gar nicht gemacht ist.

      Evt. erübrigt sich damit der vorherige

      kannst du bitte folgendes testen und diese Änderung einfügen

      ändern von:

                  if (UseEventsGlobalParameter === true) {
                      subscribeIdList.push(ICALPath + "."+ EventG_Party);
                      subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                      subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                      subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                  }
      
      

      auf:

             if (UseEventsGlobalParameter === true) {
                      subscribeIdList.push(ICALPath + "."+ EventG_Party);
                      subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                      subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                      subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                      subscribeIdList.push(ICALPath + "."+ UseEventG_Profil); 
                      subscribeIdList.push(ICALPath + "."+ UseEventR_Profil ); 
                      }
      
      

      vG Looxer

      1 Reply Last reply Reply Quote 0
      • K
        Kugelkopf last edited by

        @looxer01:

        @Kugelkopf:

        Ich hätte da noch eine Frage:

        Wenn ich in VIS ein 2. Profil auswähle, dann Fehlen die Einstellmöglichkeiten der Uhrzeit und Temperatur im unteren Feld.

        Anscheinend ist es nicht vorgesehen, dass es diese so ohne weiteres gibt. Sehe ich das richtig? `
        Hi,

        die Datenpunkte aus Profil-1 müssen im View angeplasst werden.

        Das kann mit Hilfe eines geeigneten Editors gemacht werden (ich empfehle immer notepad++) und durch suchen und Ersetzen

        • Suche Profil-1

        • Ersetze mit: Profil-2

        Das heisst auch, dass du dazu eine zweite View brauchst.

        Werde ich in die FAQs aufnehmen.

        vG Looxer `

        Ja…

        Naja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

        Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG 5370_view_3profile.txt.zip

        1 Reply Last reply Reply Quote 0
        • L
          looxer01 last edited by

          @Kugelkopf:

          aja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

          Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG `
          Hi,

          Ja, danke dir. Das ist nicht besonders intelligent gelöst im bereitgestellten View. Das liegt aber daran, dass die Profile nicht so oft verwendet werden. Ich schau mir deinen View an. Wenns passt und du einverstanden bist, könnte ich den Standardview entsprechend erweitern..)

          vG Looxer

          1 Reply Last reply Reply Quote 0
          • AxelF1977
            AxelF1977 last edited by

            @looxer01:

            @Kugelkopf:

            aja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

            Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG `
            Hi,

            Ja, danke dir. Das ist nicht besonders intelligent gelöst im bereitgestellten View. Das liegt aber daran, dass die Profile nicht so oft verwendet werden. Ich schau mir deinen View an. Wenns passt und du einverstanden bist, könnte ich den Standardview entsprechend erweitern..)

            vG Looxer `

            Wo wir bei dem Thema sind, Du kannst für neue Versionen auch gerne auf meine Version des Views zurück greifen, stelle es gerne zur Verfügung. gerade das Thema Responsive Design ist ja bei Hausautomation ein Thema, durch die vielen verschiedenen Auflösungen der verschiedenen Geräte.

            1 Reply Last reply Reply Quote 0
            • K
              Kugelkopf last edited by

              @looxer01:

              @Kugelkopf:

              aja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

              Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG `
              Hi,

              Ja, danke dir. Das ist nicht besonders intelligent gelöst im bereitgestellten View. Das liegt aber daran, dass die Profile nicht so oft verwendet werden. Ich schau mir deinen View an. Wenns passt und du einverstanden bist, könnte ich den Standardview entsprechend erweitern..)

              vG Looxer `
              Kein Problem! Dafür habe ich es ja bereitgestellt! Schau es dir einfach mal an und teste es.

              1 Reply Last reply Reply Quote 0
              • L
                looxer01 last edited by

                @AxelF1977:

                Du kannst für neue Versionen auch gerne auf meine Version des Views zurück greifen, stelle es gerne zur Verfügung. gerade das Thema Responsive Design ist ja bei Hausautomation ein Thema, durch die vielen verschiedenen Auflösungen der verschiedenen Geräte. `
                Hi Axel,

                super, danke dir. Das schaue ich mir gerne an. Kannst du mir deine Version zusenden ?

                vG Looxer

                1 Reply Last reply Reply Quote 0
                • AxelF1977
                  AxelF1977 last edited by

                  @looxer01:

                  @AxelF1977:

                  Du kannst für neue Versionen auch gerne auf meine Version des Views zurück greifen, stelle es gerne zur Verfügung. gerade das Thema Responsive Design ist ja bei Hausautomation ein Thema, durch die vielen verschiedenen Auflösungen der verschiedenen Geräte. `
                  Hi Axel,

                  super, danke dir. Das schaue ich mir gerne an. Kannst du mir deine Version zusenden ?

                  vG Looxer `

                  kannst Du hier runterladen viewtopic.php?f=21&t=10096&start=640#p190132 steht dem Forum ja schon offiziell zur Verfügung

                  1 Reply Last reply Reply Quote 0
                  • F
                    frostnatt last edited by

                    @looxer01:

                    @frostnatt:

                    vielen Dank für deine Rückmeldung. Ich habe es gerade ausprobiert und kann leider keine Änderung zum bereits geschilderten Verhalten feststellen… `
                    Hi,

                    neuer Vorschlag. Ich habe festgestellt, dass die Subscription gar nicht gemacht ist.

                    Evt. erübrigt sich damit der vorherige

                    kannst du bitte folgendes testen und diese Änderung einfügen

                    ändern von:

                                if (UseEventsGlobalParameter === true) {
                                    subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                    subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                    subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                    subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                }
                    
                    

                    auf:

                           if (UseEventsGlobalParameter === true) {
                                    subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                    subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                    subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                    subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                    subscribeIdList.push(ICALPath + "."+ UseEventG_Profil); 
                                    subscribeIdList.push(ICALPath + "."+ UseEventR_Profil ); 
                                    }
                    
                    

                    vG Looxer `

                    Hi Looxer,

                    danke für den Vorschlag.

                    Es haben tatsächlich die Subscriptions gefehlt.

                    Leider geht es so nicht, da UseEventG_Profil mit dem folgenden Inhalt initialisiert ist.

                    var UseEventG_Profil     = "Global_Profil_<profilnummer>";</profilnummer> 
                    

                    Ich habe nun für meinen Spezialfall, also wenn nun Globale Profile Umgeschaltet werden sollen, folgendes Workaround bei mir eingebaut.

                                if (UseEventsGlobalParameter === true) {
                                    subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                    subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                    subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                    subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                }
                                if (UseEventsGlobalProfilSelect === true) {
                                    for (i = 1; i <= MaxProfile; i++) {
                                        var ProfilName = UseEventG_Profil.replace("<profilnummer>", i);
                                        subscribeIdList.push(ICALPath + "." + ProfilName);
                                    }
                                }</profilnummer> 
                    

                    Nun funktioniert es wie gewünscht.

                    Grüße,

                    Max

                    1 Reply Last reply Reply Quote 0
                    • L
                      looxer01 last edited by

                      @frostnatt:

                      Es haben tatsächlich die Subscriptions gefehlt.

                      Leider geht es so nicht, da UseEventG_Profil mit dem folgenden Inhalt initialisiert ist `
                      ups, sorry. War wie gesagt eine Trockenübung.

                      Ich glaube, dass ich deinen Code übernehmen kann 😄

                      plus noch für die Raumprofile.

                      Danke dir.

                      vG Looxer

                      1 Reply Last reply Reply Quote 0
                      • F
                        frostnatt last edited by

                        @looxer01:

                        @frostnatt:

                        Es haben tatsächlich die Subscriptions gefehlt.

                        Leider geht es so nicht, da UseEventG_Profil mit dem folgenden Inhalt initialisiert ist `
                        ups, sorry. War wie gesagt eine Trockenübung.

                        Ich glaube, dass ich deinen Code übernehmen kann 😄

                        plus noch für die Raumprofile.

                        Danke dir.

                        vG Looxer `

                        Gerne! Ist übrigens ein Copy-Paste von deinem Code + ein bisschen Anpassung. :roll:

                        An die Subscriptions für die Raumprofile habe ich mich nicht getraut, da es hier darauf geachtet werden muss, ob Raumliste benutzt wird oder Räume von Enums ausgelesen werden etc…

                        Ne andere Frage:

                        Kann man die Globalen Profile irgendwie priorisieren? Macht das Sinn aus deiner Sicht?

                        Ich habe Folgendes vor:

                        Global_Profil_1 soll als Standartprofil benutzt werden. Es wird im Kalender als ganztägiges Erreignis eingetragen.

                        Global_Profil_2 soll beispielsweise zum Vorheizen benutzt werden. Man könnte hier natürlich die Solltemperatur manuell anpassen. ich würde es aber gerne mittels Eintrag im Kalender lösen, da ich mit der App "Kurzbefehle" bequem die Ankunftszeit abfragen kann und im Kalender ein entsprechendes Zeitfenster z.B.

                        Von

                        1 Std. vor der Ankunft

                        Bis

                        30min nach der Ankunft

                        eintragen - und das nur mit einem einzigen Tastendruck.

                        Es erfolgt aber keine Umschaltung wenn beide Erreignisse im Kalender aktiv sind. In diesem Fall wäre die Sache mit der optionalen Priorisierung angebracht.

                        Grüße,

                        Max

                        1 Reply Last reply Reply Quote 0
                        • L
                          looxer01 last edited by

                          @frostnatt:

                          Kann man die Globalen Profile irgendwie priorisieren? Macht das Sinn aus deiner Sicht?

                          Ich habe Folgendes vor:

                          Global_Profil_1 soll als Standartprofil benutzt werden. Es wird im Kalender als ganztägiges Erreignis eingetragen.

                          Global_Profil_2 soll beispielsweise zum Vorheizen benutzt werden. Man könnte hier natürlich die Solltemperatur manuell anpassen. ich würde es aber gerne mittels Eintrag im Kalender lösen, da ich mit der App "Kurzbefehle" bequem die Ankunftszeit abfragen kann und im Kalender ein entsprechendes Zeitfenster z.B.

                          Von

                          1 Std. vor der Ankunft

                          Bis

                          30min nach der Ankunft

                          eintragen - und das nur mit einem einzigen Tastendruck.

                          Es erfolgt aber keine Umschaltung wenn beide Erreignisse im Kalender aktiv sind. In diesem Fall wäre die Sache mit der optionalen Priorisierung angebracht. `

                          Hi,

                          also, es gibt eine zentrale Stelle, um das aktive Profil zu ermitteln.

                          In dieser Funktion gib es ein StückCoding für das Globale Profil.

                          Hast du ggf Lust dir das anzuschauen und ggf was einzubauen.

                          Um es generell tauglich zu machen müsste aber noch eine Tabelle für die Einstellungen hinzugefügt werden

                          irgendwie so

                          var UseGlobalParamPrio= false; // fuer den Fall, dass es mehrere aktive ICAL GobalProfile gibt

                          var GlobalParaPrio= [];

                          GlobalParaPrio[0] = ['1'] = 1; // Höchste Prio =1

                          GlobalParaPrio[1] = ['2'] = 3;

                          GlobalParaPrio[2] = ['3'] = 2;

                          Stelle im Coding:

                              // Globales Profil ist prio2
                              if (UseEventsGlobalProfilSelect === true) {
                                for (i = 1; i <= MaxProfile; i++) {
                                  ProfilName = UseEventG_Profil;
                                  ProfilName = UseEventG_Profil.replace("<profilnummer>", i);
                                  if (getState(ICALPath + "." + ProfilName).val) {
                                      setOwnState(pathprofile+".AktivesEventProfil", i);
                                      Source_Profil = i;
                                      Source_ICALEvent = ProfilName;
                                      return i;
                                  }
                                } // ende for i
                              } // ende if globalProfilSelect</profilnummer> 
                          

                          vG Looxer

                          1 Reply Last reply Reply Quote 0
                          • F
                            frostnatt last edited by

                            Hi Looxer,

                            ich habe die Funktion "Finde Aktives Raumprofil" um die Priorisierung der Globalen Profile erweitert (oder besser gesagt versucht zu erweitern :? )

                            Hier die Variable zum Aktivieren der Funktionalität und die Prio-Tabelle.

                            var UseEventsGlobalProfilPrio = true;     //Priorisierung der globalen Profile, wenn mehrere gleichzeitig aktiv sind
                            var GlobalProfilPrioTab = [];
                            GlobalProfilPrioTab[0] = 2;                //höchste Prio
                            GlobalProfilPrioTab[1] = 1;
                            
                            

                            Hier die Funktion.

                            / Funktion Finde Aktives Raumprofil
                            //-----------------------------------------------------------------------------------------------------
                            function ActiveProfile (room,Profil) {
                                var pathprofile = path + "." + room;
                                var ProfilName;
                                var ActiveGlobalProfileList = [];	//Liste der aktiven globalen Profile
                                var ProfileFoundFlag = false;		//Flag zum Abbrechen der weiteren Profilermittlung
                                if (MaxProfile === 1) {
                                    Profil = 1;
                                    Source_Profil = 1;
                                    return Profil;
                                }
                            
                                // Erst Raumprofil checken - prio1
                                if (UseEventsRaumProfilSelect === true) {
                                    for (i = 1; i <= MaxProfile; i++) {
                                        ProfilName = UseEventR_Profil;
                                        ProfilName = UseEventR_Profil.replace("<raumname>", room);
                                        ProfilName = ProfilName.replace("<profilnummer>", i);
                                        if (getState(ICALPath + "." + ProfilName).val) {
                                            setOwnState(pathprofile + ".AktivesEventProfil", i);
                                            Source_Profil = i;
                                            Source_ICALEvent = ProfilName;
                                            return i;
                                        }
                                    } // ende for i
                                } // ende if globalProfilSelect
                            
                                // Globales Profil ist prio2
                                if (UseEventsGlobalProfilSelect === true) {
                                    for (i = 1; i <= MaxProfile; i++) {
                                        ProfilName = UseEventG_Profil;
                                        ProfilName = UseEventG_Profil.replace("<profilnummer>", i);
                                        if (getState(ICALPath + "." + ProfilName).val) {
                                            if (!UseEventsGlobalProfilPrio){	//Regulärer Fall, Priorisierung nicht aktiv
                                                ProfileFoundFlag = true;
                                                break;
                                            }else {
                                                if (i === GlobalProfilPrioTab[0]){	//Priorisierung aktiv, das aktuelle Profil hat höchste Prio
                                                    ProfileFoundFlag = true;
                                                    break;
                                                }else {
                                                    ActiveGlobalProfileList.push(i);	//Baue Liste zur späteren Ermittlung des Profils
                                                }
                                            } 
                                        }
                                    } // ende for (i = 1; i <= MaxProfile; i++)
                                    if (ProfileFoundFlag){		//Ermittlung des Profils ist fertig
                                        setOwnState(pathprofile+".AktivesEventProfil", i);
                                        Source_Profil = i;
                                        Source_ICALEvent = ProfilName;
                                        return i;
                                    }else {	//Suche nach dem Profil mit der höchsten Prio in der Liste
                                        for(var i_prio = 0; i_prio <= GlobalProfilPrioTab.length - 1; i_prio++){
                                            for (var i_profile = 0;  i_profile <= ActiveGlobalProfileList.length - 1; i_profile++){
                                                if (ActiveGlobalProfileList[i_profile] === GlobalProfilPrioTab[i_prio]){	//Das Profil ist ermittelt!
                                                    setOwnState(pathprofile+".AktivesEventProfil", ActiveGlobalProfileList[i_profile]);
                                                    Source_Profil = ActiveGlobalProfileList[i_profile];
                                                    Source_ICALEvent = UseEventG_Profil.replace("<profilnummer>", ActiveGlobalProfileList[i_profile]);
                                                    return ActiveGlobalProfileList[i_profile];
                                                }//ende if
                                            }//ende for i_profile
                                        }//ende for i_prio
                                    }//ende else
                            
                                }// ende if globalProfilSelect
                            
                                if (getState(pathprofile + ".AktivesEventProfil").val !== 0) {  // falls vorher ein Eventprofil aktiv war jetzt deaktivieren
                                    setOwnState(pathprofile + ".AktivesEventProfil", 0);
                                }
                            
                                // Wenn kein anderes Profil vorliegt dann gilt das manuell eingstellte Profil
                                Profil = getState(pathprofile + ".AktivesRaumProfil").val;
                                if (Profil > 9 || Profil < 1) {
                                    Profil = 1;
                                }
                                Source_Profil = Profil;
                                return Profil;
                            }</profilnummer></profilnummer></profilnummer></raumname> 
                            

                            Die Logik müsste überschaubar sein, auch wenn die Lesbarkeit des Codes nicht die beste ist (ich bin kein ITler).

                            Es passiert leider nichts, die Profile werden nicht aktiviert. Ich habe versucht zu debuggen (wie ich halt kann :oops: )und muste feststellen dass AktivesEventProfil-Datenpunkt nicht beschrieben wird.

                            Könntest du bei Gelegenheit den Code überfliegen? Vielleich fällt dir irgendwas ein…

                            Grüße,

                            Max

                            1 Reply Last reply Reply Quote 0
                            • AxelF1977
                              AxelF1977 last edited by

                              @looxer01,

                              danke nochmal für Deine Hilfe heute. Das Script läuft nun, wie es soll, wie ich es mir wünsche, und wie Du es erdacht hast. Ich weiß nun auch warum die Datenpunkte leer waren, weil ich sie gelöscht hatte, im View. Ich wollte keine Daten sehen, wenn die Werte vom Vortag übernommen werden, durch den Hacken. Also war es meine Schuld. Ich wollte die cleane Optik. Ich habe jetzt aber einen Weg gefunden, das die Werte ausgeblendet werden, wenn der Hacken bei "wie Vortag" aktiv ist. Ich lasse jetzt einfach Widgets drüber legen, sobald der Hacken aktiv ist.

                              Danke nochmal!
                              4249_003.jpg
                              4249_004.jpg

                              1 Reply Last reply Reply Quote 0
                              • K
                                Kugelkopf last edited by

                                Kurze Info:

                                Das Skript scheint nicht kompatibel zu sein mit der neusten Version von ioBroker Javascript in Verison 4.0.1.

                                1 Reply Last reply Reply Quote 0
                                • Beliar_666
                                  Beliar_666 last edited by

                                  Wie bekomme ich denn zusätzliche Datenpunkte für ein weiteres Zimmer ins Java? Ich will jetzt quasi einen weiteren Raum hinzufügen, aber die Datenpunkte werden nicht erstellt.

                                  1 Reply Last reply Reply Quote 0
                                  • Chaot
                                    Chaot last edited by

                                    @Kugelkopf:

                                    Kurze Info:

                                    Das Skript scheint nicht kompatibel zu sein mit der neusten Version von ioBroker Javascript in Verison 4.0.1. `

                                    Wie kommst du darauf oder wie macht sich das bemerkbar?

                                    Ich habe bisher kein Problem.

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      looxer01 last edited by

                                      @Chaot:

                                      @Kugelkopf:

                                      Kurze Info:

                                      Das Skript scheint nicht kompatibel zu sein mit der neusten Version von ioBroker Javascript in Verison 4.0.1. `

                                      Wie kommst du darauf oder wie macht sich das bemerkbar?

                                      Ich habe bisher kein Problem. `

                                      es gibt ein Problem mit den FS Funktionen. Dazu habe ich ein issue in Github aufgemacht:

                                      https://github.com/ioBroker/ioBroker.ja … issues/213

                                      Es gibt 2 workarounds dazu:

                                      1. Deaktiverung des externen loggings

                                      2. Auskommentierung des folgenden Codes

                                      //        if (!fs.existsSync(LogPath)) {
                                      //            log("Routine writelog: Logfile nicht gefunden - wird angelegt", "info");
                                      //            var headerLine= "Datum;Uhrzeit;Raum;Geraete-ID;SollTemp gesetzt;Profil;Global-Parameter;Event;Manuelle Temp;Schedule-Point;Bemerkung";
                                      //            fs.appendFileSync(LogPath, headerLine + "\n");       // Fuege Satz in Datei ein
                                      //        }
                                      
                                      

                                      vG Looxer

                                      1 Reply Last reply Reply Quote 0
                                      • Chaot
                                        Chaot last edited by

                                        Ok,

                                        da ich kein externes logging nutze scheint mich das dann nicht zu betreffen.

                                        Aber als kleinen Hinweis noch:

                                        Nach dem JS Update war das System extremst langsam. Nach einem Neustart war es deutlich besser.

                                        1 Reply Last reply Reply Quote 0
                                        • AxelF1977
                                          AxelF1977 last edited by

                                          @Kugelkopf:

                                          Kurze Info:

                                          Das Skript scheint nicht kompatibel zu sein mit der neusten Version von ioBroker Javascript in Verison 4.0.1. `

                                          Habe den neuen Javascript Adapter auch in Verison 4.0.1. installiert, keine Fehler bisher

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            Kugelkopf last edited by

                                            @looxer01:

                                            @Chaot:

                                            @Kugelkopf:

                                            Kurze Info:

                                            Das Skript scheint nicht kompatibel zu sein mit der neusten Version von ioBroker Javascript in Verison 4.0.1. `

                                            Wie kommst du darauf oder wie macht sich das bemerkbar?

                                            Ich habe bisher kein Problem. `

                                            es gibt ein Problem mit den FS Funktionen. Dazu habe ich ein issue in Github aufgemacht:

                                            https://github.com/ioBroker/ioBroker.ja … issues/213

                                            Es gibt 2 workarounds dazu:

                                            1. Deaktiverung des externen loggings

                                            2. Auskommentierung des folgenden Codes

                                            //        if (!fs.existsSync(LogPath)) {
                                            //            log("Routine writelog: Logfile nicht gefunden - wird angelegt", "info");
                                            //            var headerLine= "Datum;Uhrzeit;Raum;Geraete-ID;SollTemp gesetzt;Profil;Global-Parameter;Event;Manuelle Temp;Schedule-Point;Bemerkung";
                                            //            fs.appendFileSync(LogPath, headerLine + "\n");       // Fuege Satz in Datei ein
                                            //        }
                                            
                                            

                                            vG Looxer `

                                            Jap! Stimmt! Wenn externes Logging ausgeschaltet ist gibt es keine Fehler mehr! Sorry für meinen vorschnellen Post! Ich dachte nur, ich warne euch bevor es möglicherweise bei dem ein oder anderen zu Problemen führt!

                                            Danke für die Hilfe!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            725
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            climate heating javascript template
                                            115
                                            1127
                                            319271
                                            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