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

donate donate
  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.5k

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

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

[Skript] Absolute Feuchte berechnen

Geplant Angeheftet Gesperrt Verschoben JavaScript
740 Beiträge 96 Kommentatoren 224.8k 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #274

    Oh… habe die eigentliche Frage falsch gelesen.

    Habe mich schon gewundert ;-)

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

    1 Antwort Letzte Antwort
    0
    • jens.mausJ Offline
      jens.mausJ Offline
      jens.maus
      schrieb am zuletzt editiert von
      #275

      @ruhr70:

      Oh… habe die eigentliche Frage falsch gelesen.

      Habe mich schon gewundert ;-) `

      In der Tat. Mir ist natürlich das mit den Bindings bekannt, allerdings weiss ich nicht wie du diese "javascript.0.Visualisierung…." Datenpunkte generierst. Darum geht es mir.

      RaspberryMatic @ PromoxVE mit ~190 HomeMatic Geräten + ioBroker – GitHub – GitHub Sponsors / PayPal

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

        @jens.maus:

        Das läuft prinzipiell hier schon sehr gut, aber in dem VIS gadget sind z.B. Referenz auf sowas wie '{javascript.0.Visualisierung.Fenster.Farbe_Fenster_Bad}'. Wie genau generierst du die? `

        So, nun mit der richtigen Antwort :roll:

        Das ist ein ""Logik-Skript".

        Das muss ich allerdings mal viel eleganter machen.

        Hatte angefangen, ist gewachsen und ist nun extrem fehleranfällig, wenn man was neues hinzufügt.

        Das kann man besser machen ;-)

        ! ````
        var debug = false;
        ! var dpPfad = "Visualisierung.Fenster" + "."; // In welchem Pfad sollen die Datenpunkte angelegt werden. String mit "." am Ende.
        var instanz = "javascript." + instance + ".";
        ! var farbeInit = "background:rgb(204, 204, 204);";
        var farbeNichtOk = "background:yellow;";
        var farbeOk = "background:lime;";
        ! var idFarbeBadFenster = dpPfad + 'Farbe_Fenster_Bad';
        var idFarbeBadLueften = dpPfad + 'Farbe_Lueften_Bad';
        var idLueftenBad = "javascript.0.Raumklima.Raum.Bad.Lüftungsempfehlung";
        var idFensterOffenBad = "hm-rpc.0.KEQ099999.1.STATE"/Fenster Bad.STATE/;
        var idHystereseBad = "javascript.0.Raumklima.Raum.Bad.DETAILS_Lüftungsempfehlung.Lüften_Hysterese"/Logik im Bereich der Hysterese. Keine Änderung der bestehenden Lüftungsempfehlung./;
        ! var idFarbeSchlafzimmerFenster = dpPfad + 'Farbe_Fenster_Schlafzimmer';
        var idFarbeSchlafzimmerLueften = dpPfad + 'Farbe_Lueften_Schlafzimmer';
        var idLueftenSchlafzimmer = "javascript.0.Raumklima.Raum.Schlafzimmer.Lüftungsempfehlung"/Lüftungsempfehlung/;
        var idFensterOffenSchlafzimmer = "hm-rpc.0.LEQ199999.1.STATE"/Fenster Schlafzimmer.STATE/;
        var idHystereseSchlafzimmer = "javascript.0.Raumklima.Raum.Schlafzimmer.DETAILS_Lüftungsempfehlung.Lüften_Hysterese";
        ! var idFarbeGaestebadTuer = dpPfad + 'Farbe_Tür_Gästebad';
        var idFarbeGaestebadLueften = dpPfad + 'Farbe_Lueften_Gästebad';
        var idLueftenGaestebad = "javascript.0.Raumklima.Raum.Gästebad.Lüftungsempfehlung"/Lüftungsempfehlung/;
        var idTuerOffenGaestebad = "hm-rpc.0.KEQ099999.1.STATE"/Tür Gästebad.STATE/;
        var idHystereseGaestebad = "javascript.0.Raumklima.Raum.Gästebad.DETAILS_Lüftungsempfehlung.Lüften_Hysterese"/Logik im Bereich der Hysterese. Keine Änderung der bestehenden Lüftungsempfehlung./;
        ! var idFarbeKatharinaFenster = dpPfad + 'Farbe_Fenster_Katharina';
        var idFarbeKatharinaLueften = dpPfad + 'Farbe_Lueften_Katharina';
        var idLueftenKatharina = "javascript.0.Raumklima.Raum.Katharina.Lüftungsempfehlung"/Lüftungsempfehlung/;
        var idFensterKatharina = "hm-rpc.0.MEQ199999.1.STATE"/Fenster Katharina/;
        var idHystereseKatharina = "javascript.0.Raumklima.Raum.Katharina.DETAILS_Lüftungsempfehlung.Lüften_Hysterese"/Logik im Bereich der Hysterese. Keine Änderung der bestehenden Lüftungsempfehlung./;
        ! // =============================================================================
        // Datenpunkte anlegen
        // =============================================================================
        function dpAnlegen() {
        ! // einfach angelegte Datenpunkte
        // -----------------------------
        //createState(dpPfad + 'datenpunktName',"Test");
        ! // ausführlich beschriebene Datenpunkte
        // ------------------------------------
        ! createState(idFarbeBadFenster, farbeInit, {
        name: 'Farbe Fenster Bad',
        desc: 'Farbliche Darstellung Badezimmerfenster in Abhängigkeit der Lüftungslogik',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeSchlafzimmerFenster, farbeInit, {
        name: 'Farbe Fenster Schlafzimmer',
        desc: 'Farbliche Darstellung Schlafzimmerzimmerfenster in Abhängigkeit der Lüftungslogik',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeGaestebadTuer, farbeInit, {
        name: 'Farbe Tür Gästebad',
        desc: 'Farbliche Darstellung Gästebadtür in Abhängigkeit der Lüftungslogik',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeKatharinaFenster, farbeInit, {
        name: 'Farbe Fenster Katharina',
        desc: 'Farbliche Darstellung Fenster Katharina in Abhängigkeit der Lüftungslogik',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeSchlafzimmerLueften, farbeInit, {
        name: 'Farbe Lüften Schlafzimmer',
        desc: 'Farbliche Darstellung Lüftungsempfehlung im Schlafzimmer in Abhängigkeit der Lüftungslogik und Fensterstellung',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeBadLueften, farbeInit, {
        name: 'Farbe Lüften Bad',
        desc: 'Farbliche Darstellung Lüftungsempfehlung im Bad in Abhängigkeit der Lüftungslogik und Fensterstellung',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeGaestebadLueften, farbeInit, {
        name: 'Farbe Lüften Gästebad',
        desc: 'Farbliche Darstellung Lüftungsempfehlung im Gästebad in Abhängigkeit der Lüftungslogik und Fensterstellung',
        type: 'string',
        unit: ''
        });
        ! createState(idFarbeKatharinaLueften, farbeInit, {
        name: 'Farbe Lüften Katharina',
        desc: 'Farbliche Darstellung Lüftungsempfehlung im Katharina in Abhängigkeit der Lüftungslogik und Fensterstellung',
        type: 'string',
        unit: ''
        });

        }

        ! // -----------------------------------------------------------------------------
        // Funktionen Funktionen
        // -----------------------------------------------------------------------------
        ! function setFarbe(idLueften,idOffen,idFarbeFenster,idHysterese,idFarbeLueften) {
        var lueften = getState(idLueften).val;
        var offen = getState(idOffen).val;
        var farbe = farbeNichtOk;

            var logikOK     = ((lueften && offen) || (!lueften && !offen )  ? true : false);    // true: optimaler Zustand
        

        ! if(idHysterese) {
        var hysterese = getState(idHysterese).val;
        if (hysterese) {
        logikOK = true;
        }
        }
        ! if(logikOK) farbe = farbeOk;
        setState(idFarbeFenster,farbe); // Farbformatioerung schreiben
        if(idFarbeLueften) {
        setState(idFarbeLueften,farbe); // Farbformatioerung schreiben
        }
        if(debug) log("idLueften: " + idLueften);
        if(debug) log("Lüften: " + lueften + " - offen: " + offen + " - farbe: " + farbe + " - logikOK: " + logikOK);
        if(debug) log("--------------");
        return logikOK; // falls benötigt, Ergebnis der Prüfung
        }
        ! // -----------------------------------------------------------------------------
        // Schedule Schedule
        // -----------------------------------------------------------------------------
        function onAnlegen() {
        ! /*
        // wird um 00:00 ausgeführt
        schedule({hour: 0, minute: 0}, function (){
        // was soll passieren
        });
        */
        ! // -----------------------------------------------------------------------------
        // ON ON
        // -----------------------------------------------------------------------------
        ! // Fenster Bad
        on({id: idLueftenBad,change:'ne'}, function (obj) {
        setFarbe(idLueftenBad,idFensterOffenBad,idFarbeBadFenster,idHystereseBad,idFarbeBadLueften);
        });
        ! on({id: idFensterOffenBad ,change:'ne'}, function (obj) {
        setFarbe(idLueftenBad,idFensterOffenBad,idFarbeBadFenster,idHystereseBad,idFarbeBadLueften);
        });
        ! on({id: idHystereseBad ,change:'ne'}, function (obj) {
        setFarbe(idLueftenBad,idFensterOffenBad,idFarbeBadFenster,idHystereseBad,idFarbeBadLueften);
        });
        ! // Fenster Schlafzimmer
        on({id: idLueftenSchlafzimmer,change:'ne'}, function (obj) {
        setFarbe(idLueftenSchlafzimmer,idFensterOffenSchlafzimmer,idFarbeSchlafzimmerFenster,idHystereseSchlafzimmer,idFarbeSchlafzimmerLueften);
        });
        ! on({id: idFensterOffenSchlafzimmer ,change:'ne'}, function (obj) {
        setFarbe(idLueftenSchlafzimmer,idFensterOffenSchlafzimmer,idFarbeSchlafzimmerFenster,idHystereseSchlafzimmer,idFarbeSchlafzimmerLueften);
        });
        ! on({id: idHystereseSchlafzimmer ,change:'ne'}, function (obj) {
        setFarbe(idLueftenSchlafzimmer,idFensterOffenSchlafzimmer,idFarbeSchlafzimmerFenster,idHystereseSchlafzimmer,idFarbeSchlafzimmerLueften);
        });
        ! // Tür Gästebad
        on({id: idLueftenGaestebad,change:'ne'}, function (obj) {
        setFarbe(idLueftenGaestebad,idTuerOffenGaestebad,idFarbeGaestebadTuer,idHystereseGaestebad,idFarbeGaestebadLueften);
        });
        ! on({id: idTuerOffenGaestebad ,change:'ne'}, function (obj) {
        setFarbe(idLueftenGaestebad,idTuerOffenGaestebad,idFarbeGaestebadTuer,idHystereseGaestebad,idFarbeGaestebadLueften);
        });
        ! on({id: idHystereseGaestebad ,change:'ne'}, function (obj) {
        setFarbe(idLueftenGaestebad,idTuerOffenGaestebad,idFarbeGaestebadTuer,idHystereseGaestebad,idFarbeGaestebadLueften);
        });
        ! // Fenster Katharina
        on({id: idLueftenKatharina,change:'ne'}, function (obj) {
        setFarbe(idLueftenKatharina,idFensterKatharina,idFarbeKatharinaFenster,idHystereseKatharina,idFarbeKatharinaLueften);
        });
        ! on({id: idFensterKatharina ,change:'ne'}, function (obj) {
        setFarbe(idLueftenKatharina,idFensterKatharina,idFarbeKatharinaFenster,idHystereseKatharina,idFarbeKatharinaLueften);
        });
        ! on({id: idHystereseKatharina ,change:'ne'}, function (obj) {
        setFarbe(idLueftenKatharina,idFensterKatharina,idFarbeKatharinaFenster,idHystereseKatharina,idFarbeKatharinaLueften);
        });
        ! }
        ! // =============================================================================
        // main - Hauptprogramm (wird beim Scriptstart ausgeführt) main
        // =============================================================================
        function main() {
        ! // Hauptprogramm nach Timeout (z.B. damit neu angelegte Datenpunkte vorhanden sind)
        // Im Hauptprogramm weiter:
        setFarbe(idLueftenBad ,idFensterOffenBad,idFarbeBadFenster,idHystereseBad,idFarbeBadLueften);
        setFarbe(idLueftenSchlafzimmer,idFensterOffenSchlafzimmer,idFarbeSchlafzimmerFenster,idHystereseSchlafzimmer,idFarbeSchlafzimmerLueften);
        setFarbe(idLueftenGaestebad,idTuerOffenGaestebad,idFarbeGaestebadTuer,idHystereseGaestebad,idFarbeGaestebadLueften);
        setFarbe(idLueftenKatharina,idFensterKatharina,idFarbeKatharinaFenster,idHystereseKatharina,idFarbeKatharinaLueften);
        ! }
        dpAnlegen(); // erst die notwendigen Datenpunkte anlegen
        setTimeout(onAnlegen, 500); // dann die Subscriptions setzen
        setTimeout(main, 1000); // dann das Hauptprogramm starten
        ! ````

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

        1 Antwort Letzte Antwort
        0
        • jens.mausJ Offline
          jens.mausJ Offline
          jens.maus
          schrieb am zuletzt editiert von
          #277

          @ruhr70:

          Das sind zig kleine Skripte. Ich kann gerne hier ein paar Beispiele ablegen.

          […]

          usw. usw.

          Das sind recht viele und individuelle Abfragen.

          Wenn Du aus der Übersicht was gebrauchen kannst, dann kann ich das gezielt posten.

          Alles wäre etwas viel… ;-) `

          Nun hab ich mir die Skripte die du hier gepostet hattest mal zu Gemüte geführt und diese auch alle übernommen. In der Tat würde mich aber noch folgende Skripte interessieren:

          1. Abfrageskript um die Prozessor+RAM Auslastung des Hosts zu ermitteln inkl. Anzahl der Linux Updates, etc. (ist in der Box "ubuntu1604server" zu sehen.

          2. Skript zur Ermittlung der Anzahl der Servicemeldungen, Alarme, UNRECH, LOWBAT Meldungen der CCU2

          3. Skript zur Ermittlung des Status der hue Bridge usw.

          4. Skript zur Ermittlung des Status deiner Diskstation DS1512+ (hab das gleiche Teil ;)

          5. Skript zur Ermittlung des Status des WIFFI-wz

          Und zu guter letzt wäre es noch schön du könntest den gesamten VIS-View deiner Systeminfos mal exportieren und hier zur Verfügung stellen damit ich mir die Darstellung des selben etwas besser abkupfern kann ;)

          Vielen Dank natürlich schon einmal im Voraus!

          RaspberryMatic @ PromoxVE mit ~190 HomeMatic Geräten + ioBroker – GitHub – GitHub Sponsors / PayPal

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

            Hallo, Jens. Bekommst Du. Wird allerdings Sonntag werden. Vorab:

            1. am Sonntag

            2. findest Du auch hier im Forum (nicht von mir). Ansonsten Sonntag

            3. kommt Sonntag, inkl. dem Part, der die aktuell im Internet verfügbare Version abfragt und mit dem Ist-Stand vergleicht

            4. ist ein Skript auf der DS. Auch hier aus dem Forum. Den Part in ioBroker muss ich neu machen. Will da mehr Infos visualisieren. Im VIS View siehst Du, dass auch gerade die wenigen Infos leer bleiben, da ich da schon angefangen hatte.

            5. findest Du auch hier imForum. Ansonsten auch am Sonntag

            Viel Arbeit. Habe aber viel dabei gelernt und man macht es nur einmal.

            Wir scheinen ja fast die identische Ausstattung zu haben. Bei der CCU habe ich von Kassel im Kopf, dass Du aktiv bei einer Softwarelösung mitarbeitest. Das wäre auch mal ein Thema für mich von der CCU2 wegzukommen;-)

            Gesendet von iPhone mit Tapatalk

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

            1 Antwort Letzte Antwort
            0
            • jens.mausJ Offline
              jens.mausJ Offline
              jens.maus
              schrieb am zuletzt editiert von
              #279

              @ruhr70:

              Hallo, Jens. Bekommst Du. Wird allerdings Sonntag werden. `

              OK, dann warte ich mal auf Sonntag. Allerdings war ich selbst auch nicht ganz untätig und hab mal kurzerhand dein Skript zur Generierung dieser "javascript.0.Visualisierung…" Datenpunkte umgeschrieben damit man dort am Anfang einfach nur eine Tabelle aller Räume angeben muss. Des Weiteren kann man jetzt mehr als nur ein Fenster bzw. beliebig viele Verschlüsse angeben:

              ! ````
              var debug = false;
              ! var dpPfad = "Visualisierung.Fenster" + "."; // In welchem Pfad sollen die Datenpunkte angelegt werden. String mit "." am Ende.
              var instanz = "javascript." + instance + ".";
              ! var farbeInit = "background:rgb(204, 204, 204);";
              var farbeNichtOk = "background:yellow;";
              var farbeOk = "background:lime;";
              ! var raumliste = {
              "Badezimmer" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-BZ.STATE/
              },
              "Kinderzimmer" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-KZ-Links.STATE/,
              "verschluss2": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-KZ-Rechts.STATE/
              },
              "Schlafzimmer" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-SZ-Links.STATE/,
              "verschluss2": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-SZ-Rechts.STATE/
              },
              "Gästezimmer" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-GZ-Links.STATE/,
              "verschluss2": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-GZ-Rechts.STATE/
              },
              "Wohnzimmer" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-WZ-Links.STATE/,
              "verschluss2": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-WZ-Rechts.STATE/,
              "verschluss3": "hm-rpc.0.LEQXXXXXX.1.STATE"/Terassentür-WZ.STATE/,
              "verschluss4": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-AZ.STATE/
              },
              "Küche" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-Kü.STATE/,
              "verschluss2": "hm-rpc.0.LEQXXXXXX.1.STATE"/Terassentür-Kü.STATE/
              },
              "WC-EG" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXX.1.STATE"/Fenster-WC-EG.STATE/
              },
              "HWR" : {
              "verschluss1": "hm-rpc.0.MEQXXXXXXX.1.STATE"/Fenster-HWR.STATE/
              }
              };
              ! // =============================================================================
              // Datenpunkte anlegen
              // =============================================================================
              function dpAnlegen() {
              ! // Datenpunkte anhand der Raumliste anlegen lassen
              for (var raum in raumliste) {
              createState(dpPfad + 'Farbe_Fenster_' + raum, farbeInit, {
              name: 'Farbe Fenster ' + raum,
              desc: 'Farbliche Darstellung ' + raum + '-Fenster in Abhängigkeit der Lüftungslogik',
              type: 'string',
              unit: ''
              });
              createState(dpPfad + 'Farbe_Lueften_' + raum, farbeInit, {
              name: 'Farbe Lüften ' + raum,
              desc: 'Farbliche Darstellung Lüftungsempfehlung im ' + raum + ' in Abhängigkeit der Lüftungslogik und Fensterstellung',
              type: 'string',
              unit: ''
              });
              }
              }
              ! // -----------------------------------------------------------------------------
              // Funktionen Funktionen
              // -----------------------------------------------------------------------------
              ! function setFarbe(raumName) {

              var raum = raumliste[raumName];
              var lueften = getState("javascript.0.Raumklima.Raum." + raumName + ".Lüftungsempfehlung").val;
              var offen;
              var farbe = farbeNichtOk;
              
              // kontrollieren ob ein Fenster offen ist
              var i=1;
              var verschluss;
              while((verschluss = raum['verschluss' + i])) {
                  if(getState(verschluss).val) {
                      offen = true;
                      break;
                  }
                  i++;
              }
              
              var logikOK = ((lueften && offen) || (!lueften && !offen )  ? true : false);    // true: optimaler Zustand
              

              ! var hysterese = getState("javascript.0.Raumklima.Raum." + raumName + ".DETAILS_Lüftungsempfehlung.Lüften_Hysterese").val;
              if (hysterese) {
              logikOK = true;
              }
              ! if(logikOK) farbe = farbeOk;

              // Farbformatierung schreiben
              setState(dpPfad + 'Farbe_Fenster_' + raumName, farbe);                     
              setState(dpPfad + 'Farbe_Lueften_' + raumName, farbe);
              
              if(debug) log("idLueften: " + "javascript.0.Raumklima.Raum." + raumName + ".Lüftungsempfehlung");
              if(debug) log("Lüften: " + lueften + " - offen: " + offen + " - farbe: "  + farbe + " - logikOK: " + logikOK);
              if(debug) log("--------------");
              
              // falls benötigt, Ergebnis der Prüfung
              return logikOK;                                     
              

              }

              ! // -----------------------------------------------------------------------------
              // Schedule Schedule
              // -----------------------------------------------------------------------------
              function onAnlegen() {
              ! // Subscriptions anlegen
              for (var raum in raumliste) {

                  // subscription für Lüftungsempfehlung-Änderungen anlegen
                  on({id: "javascript.0.Raumklima.Raum." + raum + ".Lüftungsempfehlung", change:'ne'}, function (obj) {
                      setFarbe(raum);
                  });
              

              ! // subscription für Hysterese-Änderungen anlegen
              on({id: "javascript.0.Raumklima.Raum." + raum + ".DETAILS_Lüftungsempfehlung.Lüften_Hysterese", change:'ne'}, function (obj) {
              setFarbe(raum);
              });

                  // eine subscription für jedes fenster anlegen
                  var i=1;
                  var idVerschluss;
                  while((idVerschluss = raum['verschluss' + i])) {
                      on({id: idVerschluss, change:'ne'}, function (obj) {
                          setFarbe(raum);
                      });
                      i++;
                  }
              }
              

              ! log("Subscriptions angelegt");
              }
              ! // =============================================================================
              // main - Hauptprogramm (wird beim Scriptstart ausgeführt) main
              // =============================================================================
              function main() {
              ! // Hauptprogramm nach Timeout (z.B. damit neu angelegte Datenpunkte vorhanden sind)
              // Im Hauptprogramm weiter:
              for (var raum in raumliste) {
              setFarbe(raum);
              }
              }
              dpAnlegen(); // erst die notwendigen Datenpunkte anlegen
              onAnlegen(); // dann die Subscriptions setzen
              setTimeout(main, 1000); // dann das Hauptprogramm starten
              ! ````

              Vielleicht ist diese leichte Verbesserung ja auch für dich nützlich und du willst sie übernehmen. So ist der Skript auf jedenfall viel besser wattbar, finde ich. :)

              RaspberryMatic @ PromoxVE mit ~190 HomeMatic Geräten + ioBroker – GitHub – GitHub Sponsors / PayPal

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

                Super!

                das werde ich morgen direkt übernehmen:-)

                danke!

                Gesendet von iPhone mit Tapatalk

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

                1 Antwort Letzte Antwort
                0
                • jens.mausJ Offline
                  jens.mausJ Offline
                  jens.maus
                  schrieb am zuletzt editiert von
                  #281

                  @ruhr70:

                  Super!

                  das werde ich morgen direkt übernehmen:-)

                  danke! `

                  Und? Script übernommen? Und wie sieht es mit den Dingen aus die du mir "bis Sonntag" noch posten wolltest hier? ;)

                  RaspberryMatic @ PromoxVE mit ~190 HomeMatic Geräten + ioBroker – GitHub – GitHub Sponsors / PayPal

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

                    Schande über mein Haupt.

                    Beides noch nicht :-(

                    Multihost hatte sich dazwischen geschoben [emoji12]

                    hab dann was für spät Abends zu tun;-)

                    Gesendet von iPhone mit Tapatalk

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

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      simpixo
                      schrieb am zuletzt editiert von
                      #283

                      @jens.maus:

                      Und wie sieht es mit den Dingen aus die du mir "bis Sonntag" noch posten wolltest hier? ;) `

                      Hehe [emoji57] da ist einer sehr ungeduldig! [emoji23][emoji12] aber ich bin froh das du ruhr70 danach gefragt hast, ich habe mich nicht getraut!

                      Auch ich konnte paar interessante Sachen mopsen [emoji12][emoji6][emoji23]

                      Vielen Dank euch beiden!!!

                      Gesendet von iPhone mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • jens.mausJ Offline
                        jens.mausJ Offline
                        jens.maus
                        schrieb am zuletzt editiert von
                        #284

                        @ruhr70:

                        Schande über mein Haupt.

                        Beides noch nicht :-(

                        Multihost hatte sich dazwischen geschoben [emoji12]

                        hab dann was für spät Abends zu tun;-) `

                        Ok, kein Stress :) Wollte nur nochmal etwas daran erinnern ;)

                        Inzwischen hab ich meinen abgekupferten View mit der Raumklima Tabelle wie du fast fertig. Allerdings erschliessen sich mir die Werte darin nicht alle wirklich komplett. Vielleicht könntest du da nochmal bitte etwas aufklären dazu? Siehe hier:

                        481_screenshot_111.png

                        Was mich da vor allem interessieren würde ist die Deutung des Rechten Bereiches:

                        1. Warum werden die geschlossenen Fenster bis auf das im Gästezimmer mit gelbem Hintergrund dargestellt? Ich verstehe das so, das das Fenster zwar geschlossen ist, aber ich es besser öffnen sollte?

                        2. Warum ist das "Lüften" hier mit gelben Hintergrund dargestellt? Hatte das auch mal mit grünem Hintergrund.

                        3. Die Begriffe "En", "Kü" und "Au" sind mir zwar bekannt allerdings ist der Blick auf die Tabelle nicht ganz intuitiv wie ich denke, oder? Weil z.B. nur im Gästezimmer momentan "Au" aus ist und das bedeutet ja "Auskühlschutz". Irgendwie kann ich da nicht richtig deuten was mir die drei werte Sagen sollen? Wenn "En" leuchtet, soll ich dann lüften zum entfeuchten? Und bei Kü zum kühlen? oder wie muss ich die werte genau interpretieren?

                        Wäre schön wenn du (der sich das ausgedacht hat) hier etwas detaillierter gerade auf die Interpretation der Tabelle eingehen könntest (gerade was den rechten Teil angeht).

                        RaspberryMatic @ PromoxVE mit ~190 HomeMatic Geräten + ioBroker – GitHub – GitHub Sponsors / PayPal

                        1 Antwort Letzte Antwort
                        0
                        • jens.mausJ Offline
                          jens.mausJ Offline
                          jens.maus
                          schrieb am zuletzt editiert von
                          #285

                          Hier nun die gleiche Tabelle einige Minuten später nachdem die Frau nachhause gekommen ist und nun die Heizung sich wieder eingeschalten hat und damit dann auch die TEMP_Minimum werte entsprechend angepasst wurden für die Berechnung des Raumklimas:

                          481_screenshot_112.png

                          Was ich hier z.B. im Vergleich zu vorherigen Tabelle nicht verstehe ist:

                          1. Warum wird jetzt "Lüften" in grün beim Gästezimmer angezeigt obwohl sich nichts verändert hat zum alten Status (auch TEMP_Minimum) ist für das Gästezimmer gleich geblieben?!?

                          2. Da die SOLL Temperatur z.B. für das Badezimmer jetzt von 17Grad auf 22 Grad hochgeregelt wurde (und damit auch TEMP_Minimum der Raumklimaberechnung) wird jetzt verständlicherweise nicht mehr "Lüften" in gelb angezeigt sondern ist ganz verschwunden. Allerdings auch das "Au" flag das nach meinem Verständnis doch sagen sollte das der Auskühlschutz deaktiviert ist. Aber es sollte doch das Gegenteil der fall sein? Und warum ist "geschlossen" immer noch gelb und nicht grün?

                          Fragen über Fragen ;)

                          RaspberryMatic @ PromoxVE mit ~190 HomeMatic Geräten + ioBroker – GitHub – GitHub Sponsors / PayPal

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

                            @jens.maus:

                            Was mich da vor allem interessieren würde ist die Deutung des Rechten Bereiches: `

                            Meine Grundüberlegung ist, dass möglichst alles grün sein sollte.

                            Wird alles grün angezeigt, ist alles im grünen Bereich ;-)

                            @jens.maus:

                            1. Warum werden die geschlossenen Fenster bis auf das im Gästezimmer mit gelbem Hintergrund dargestellt? Ich verstehe das so, das das Fenster zwar geschlossen ist, aber ich es besser öffnen sollte? `

                            Die Spalte "Lüften":

                            leer = keine Lüftungsempfehlung

                            Lüften = Lüftungsempfehlung

                            grün = alles OK, entsprechend der Lüftungsempfehlung

                            gelb = Empfehlung ist nicht erfüllt

                            Deine Interpretation passt. Fenster ist trotz Lüftungsempfehlung geschlossen.

                            Daher wird

                            "Lüften" gelb dargestellt -> Lüftungsempfehlung, aber nicht erfüllt

                            "geschlossen" gelb dargestellt -> Fenster sollte zum lüften auf sein

                            @jens.maus:

                            2. Warum ist das "Lüften" hier mit gelben Hintergrund dargestellt? Hatte das auch mal mit grünem Hintergrund. `

                            gelb, da trotz Empfehlung nciht gelüftet wird.

                            Wenn Du nun das Fenster öffnest, dann sollte "Lüften" grün dargestellt werden und die Anzeige des Fensters vom gelben "geschlossen" auf ein grünes "geöffnet" wechseln.

                            @jens.maus:

                            3. Die Begriffe "En", "Kü" und "Au" sind mir zwar bekannt allerdings ist der Blick auf die Tabelle nicht ganz intuitiv wie ich denke, oder? Weil z.B. nur im Gästezimmer momentan "Au" aus ist und das bedeutet ja "Auskühlschutz". Irgendwie kann ich da nicht richtig deuten was mir die drei werte Sagen sollen? Wenn "En" leuchtet, soll ich dann lüften zum entfeuchten? Und bei Kü zum kühlen? oder wie muss ich die werte genau interpretieren?

                            Wäre schön wenn du (der sich das ausgedacht hat) hier etwas detaillierter gerade auf die Interpretation der Tabelle eingehen könntest (gerade was den rechten Teil angeht). `

                            Die Spalten werden nicht benötigt.

                            Die eigentliche Lüftungslogik kommt vom Paul53 und ist von ihm sehr gut im Laufe des Trheads erklärt.

                            Eine Lüftungsempfehlung wird gegeben, wenn alle drei Bedingungen erfüllt werden (logisch und):

                            En -> es kann enlüftet werden

                            Kü -> die Raumtemperatur kann mit lüften abgekühlt werden

                            Au -> Die untere Temperatur (Auskühlschutz) ist noch nciht erreicht

                            Ich habe sie nur für mich in den Spalten visualisiert, um die Logik zu überprüfen.

                            Jetzt im Winter überlege ich, ob ich das für mich nicht noch mit der relativen Luftfeuchtigkeit ergänze.

                            Wenn ein Reum "trocken" ist, muss ich ihn nicht entfeuchten. Eher im Gegenteil. Irgendwo dafür sorgen, dass zusätzliche Luftfeuchtigkeit rein kommt.

                            Werde das noch im Winter angehen.

                            In den heissen Tagen haben die Empfehlungen sehr gut gepasst.

                            Dann werde ich noch einen weiteren Faktor, CO2 mit reinbringen. Also lüften der Luftqualität willen (CO2 und ggf. noch VOC).

                            @jens.maus:

                            Hier nun die gleiche Tabelle einige Minuten später nachdem die Frau nachhause gekommen ist und nun die Heizung sich wieder eingeschalten hat und damit dann auch die TEMP_Minimum werte entsprechend angepasst wurden für die Berechnung des Raumklimas:

                            screenshot_112.png

                            Was ich hier z.B. im Vergleich zu vorherigen Tabelle nicht verstehe ist:

                            1. Warum wird jetzt "Lüften" in grün beim Gästezimmer angezeigt obwohl sich nichts verändert hat zum alten Status (auch TEMP_Minimum) ist für das Gästezimmer gleich geblieben?!? `

                            Sagte ja, dass es eine Fleissarbeit ist.

                            Sieht für mich nach einem Fehler in der Datenpunktauswahl im VIS (Datenpunkt oder Bindings) oder in einem der Skripte (Datenpunktzuordnung) aus.

                            In Deinem optimierten Skript für die Visualisierung hattest Du atlw. uch mehrere Fenster pro Raum. Ggf. liegt hier noch ein Logikproblem vor. Ich habe noch nicht nachgesehen.

                            Kurz, ich würde auf einen falschen Eintrag tippen.

                            Es müsste wie folgt sein:

                            En && Kü && Au gegeben -> Lüftungsempfehlung

                            Fenster geschlossen: Lüftungsempfehlung und geschlossen müssten gelb dargestellt werden.

                            Wobei mir es mir etwas seltsam vorkommt, dass bei 17,3 Grad der Auskühlschutz noch gegeben sein soll.

                            Entweder hast Du die unterste Temperatur für den Raum sehr niedrig eingestellt oder das Skript muss überprüft werden, warum der Auskühlschutz gegeben ist oder es wird der falsche Datenpunkt visualisiert ;-)

                            @jens.maus:

                            2. Da die SOLL Temperatur z.B. für das Badezimmer jetzt von 17Grad auf 22 Grad hochgeregelt wurde (und damit auch TEMP_Minimum der Raumklimaberechnung) wird jetzt verständlicherweise nicht mehr "Lüften" in gelb angezeigt sondern ist ganz verschwunden. Allerdings auch das "Au" flag das nach meinem Verständnis doch sagen sollte das der Auskühlschutz deaktiviert ist. Aber es sollte doch das Gegenteil der fall sein? Und warum ist "geschlossen" immer noch gelb und nicht grün?

                            Fragen über Fragen ;) `

                            An welcher Stelle veränderst Du denn die SOLL Temperaturen?

                            Bei mir sind die einmal star eingestellt. Dynamisch macht zumindestens im Winter / Sommer durchaus Sinn.

                            Zum Badezimmer:

                            "Au" fehlt, also keine Lüftungsempfehlung, da nicht alle drei Bedingungen erfüllt sind.

                            ACHTUNG: es ist noch eine Hysterese-Funktion eingebaut. SO dass im "Grenzbereich" die alte Empfehlung stehen bleibt und nicht wild hin und her springt.

                            Lüftungsempfehlung sollte leer bleiben, da keine Empfehlung > OK

                            Es wird nicht empfohlen zu lüften, also sollte ein geschlossenes Fenster grün angezeigt werden.

                            Hier vermute ich wieder einen Fehler bei der "Fleissarbeit" ;-)

                            Oder die Kurzform:

                            • grün, alles OK

                            • andere Farbe, Handlungsbedarf

                            • einmalig viel Fleissarbeit und Fehleranfällig

                            Ich hatte aber davor gewarnt ;-)

                            Für die anderen Themen (Überwachung der Komponenten, Softwarestände, usw.) mache ich einen neuen Thread auf. Das war hier schon argh offtopic.

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

                            1 Antwort Letzte Antwort
                            0
                            • J Offline
                              J Offline
                              jsc
                              schrieb am zuletzt editiert von
                              #287

                              Hallo in die Runde,

                              ich versuche das Skript aus Seite 13 in Version 0.6.4 in meinem Javascript Adapter zum Laufen zu bringen. Das scheitert leider schon beim reinkopieren. Wenn ich ein neues Skript anlege und dort den Code aus dem Spoiler reinkopiere und speichern möchte bricht der Adapter mit der Log-Meldung "invalid chars" ab und speichert das ganze nicht. Am Charset kann das irgendwie nicht liegen, da hab ich schon alles ausprobiert.

                              Any Ideas?

                              Danke für jeden Hinweis.

                              jsc

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

                                Moin,

                                kannst Du bitte mal einen Screenshot der Fehlersituation posten?

                                Ggf. ist dann eine mögliche Ursache zu sehen.

                                Gruß,

                                Eric

                                Mit Tapatalk getippert.

                                Roses are red, violets are blue,

                                if I listen to metal, my neighbours do too

                                1 Antwort Letzte Antwort
                                0
                                • J Offline
                                  J Offline
                                  jsc
                                  schrieb am zuletzt editiert von
                                  #289

                                  Hier eine der Fehlermeldungen. Hier meckert er über die auskommentierten "================", bei einem ersten Einfügen und speichern meckert er nur mit "cannot decode" und wegen "invalid characters"
                                  1789_unbenannt.png

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

                                    Zeig bitte mal einen Screenshot des Script-Fensters (inkl. des unteren Log-Bereichs ) aus iobroker mit dem eingefügten Code und der dann ggf. gezeigten Fehlermeldung.

                                    Gruß,

                                    Eric

                                    Mit Tapatalk getippert.

                                    Roses are red, violets are blue,

                                    if I listen to metal, my neighbours do too

                                    1 Antwort Letzte Antwort
                                    0
                                    • J Offline
                                      J Offline
                                      jsc
                                      schrieb am zuletzt editiert von
                                      #291

                                      Da kommt einfach nichts. Neues Skript anklicken (icon), Namen auf raumklima_eric setzen, Code aus Seite 13 Spoiler reinkopieren, Speichern drücken. => Im Log passiert nichts. Nur im firebug bei firefox ist das im Screenshot zu sehen. Wenn ich auf ein anderes Skript gehe und wieder zurück auf raumklima_eric, ist das Skript leer.

                                      Im iobroker Log steht nur "javascript.1 2017-01-08 10:50:56.751 info Stop script script.js.testskripte.keller.raumklima_eric", mehr nicht.

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

                                        Screenshot?

                                        PS:

                                        Du hast aber den Mod-Hinweis oben im ersten Post gelesen?

                                        Zitat :

                                        "EDIT Homoran (Mod)

                                        Das jeweils aktuelle Skript zur Gesamtlösung aus diesem Thread befindet sich als letztes in diesem Post."

                                        Mit Tapatalk getippert

                                        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
                                          #293

                                          Hast du den Code unter blockly eingefügt/importiert?

                                          Du musst vorher im pulldown-Menü rechts oben auf javascript umstellen.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          694

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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