Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Skript] Absolute Feuchte berechnen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

[Skript] Absolute Feuchte berechnen

Geplant Angeheftet Gesperrt Verschoben JavaScript
740 Beiträge 96 Kommentatoren 224.3k Aufrufe 81 Watching
  • Ä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.
  • HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #129

    @eric2905:

    Woran mache ich fest, das gelüftet werden sollte?

    Irgendwie habe ich die Logik dahinter noch nicht verstanden … kann mir jemand das mal in einfachen Worten versuchen zu erklären? `
    Ob du mich verstehen wirst???

    Wenn ich dein/Pauls Skript richtig verstehe sind folgende Parameter involviert

    • Temperatur innen <-> außen

    • Feuchtegehalt innen <-> außen

    zusätzlich gibt es zu jedem Raum noch einen Zielwert für die Temperatur.

    Die absolute Feuchte muss innen um 0,6 g/kg höher sein ->Lüften (Teil1) true

    Die Temperatur muss aussen niedriger sein als die Innentemperatur, wenn die innentemperatur über der Solltemperatur liegt ->Lüften (Teil2) true

    Die Temperatur muss aussen höher sein als die Innentemperatur, wenn die innentemperatur unter der Solltemperatur liegt ->Lüften (Teil3) true

    Zurück ähnlich, nur:

    Die absolute Feuchte muss innen max, um 0,1 g/kg höher sein ->Lüften (Teil1) false (Hysterese)

    Gruß

    Rainer

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      schrieb am zuletzt editiert von
      #130

      Verstanden - Deine Ausführung war nicht so schwer zu verstehen :D

      Die Werte (0,6 g/kg, usw.), sind die irgendwo "definiert", oder hat jemand die einfach mal festgelegt (paul53 / ruhr70 ?)?

      Dann baue ich das morgen Abend ein.

      Ich habe auch mal ein ganz kurzes Testskript gemacht. Da trägt man oben die Temp. und die rel. Luftfeuchte ein und es berechnet dann die einzelnen Werte - kann man dann mit anderen Berechnungs-Varinten (Internet, usw.) abgleichen.

      Ich poste es einfach ma hier rein:

      ! // Historie // ----------------------------------------------------------------------------- // 09.06.2015 Erstellung eric2905 // Berechnung komplett überarbeitet // Quelle : http://www.hobby-photo.de/shop/pg45.htm // Berechnungsformeln wurden aus der Excel-Tabelle "geliehen" // ----------------------------------------------------------------------------- ! var temp = 19.4; var relHumm = 54; ! // Ab hier nichts ändern - nicht notwendig ! var SaettDruck = (610.8 * Math.exp(17.1 * temp / (234.2 + temp))); log("Sättigungsdruck : " + SaettDruck); ! var maxAbsHumm = SaettDruck * 0.018 / 8.314 / (273.15 + temp) * 1000; log("max. Wassergehalt : " + maxAbsHumm); ! var istAbsHumm = maxAbsHumm / 100 * relHumm; log ("tats. Wassergehalt : " + istAbsHumm); ! var istDampfPress = (SaettDruck /100) * relHumm / 100; log("Dampfdruck : " + istDampfPress); ! var Taupunkt = 241.2 * (Math.log(istDampfPress) - Math.log(6.112)) / (17.5043 - (Math.log(istDampfPress) - Math.log(6.112))); log("Taupunkt : " + Taupunkt); !

      Gruß,

      Eric

      Roses are red, violets are blue,

      if I listen to metal, my neighbours do too

      1 Antwort Letzte Antwort
      0
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #131

        @eric2905:

        Die Werte (0,6 g/kg, usw.), sind die irgendwo "definiert", oder hat jemand die einfach mal festgelegt (paul53 / ruhr70 ?)? `
        ich denke, dass paul die Temperturdifferenzen in seinen uraltskripten bereits hatte, es ergibt ja auch einen sinn mit der Hysterese.

        g/kg ist halt die (eine) offizielle Größe für den Feuchtegehalt nur nicht jedem Laien verständlich zu machen.

        Aber da sind noch mehr Faktoren im Skript, die noch nicht eingearbeitet worden sind.

        z.B. die Zieltemperatur:

        im Header steht Zieltemperatur xy, wenn im Raum nicht anders definiert.

        Dadurch dass ich die Räume einfach kopiert habe, stehtfür diese Variable natürlich auch in jedem Raum ein Wert.

        Ich könnte mir denken, dass man oben ienen allgemeingültigen Wert, z.B. 21°C eingeben soll und NUR in den Räumen, die einen anderen Zielwrt haben (Schlafzimmer 19°C, Bad 24°C) muss dies beim Raum noch extra angegeben werden.

        Sollte dann diese Zeile in allen anderen Räumen auskommentiert/gelöscht werden? Oder ein bestimmter Platzhalter eingegeben werden?

        @eric2905:

        Dann baue ich das morgen Abend ein.

        Ich habe auch mal ein ganz kurzes Testskript gemacht. Da trägt man oben die Temp. und die rel. Luftfeuchte ein und es berechnet dann die einzelnen Werte `

        Das klingt ja schon fast nach einem Ansatz für einen Adapter mit komfortabler Einzelraumkonfiguration :mrgreen: :mrgreen: :mrgreen:

        Das hast du nu davon!

        Gruß

        Rainer

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #132

          @eric2905:

          Woran mache ich fest, das gelüftet werden sollte?

          Lüften,

          • wenn abs. Aussenfeuchte < abs. Innenfeuchte - Hysterese (Entfeuchten)
          • UND Aussentemperatur < Innentemperatur - Hysterese (Kühlen)
          • UND Innentemperatur >= Raumtemperaturminimum + Hysterese (Auskühlschutz)

          Die Hysterese hatte ich auf 0,3 g/kg und 0,5 K festgelegt, damit ein Lüfter im Grenzbereich nicht zu häufig ein- und ausschaltet. Da meine Fühler gut übereinstimmen und ich das nur zur Lüftungsempfehlung (Fenster) verwende, habe ich bei mir die Hysterese auf

          0,2 g/kg und 0,3 K verringert.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          1
          • S Offline
            S Offline
            Solear
            schrieb am zuletzt editiert von
            #133

            @eric2905:

            Eine Frage beschäftigt mich aber noch ….

            Woran mache ich fest, das gelüftet werden sollte?

            Irgendwie habe ich die Logik dahinter noch nicht verstanden ... kann mir jemand das mal in einfachen Worten versuchen zu erklären?

            Dann baue ich das noch mit ein. `

            Du musst zunächst für dich selbst definieren, warum du wie lüften willst.

            Bei mir habe ich das System mit automatischen Fensteröffnern im Keller zur Entfeuchtung implementiert. Die Temperaturen sind mir dabei ziemlich egal, die Fenster sollen auch nicht immer offen sein wenn wenn absolute Feuchte draußen geringer als im Keller.

            Für mich habe ich definiert: Wenn im Keller die relative Feuchte über 70 % steigt, soll er lüften, und damit aufhören, wenn es unter 55 % fällt (damit es nicht permanent offen ist im WInter). Die absolute Feuchte nehme ich dann nur zur Berechnung, die zu haltende Mindesttemperatur orientiert sich am Taupunkt im Keller und eine maximale gibt es nicht, da es nie über 20 °C wird im Keller.

            Für Wohnräume sieht das vielleicht anders aus, da ist die Bandbreite bei 40 bis 60 % (zB).

            Meine Öffnungsdifferenz für den Keller beträgt 0,9 g/kg und die zum Schließen 0,3 g/kg. Mit 0,4/0,3 oder ähnliche Werte hatte ich das Problem, dass die Fenster im 10 Minutentakt auf und zu gegangen sind, deshalb habe ich die Öffnungsdifferenz erhöht, es muss also (absolut) deutlich trockener draußen sein um drin zu lüften.

            Es kommt natürlich auch daraus an wo die Sensoren stehen. Wenn die im Keller zwischen den Fenstern (also im Zug) stehen dann reagiert der schneller, steht der an einer Wand ohne Zug reagiert er deutlich langsamer, weil die Luft dort nicht so schnell ausgetauscht wird. Das muss mit rein in die Überlegungen und der Anpassung der Hysterese.

            Man kann auch eine "Sperre" einbauen, nach den bisherigen Skripten ist es ja auch so, dass die Feuchte drin mit der Außenfeuchte ansteigen kann durch das lüften, so lange es drin immernoch feuchter als draußen ist (aber draußen steigt die Feuchte ja auch ab dem Morgen). Das kann evtl. ungeschickt sein. DIe Temperatur berücksichtige ich gar nicht, außer es ist im Keller nahe der Taupunktgrenze oder es werden über 25 °C im Keller, dann deaktiviert sich die Öffnung und es schließt..

            Nachts ist es immer deutlich trockener (wenn es also kühler ist draußen). Im Winter kann man eigentlich immer den ganzen Tag lüften, es ist immer trockener draußen. Im Sommer gibt es tagsüber Probleme, das geht soweit, dass man tagelang bei schwülem Wetter die Kellerfeuchte nicht unter 80 % bekommt nur durch das Lüften. Ich baue mir deshalb noch eine Zeitprüfung ein, um wenn es morgens um 8 drin trockener als draußen ist, sollen die Fenster zugehen, damit nicht mit der Außenfeuchte die Innenfeuchte mit steigt (man sich also die feuchte Luft von außen reinholt). Geht ganz leicht, einfach mit on bei einer bestimmten Uhrzeit die Fenster schließen, wenn es drin trockener als draußen ist. Sobald die Macimalfeuchte im Keller danach erreicht wird, öffnet er wieder nach der Automatik.

            Wenn man nur die Fenster ab und zu manuell aufmachen möchte im Wohnraum, brauch man so etwas natürlich nicht. Bei elektrischen Lüftern oder automatischen Fenstern muss man aber etwas probieren und Erfahrnungswerte sammeln.

            Ich habe ja wegen dem Lüften mit iobroker angefangen und muss sagen, was besseres konnte mir nicht passieren, als iobroker zu entdecken. Tolle Software! Führt leider dazu, dass man den Rest des Hauses gleich mit anbindet :lol:

            iobroker als LXC unter Proxmox

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #134

              super Beschreibung Solear.

              Und mit der Erklärung vom Paul habe ich ein Gefühl, wo der Fehler in meinem Skript liegt. Schaue ich mir nachher mal an.

              Bei der Definition der Räume habe ich eine "Zieltemperatur" definiert. Es müsste aber die Raumminimumtemperatur sein (Auskühlschutz). Kein Wunder, das es keine Lüftungsempfehlung gibt, wenn es draußen nur etwas kühler ist.

              Gesendet von iPhone mit Tapatalk

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #135

                @Solear:

                Man kann auch eine "Sperre" einbauen, nach den bisherigen Skripten ist es ja auch so, dass die Feuchte drin mit der Außenfeuchte ansteigen kann durch das lüften, so lange es drin immernoch feuchter als draußen ist (aber draußen steigt die Feuchte ja auch ab dem Morgen). Das kann evtl. ungeschickt sein.

                Nein, die Kellerfeuchte steigt trotz Lüften, wenn der Feuchteeintrag aus den Wänden stärker ist als die Entfeuchtung durch die trocknere Aussenluft. Lüftet man dann nicht, steigt die Kellerfeuchte noch schneller.

                @Solear:

                DIe Temperatur berücksichtige ich gar nicht, außer es ist im Keller nahe der Taupunktgrenze oder es werden über 25 °C im Keller, dann deaktiviert sich die Öffnung und es schließt.

                Bei einer Kellerlüftung sollte man die Temperaturdifferenz Innen - Aussen tatsächlich nicht berücksichtigen, denn den Keller will man nicht durch Aussenluft kühlen, sondern nur entfeuchten. Mindestraumtemperatur (Winter) und Maximaltemperatur (Sommer) sollten berücksichtigt werden.

                Keller lüften,

                • wenn abs. Aussenfeuchte < abs. Kellerfeuchte - Hysterese (Entfeuchten)
                • UND Innentemperatur <= Kellertemperaturmaximum
                • UND Innentemperatur >= Kellertemperaturminimum + Hysterese (Auskühlschutz)

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Solear
                  schrieb am zuletzt editiert von
                  #136

                  @paul53:

                  @Solear:

                  Man kann auch eine "Sperre" einbauen, nach den bisherigen Skripten ist es ja auch so, dass die Feuchte drin mit der Außenfeuchte ansteigen kann durch das lüften, so lange es drin immernoch feuchter als draußen ist (aber draußen steigt die Feuchte ja auch ab dem Morgen). Das kann evtl. ungeschickt sein. Nein, die Kellerfeuchte steigt ****trotz**** Lüften, wenn der Feuchteeintrag aus den Wänden stärker ist als die Entfeuchtung durch die trocknere Aussenluft. Lüftet man dann nicht, steigt die Kellerfeuchte noch schneller.

                  Vielleicht habe ich mich falsch ausgedrückt,

                  bei mir steigt ohne Lüften die Kellerfeuchte um 1-2 % je Stunde bis auf 80-90 %.

                  Dadurch kann es sein, wenn die absolute Feuchte in den Morgenstunden draußen schneller steigt als drin die umgerechnet relative Feuchtigkeit, dass ich mir in den 3 Morgenstunden von draußen mehr Feuchte reinhole (aber alles noch unterhalb des Schwellwertes von 60 % im Keller) als die Kellerfeuchte ohne Lüften ansteigen würde. Deshalb kann es sich lohnen, früh die Fenster zu schließen. Dann steigt die Kellerfeuchte langsamer an von einem tieferen Wert aus.

                  iobroker als LXC unter Proxmox

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #137

                    @Solear:

                    …dass ich mir in den 3 Morgenstunden von draußen mehr Feuchte reinhole (aber alles noch unterhalb des Schwellwertes von 60 % im Keller) als die Kellerfeuchte ohne Lüften ansteigen würde. Deshalb kann es sich lohnen, früh die Fenster zu schließen. Dann steigt die Kellerfeuchte langsamer an von einem tieferen Wert aus.

                    Nein, dass kann nicht sein, wenn die Bedingung für das Lüften ist: Absolute Aussenfeuchte < absolute Innenfeuchte.

                    Lass Dich nicht dadurch täuschen, dass die abs. Aussenfeuchte schneller steigt als die abs. Kellerfeuchte. Solange die Bedingung (s.o.) gilt, wird durch Lüftung entfeuchtet.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Solear
                      schrieb am zuletzt editiert von
                      #138

                      Mh, stimmt [emoji3] Na zum Glück habe ich den Timer für 8 Uhr noch nicht eingebaut [emoji41]

                      Gesendet von iPhone mit Tapatalk

                      iobroker als LXC unter Proxmox

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #139

                        Das http://forum.iobroker.de/viewtopic.php?f=8&t=2666&p=23676&sid=2fa3b0af7f17bde5f1a4e7949ecb5792&sid=b8069d562410810f54c78eb16b004eee#p23676 habe ich um eine Kellerlüftung (als Kommentar) ergänzt.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        0
                        • ruhr70R Offline
                          ruhr70R Offline
                          ruhr70
                          schrieb am zuletzt editiert von
                          #140

                          @lobomau:

                          @eric2905:

                          Hallo zusammen,

                          dann hier die letzte Version (Script und Widget).

                          Rückmeldungen sind absolut erbeten !!!

                          Gruß,

                          Eric `
                          Hat das seine Richtigkeit, dass die Belüftungsempfehlung false ist für das Bad? Kann ich bei dem abs. Feuchteunterschied gar nicht verstehen.

                          Und noch eine Anfängerfrage: diese Script Codes… schreibe ich das in das Feld CSS vom Script? Und dann muss es bestimmt das Script sein, dass gleich am Anfang vom Code steht, richtig? `

                          Hast Du das Skript noch so aktiv?

                          Wenn ja, kannst Du bitte den Zweig CONTROL mit aufklappen und die Werte dort posten (Temp_Zielwert und Aussensensor).

                          Ich habe die Formel im Skript überprüft und die Formel sieht eigentlich gut aus. Händisch geprüft, sollte im Ergebnis in der Tat "true" und nicht "false" rauskommen. Ich möchte nur sichergehen, was als Zieltemperatur und was als Außensensor eingetragen ist. Dann kann man noch die Luftqualität mit einbeziehen und und und

                          Ansonsten kann man das Thema beliebig kompliziert machen. Entgegen der Formel würde ich z.B. im Arbeitszimmer auch lüften, damit kühlere Luft von Außen reinkommt, wenn wiederum die Luft nicht schon zu trocken wäre (relative Luftfeuchtigkeit).

                          Als Vergleich die Lüftungsempfehlung bei mir aktuell:

                          filename="lüften.jpg" index="0">~~

                          Adapter: Fritzbox, Unify Circuit
                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                          1 Antwort Letzte Antwort
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #141

                            @ruhr70:

                            Entgegen der Formel würde ich z.B. im Arbeitszimmer auch lüften, damit kühlere Luft von Außen reinkommt, wenn wiederum die Luft nicht schon zu trocken wäre (relative Luftfeuchtigkeit).

                            Ja, im Arbeitszimmer würde ich auch Lüften. Die relative Luftfeuchte steigt durch das Lüften, da die Temperatur im Raum sinkt.

                            EDIT: Bei einem Raumfeuchtegehalt von 7 g/kg ist keine Entfeuchtung nötig, aber Kühlung bei über 27 °C.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            • eric2905E Offline
                              eric2905E Offline
                              eric2905
                              schrieb am zuletzt editiert von
                              #142

                              Hi,

                              so nicht mehr, habe es aber noch da.

                              Werde es nachher mal aktivieren und einen Screenshot posten.

                              Bin noch nicht zu Hause und komme daher nicht dran.

                              Gruß,

                              Eric

                              Roses are red, violets are blue,

                              if I listen to metal, my neighbours do too

                              1 Antwort Letzte Antwort
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                schrieb am zuletzt editiert von
                                #143

                                argh…

                                ein Fehler ist drin...

                                xi und xa werden nicht mit der absoluten Feuchtigkeit gefüttert, sondern mit der relativen Luftfeuchtigkeit.

                                Ich werde mir hinterher eh das Script vom eric krallen, möchte jetzt nur wissen, was falsch lief;-)

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Antwort Letzte Antwort
                                0
                                • eric2905E Offline
                                  eric2905E Offline
                                  eric2905
                                  schrieb am zuletzt editiert von
                                  #144

                                  Hi,

                                  @ruhr70:

                                  Hast Du das Skript noch so aktiv?

                                  Wenn ja, kannst Du bitte den Zweig CONTROL mit aufklappen und die Werte dort posten (Temp_Zielwert und Aussensensor). `
                                  so, hier die Screenshots - habe das Script aus meinem Posting nochmal gestartet.

                                  355_raumklima_objekte.png

                                  355_raumklima_vis.png

                                  Gruß,

                                  Eric

                                  Roses are red, violets are blue,

                                  if I listen to metal, my neighbours do too

                                  1 Antwort Letzte Antwort
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    schrieb am zuletzt editiert von
                                    #145

                                    Hi Eric,

                                    danke! Aber ich meinte eigentlich Lobomau ;-), da das da so offensichtlich falsch war:

                                    http://forum.iobroker.net/viewtopic.php … 100#p27581

                                    Hab aber in der Tat einen Fehler gefunden, siehe etwas weiter oben. In xi und xa wurde mit der relativen Luftfeuchtigkeit für den Vergleich gerechnet und nicht mit der absoluten. :-(

                                    Hier ist die korrigierte calc() Funktion (zeigt bei mir gerade in allen Räumen an, dass ich lüften soll:

                                    ! ````
                                    function cob(boolean) { // Color Boolean (farbige ausgabe Boolean als String)
                                    var cobStr = (boolean) ? 'true' : 'false';
                                    return cobStr;
                                    }
                                    ! function calc(raum) { // Über Modul Dewpoint absolute Feuchte berechnen
                                    ! var t = getState(raeume[raum].Sensor_TEMP).val; // Temperatur auslesen
                                    var rh = getState(raeume[raum].Sensor_HUM).val; // Feuchtigkeit relativ auslesen
                                    ! t = makeNumber(t);
                                    rh = makeNumber(rh);
                                    ! var toffset = 0.0; // Offset in °C
                                    var rhoffset = 0; // Offset in %
                                    if(typeof raeume[raum].Sensor_TEMP_OFFSET !=="undefined") {
                                    var idtoffset = pfad + raumPfad+ raum + "." + controlPfad + "Sensor_TEMP_OFFSET";
                                    toffset = getState(idtoffset).val; // Offset aus den Objekten/Datenpunkt auslesen
                                    }
                                    if(typeof raeume[raum].Sensor_HUM_OFFSET !=="undefined") {
                                    var idrhoffset = pfad + raumPfad + raum + "." + controlPfad + "Sensor_HUM_OFFSET";
                                    rhoffset = getState(idrhoffset).val; // Offset aus den Objekten/Datenpunkt auslesen
                                    }
                                    ! t = t + toffset;
                                    rh = rh + rhoffset;
                                    ! var y = xdp.Calc(t, rh);
                                    var x = y.x; // Zu errechnende Variable für Feuchtegehalt in g/kg
                                    var dp = y.dp; // Zu errechnende Variable für Taupunkt in °C
                                    ! var h = 1.00545 * t + (2.500827 + 0.00185894 * t) * x; // Enthalpie berechnen
                                    ! var idx = pfad + raumPfad + raum + "." + raumDatenpunkte["x"].DpName;
                                    var iddp = pfad + raumPfad + raum + "." + raumDatenpunkte["dp"].DpName;
                                    var idt = pfad + raumPfad + raum + "." + raumDatenpunkte["t"].DpName;
                                    var idrh = pfad + raumPfad + raum + "." + raumDatenpunkte["rh"].DpName;
                                    var ih = pfad + raumPfad + raum + "." + raumDatenpunkte["h"].DpName;
                                    ! setState(idx , runden(x,2)); // errechnete absolute Feuchte in Variable schreiben
                                    setState(iddp , runden(dp,1)); // errechneter Taupunkt in Variable schreiben
                                    setState(idt , t); // Sensor Temperatur inkl. Offset
                                    setState(idrh , rh); // Sensor Relative Feuchte inkl. Offset
                                    setState(ih , runden(h,2)); // Enthalpie
                                    ! // Lüftungsempfehlung berechnen
                                    // -------------------------------------------------------------------------
                                    if(typeof raeume[raum].Aussensensor !=="undefined") {
                                    var aussen = raeume[raum].Aussensensor; // aussen = "Raumname" des zugehörigen Aussensensors
                                    var idta = pfad + raumPfad + aussen + "." + raumDatenpunkte["t"].DpName;
                                    //var idxa = pfad + raumPfad + aussen + "." + raumDatenpunkte["rh"].DpName;
                                    var idxa = pfad + raumPfad + aussen + "." + raumDatenpunkte["x"].DpName;
                                    } else {
                                    return;
                                    }
                                    ! var ti = t; // Raumtemperatur in °C
                                    //var xi = rh; // Raumfeuchtegehalt in g/kg
                                    var xi = runden(x,2); // Raumfeuchtegehalt in g/kg
                                    var ta = getState(idta).val; // Aussentemperatur in °C
                                    var xa = getState(idxa).val; // Aussenfeuchtegehalt in g/kg
                                    if (xa == 0) return;
                                    ! var mi = defaultTemp; // Temperaturmittelwert auf Default
                                    ! //if(typeof raeume[raum].TEMP_Zielwert !=="undefined") {
                                    if(typeof raeume[raum].TEMP_Zielwert == "number") {
                                    mi = raeume[raum].TEMP_Zielwert;
                                    }
                                    var mih = mi + 0.25; // Temperaturmittelwert hoch
                                    var mit = mi - 0.25; // Temperaturmittelwert tief
                                    ! var idLueften = pfad + raumPfad + raum + "." + raumDatenpunkte["lüften"].DpName;
                                    ! // Lüftungsempfehlung steuern mit 0,3 g/kg und 0,5 K Hysterese
                                    // (bedingung ? then-ausdruck : else-ausdruck)
                                    var b1lp = (xa <= (xi - 0.4)) ? true : false; // Bedingnung 1 lüften positv (Außenluft ist mind. 0,4 trockener als Innen)
                                    var b2lp = (ta <= (ti - 0.6)) ? true : false; // Bedingnung 2 lüften positv (Außentemperatur ist mindestens 0,6 Grad kühler als innen)
                                    var b3lp = (ti >= mih) ? true : false; // Bedingnung 3 lüften positv (Innentemperatur ist höher als die Zieltemperatur)

                                    var b1ln = (xa >= (xi - 0.1))   ? true : false;   // Bedingnung 1 lüften negativ (Außenluft ist zu feucht)
                                    var b2ln = (ta >= (ti - 0.1))   ? true : false;   // Bedingnung 2 lüften negativ (Außentemperatur zu warm)
                                    var b3ln = (ti <= mit)          ? true : false;   // Bedingnung 3 lüften negativ (Innentemperatur niedriger als Zieltemperatur)
                                    
                                    if (b1lp && b2lp && b3lp) {
                                        setState(idLueften, true);
                                        if (debug) log(raum + ': **Lüftungsempfehlung**');
                                    

                                    ! } else if (b1ln || b2ln || b3ln) {
                                    setState(idLueften, false);
                                    if (debug) log(raum + ': Empfehlung Fenster zu');
                                    }
                                    else if (debug) log(raum + ': im Bereich der Hysterese (keine Änderung der Lüftungsempfehlung');
                                    ! // lüften (und - Alle Bedingungen müssen erfüllt sein):
                                    // #1 - Außenluft ist mind. 0,4 trockener als Innen
                                    // #2 - Außentemperatur ist mindestens 0,6 Grad kühler als innen
                                    // #3 - Innentemperatur ist höher als die Zieltemperatur
                                    ! // nicht lüften (oder):
                                    // #1 - Außenluft ist zu feucht
                                    // #2 - Außentemperatur zu warm
                                    // #3 - Innentemperatur niedriger als Zieltemperatur
                                    ! if (debug) log(raum + ": Außenluft ist zu feucht (b1ln): " + cob(b1ln) + ": xa: " + xa + " >= (xi - 0.1) " + (xi - 0.1));
                                    if (debug) log(raum + ": Außentemperatur zu warm (b2ln): " + cob(b2ln));
                                    if (debug) log(raum + ": Außenluft ist zu feucht (b3ln): " + cob(b3ln));

                                    if (debug) log(raum + ": b1lp: " + b1lp+ ", b2lp: " + b2lp+ ", b3lp: " + b3lp);
                                    

                                    ! if (debug) log(raum + ", ti:"+ti+", ta: "+ta+", xi:"+xi+", xa: "+xa+", mih:"+mih+", mit:"+mit,"info");
                                    if (debug) log("" + raum + " --------------------------------------------");
                                    }
                                    ! ````

                                    Die Variable debug wird am Anfang noch benötigt, da ich ein Logging eingebaut habe.

                                    var debug = true;
                                    
                                    

                                    Adapter: Fritzbox, Unify Circuit
                                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                    1 Antwort Letzte Antwort
                                    0
                                    • lobomauL Offline
                                      lobomauL Offline
                                      lobomau
                                      schrieb am zuletzt editiert von
                                      #146

                                      @ruhr70:

                                      Hi Eric,

                                      danke! Aber ich meinte eigentlich Lobomau ;-), da das da so offensichtlich falsch war: `
                                      Ja, hatte ich noch aktiv. Grad reingeschaut in Control. Steht immer 0%, 0°C, 21°C. Aber du hast ja einen Fehler gefunden. Das neue Script probiere ich mal aus…

                                      Host: NUC8i3 mit Proxmox:

                                      • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                      • Slave: Pi4
                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        Solear
                                        schrieb am zuletzt editiert von
                                        #147

                                        Warum benennt ihr eigentlich die Variablen nie vernünftig? Also etwas länger? [emoji3]

                                        Gesendet von iPhone mit Tapatalk

                                        iobroker als LXC unter Proxmox

                                        1 Antwort Letzte Antwort
                                        0
                                        • paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von paul53
                                          #148

                                          @Solear:

                                          Warum benennt ihr eigentlich die Variablen nie vernünftig?

                                          Die üblichen physikalischen Formel-Kurzzeichen sind vernünftig.

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          685

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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