Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Skript] Absolute Feuchte berechnen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Skript] Absolute Feuchte berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • D3ltoroxp
      D3ltoroxp @Homoran last edited by D3ltoroxp

      @homoran

      In dieser Zeile steht.

         lueftenText = "Fenster zu:
      

      Ich habe das Script Spaß halber noch mal gestartet, dann hing erst kurz mein ioB und das war in der Log. Das war nachdem ich oben auf Expert Mode gegangen bin.

      host.iobroker
      	2022-11-10 17:03:29.419	error	instance system.adapter.javascript.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
      host.iobroker
      	2022-11-10 17:03:29.419	error	Caught by controller[0]: at processTimers (node:internal/timers:502:7)
      host.iobroker
      	2022-11-10 17:03:29.419	error	Caught by controller[0]: at listOnTimeout (node:internal/timers:559:17)
      host.iobroker
      	2022-11-10 17:03:29.419	error	Caught by controller[0]: at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/main.js:1180:50)
      host.iobroker
      	2022-11-10 17:03:29.419	error	Caught by controller[0]: at Array.forEach (<anonymous>)
      host.iobroker
      	2022-11-10 17:03:29.419	error	Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.javascript/main.js:1182:70
      host.iobroker
      	2022-11-10 17:03:29.418	error	Caught by controller[0]: TypeError: Cannot create property 'setStatePerMinuteCounter' on boolean 'false'
      javascript.0
      	2022-11-10 17:03:24.246	error	Cannot create property 'setStatePerMinuteCounter' on boolean 'false'
      javascript.0
      	2022-11-10 17:03:24.246	error	TypeError: Cannot create property 'setStatePerMinuteCounter' on boolean 'false' at /opt/iobroker/node_modules/iobroker.javascript/main.js:1182:70 at Array.forEach (<anonymous>) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/main.js:1180:50) at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7)
      javascript.0
      	2022-11-10 17:03:24.246	error	uncaught exception: Cannot create property 'setStatePerMinuteCounter' on boolean 'false'
      javascript.0
      	2022-11-10 17:03:19.324	error	at processImmediate (node:internal/timers:468:21)
      javascript.0
      	2022-11-10 17:03:19.324	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1527:17)
      javascript.0
      	2022-11-10 17:03:19.324	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2042:17
      javascript.0
      	2022-11-10 17:03:19.324	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1954:37)
      javascript.0
      	2022-11-10 17:03:19.324	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1702:24)
      javascript.0
      	2022-11-10 17:03:19.324	error	at Object.createScript (node:vm:265:10)
      javascript.0
      	2022-11-10 17:03:19.323	error	at new Script (node:vm:100:7)
      javascript.0
      	2022-11-10 17:03:19.323	error	SyntaxError: Invalid or unexpected token
      javascript.0
      	2022-11-10 17:03:19.323	error	^^^^^^^^^^^^
      javascript.0
      	2022-11-10 17:03:19.323	error	lueftenText = "Fenster zu:
      javascript.0
      	2022-11-10 17:03:19.323	error	script.js.Wetter.Lüftungsempfehlung_Taupunkt compile failed: at script.js.Wetter.Lüftungsempfehlung_Taupunkt:731
      
      Homoran 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @D3ltoroxp last edited by

        @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

        In dieser Zeile steht.
        lueftenText = "Fenster zu:

        und wann kommt das abschließende "?

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @D3ltoroxp last edited by

          @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

          das war in der Log.

          das wäre eben schon besser gewesen

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

            @homoran Gute Frage, kenne mich mit so Javascripten überhaupt nicht aus. Wüsste auch nicht was ich an der Zeile gemacht haben sollte.

            Müsste so aussehen ?

            lueftenText = "Fenster zu:"

            @homoran

            Das stand vorher meines Wissens nicht drin. Erst beim zweiten mal starten.

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @D3ltoroxp last edited by

              @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

              Müsste so aussehen ?
              lueftenText = "Fenster zu:"

              ich denke schon. kenne aber den Kontext nicht.

              D3ltoroxp 1 Reply Last reply Reply Quote 0
              • D3ltoroxp
                D3ltoroxp @Homoran last edited by

                @homoran

                //--------------------------------------------------------------------------
                   if (b1lp && b2lp && b3lp) {
                       // Lüftungsempfehlung, alle bedingungenen erfüllt
                       lueftenText = "Bedingungen für Entfeuchten, Kühlen und Auskühlschutz erfüllt.";
                       setState(idLueften, true);
                       setState(idLueftenHys,false);
                        if (debug) log(raum + ': **Lüftungsempfehlung**');
                    } else if (b1ln || b2ln || b3ln) {
                       // Fenster zu. Ein Ausschlusskriterium reicht für die Empfehlung "Fenster zu".
                       lueftenText = "Fenster zu:"
                ";
                       if (b1ln) lueftenText += b1lnText + "
                ";
                       if (b2ln) lueftenText += b2lnText + "
                ";
                       if (b3ln) lueftenText += b3lnText + "
                ";
                       setState(idLueften, false);
                       setState(idLueftenHys,false);
                       if (debug) log(raum + ': **Empfehlung Fenster zu**');
                   } else {
                       // Hysterese. Keine Änderung der bisherigen Empfehlung.
                       if (debug) log(raum + ': **im Bereich der Hysterese** (keine Änderung der Lüftungsempfehlung');
                       if (getState(idLueften).val === null) setState(idLueften,false); // noch keine Empfehlung vorhanden, "Fenster zu" empfehlen
                       lueftenText = "Hysterese, keine Änderung der Lüftungsempfehlung";
                       setState(idLueftenHys,true);
                   }
                   setState(idLueftenText, lueftenText);
                    /* Erklärung Lüftungslogik (von Paul53)
                
                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @D3ltoroxp last edited by

                  @d3ltoroxp
                  Es sind Zeilenumbrüche vorhanden, wo keine sein sollen.

                         // Fenster zu. Ein Ausschlusskriterium reicht für die Empfehlung "Fenster zu".
                         lueftenText = "Fenster zu:";
                         if (b1ln) lueftenText += b1lnText + "";
                         if (b2ln) lueftenText += b2lnText + "";
                         if (b3ln) lueftenText += b3lnText + "";
                  
                  D3ltoroxp 1 Reply Last reply Reply Quote 1
                  • D3ltoroxp
                    D3ltoroxp @paul53 last edited by

                    @paul53 hm was hab ich dann für ein Script erwischt ? Ich hab das hier irgendwo aus dem Thread. Bis auf oben, die Parameter die man anpassen kann habe ich nichts gemacht.

                    Hättet ihr mir noch mal ein aktuelles das funktioniert ?

                    Und wenn der die DP's und Ordnerstruktur anlegt, könnte ich das auch unter userdata machen lassen und nicht unter dem javascript Ordner ?

                    Wenn ja was müsste ich dort an diesem Bereich mit angeben ?

                    paul53 2 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @D3ltoroxp last edited by

                      @d3ltoroxp sagte: was hab ich dann für ein Script erwischt ?

                      Die Fehler sind schon im Originalskript (erster Beitrag) enthalten.

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @D3ltoroxp last edited by paul53

                        @d3ltoroxp sagte: könnte ich das auch unter userdata machen lassen und nicht unter dem javascript Ordner ?

                        // Pfade für die Datenpunkte:
                        var pfad        = "0_userdata.0.Raumklima.";   // Pfad unter dem die Datenpunkte  angelegt werden
                        

                        Ich hoffe, dass es an dieser Stelle genügt.

                        D3ltoroxp 2 Replies Last reply Reply Quote 0
                        • D3ltoroxp
                          D3ltoroxp @paul53 last edited by

                          @paul53 Hm könntest du mir Helfen diese Fehler zu beheben, oder hast du ein Script das läuft ?

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @D3ltoroxp last edited by paul53

                            @d3ltoroxp sagte: hast du ein Script das läuft ?

                            Nein, ich verwende das Skript nicht.

                            @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

                            könntest du mir Helfen diese Fehler zu beheben

                            Habe schon gezeigt, wie es richtig aussehen muss.
                            Oder sollte dort eine Zeilenschaltung erfolgen? Dann so:

                                   // Fenster zu. Ein Ausschlusskriterium reicht für die Empfehlung "Fenster zu".
                                   lueftenText = "Fenster zu:\n";
                                   if (b1ln) lueftenText += b1lnText + "\n";
                                   if (b2ln) lueftenText += b2lnText + "\n";
                                   if (b3ln) lueftenText += b3lnText + "\n";
                            
                            1 Reply Last reply Reply Quote 0
                            • D3ltoroxp
                              D3ltoroxp @paul53 last edited by

                              @paul53

                              var pfad        = "Raumklima"   +".";   // Pfad unter dem die Datenpunkte in der Javascript-Instanz angelegt werden
                              // Unterpfade unterhalb des Hauptpfads
                              var raumPfad    = "Raum"        +".";   // Pfad unterhalb des Hauptpfads für die Räume
                              var controlPfad = "CONTROL"     +".";   // Pfad innerhalb des Raums für Kontrollparameter
                              var detailPfad  = "DETAILS"     +".";   // Pfad innerhalb des Raums für Detailparameter ("" und ohne ".", wenn kein Detailpfad gewünscht)
                              var detailEnginePfad = "DETAILS_Lüftungsempfehlung" + "."; // Pfad innerhalb des Raums für Detailparameter zur Lüftungsengine
                              var infoPfad    = "Skriptinfos" +".";   // Pfad für globale Skriptparameter zur Info
                              

                              Dann fällt +"."; weg ?

                              var pfad        = "0_userdata.0.Raumklima.";
                              

                              Die anderen lasse ich so, oder muss dort dann auch 0_userdata.0.Raumklima. davor ?

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @D3ltoroxp last edited by

                                @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

                                Dann fällt +"."; weg ?

                                Ja, den Punkt habe ich direkt angehängt.

                                @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

                                Die anderen lasse ich so

                                Ja, dort steht

                                // Unterpfade unterhalb des Hauptpfads
                                
                                D3ltoroxp 1 Reply Last reply Reply Quote 1
                                • D3ltoroxp
                                  D3ltoroxp @paul53 last edited by

                                  @paul53 Hm, Script ist aktiv, er sagt aber oben inaktiv.

                                  6cea1dff-78b5-445f-8691-eb34e5d92486-grafik.png

                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @D3ltoroxp last edited by

                                    @d3ltoroxp sagte in [Skript] Absolute Feuchte berechnen:

                                    , Script ist aktiv, er sagt aber oben inaktiv.

                                    das bezieht sich nicht auf das Skript sondern auf die js-Instanz.
                                    wenn du due nicht deaktivierthast und die nicht gerade abgestürzt ist kann das eine Falschmeldung sein. Das gab es vor Jahren mal.

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

                                      Da war noch ein Fehler in Zeile 738. Aber nun passt es und läuft. Danke euch.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dodi666 @Dieter_P last edited by dodi666

                                        @dieter_p
                                        @boriswerner
                                        Hi, das mit den leeren Odnern unter "javascript.0." ist bei mir auch so.
                                        Ist das gewollt, oder kann man das ändern?

                                        Danke und Grüße
                                        Sascha

                                        paul53 boriswerner 2 Replies Last reply Reply Quote 0
                                        • paul53
                                          paul53 @dodi666 last edited by paul53

                                          @dodi666 sagte: kann man das ändern?
                                          Zeile 463 im Skript Version 0.6.4.

                                                 setObject("javascript." + instance + "." + channelId, {
                                          

                                          ändern in

                                                 if(!channelId.startsWith('0_userdata.0')) channelId = "javascript." + instance + "." + channelId;
                                                 setObject(channelId, {
                                          
                                          D 1 Reply Last reply Reply Quote 0
                                          • boriswerner
                                            boriswerner Developer @dodi666 last edited by

                                            @dodi666
                                            @D3ltoroxp die aktuellste vollständige Version findest du als 0.6.7 hier im Thread von mir. Die ist erstmal lauffähig.
                                            Da ist auch schon der Pfad unter 0_userdata (wie auch von @paul53 beschrieben). Es werden, wie @Dieter_P festgestellt hat noch Ordner unter javascript angelegt, das ist ein Fehler (@dodi666). Ich vermute es reicht Zeile 555 (im Original 0.6.7) in

                                            setObject(channelId, {
                                            

                                            zu ändern, habe es aber noch nicht getestet. Ich versuche die Tage mal das anzupassen und auch die NaNs im JSON (siehe Beitrag von @jwerlsdf ) und die Anmerkungen von @paul53 bzgl "zu trocken" einzuarbeiten.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            508
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            95
                                            738
                                            181931
                                            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