NEWS
[Skript] Absolute Feuchte berechnen
-
[…]
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… `
Danke schonmal dafür. Schau ich mir gleich im Anschluss mal an und geb bescheid wenn mich noch was interessiert von deiner Systemübersicht. An was ich aber gerade sitze ist nochmal dein Schwellwertskript und das passende VIS widget dazu. 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?
-
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? `
Das sind die Bindings, beschrieben unter:
https://github.com/iobroker/iobroker.vi … of-objects
Du kannst die Felder in VIS direkt mit Datenpunkten verknüpfen.
Du musst Dir nur die benötigte Objekt ID raussuchen und in den geschweiften Klammern eintragen, wo Du sie benötigst.
Entweder unter den Objekten:
Oder im VIS Editor bei einem Widget mit ID (unter ID raussuchen) und dann ausschneiden/einfügen, wo Du es hinhaben willst.
-
Oh… habe die eigentliche Frage falsch gelesen.
Habe mich schon gewundert
-
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.
-
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
! ```` -
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!
-
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
-
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.
-
Super!
das werde ich morgen direkt übernehmen:-)
danke!
Gesendet von iPhone mit Tapatalk
-
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?
-
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
-
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
-
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:
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).
-
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:
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
-
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
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
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.
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).
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
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.
-
-
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
-
Moin,
kannst Du bitte mal einen Screenshot der Fehlersituation posten?
Ggf. ist dann eine mögliche Ursache zu sehen.
Gruß,
Eric
Mit Tapatalk getippert.
-
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 -
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.
-
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.