NEWS
Javascript Adapter 2.03, Feedback
-
Bei mir bildet jeder Raum eine Gruppe, außerdem "Aussen". `
Mit Hilfe der Gruppennamen und der neuen Funktion "name" kann ich Skripte für mehrere Räume kopieren, ohne Änderungen nach dem Kopieren vornehmen zu müssen (außer eventuelle Offsets). Beispiel:// Sensorwerte um Offset korrigieren, abs. Feuchte und Taupunkt berechnen und (inkl. Enthalpie) anzeigen // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; // Offsets var toffset = 0.0; // in K var rhoffset = 0; // in % var tsid = getIdByName(raum + ".WT-Temperatur"); var hsid = getIdByName(raum + ".WT-rel.Feuchte"); var tid = getIdByName(raum + ".Temperatur"); var rhid = getIdByName(raum + ".rel_Feuchte"); var xid = getIdByName(raum + ".Feuchtegehalt"); var dpid = getIdByName(raum + ".Taupunkt"); var aid = getIdByName(raum + ".Klima"); var t = getState(tsid).val + toffset; // Temperatur, korrigiert in °C var rh = getState(hsid).val + rhoffset; // rel. Feuchte, korrigiert in % var x; // Feuchtegehalt in g/kg var dp; // Taupunkt in °C var DP = require('dewpoint'); // 70 m über NN var xdp = new DP(70); function calc() { var y = xdp.Calc(t, rh); x = y.x; dp = y.dp; setState(xid, x); setState(dpid, dp); } function anzeige() { // Enthalpie berechnen var h = (1.00545 * t + (2.500827 + 0.00185894 * t) * x).toFixed(1) + " kJ/kg"; var anz = "t: " + t.toFixed(1) + " °C" + ' rH: ' + rh + " %" + ' x: ' + x.toFixed(2) + " g/kg" + ' dp: ' + dp.toFixed(1) + " °C" + ' h: ' + h; setState(aid, anz); } function klima() { calc(); anzeige(); } klima(); // Script start on(tsid, function (dp) { t = dp.state.val + toffset; setState(tid, t); klima(); }); on(hsid, function (dp) { rh = dp.state.val + rhoffset; setState(rhid, rh); klima(); });
-
Bei mir bildet jeder Raum eine Gruppe, außerdem "Aussen".
Mit Hilfe der Gruppennamen und der neuen Funktion "name" kann ich Skripte für mehrere Räume kopieren, ohne Änderungen nach dem Kopieren vornehmen zu müssen.
Super Idee!
Aber auch das Script ist interessant… kannst Du auch die anderen dazugehörigen Scripts posten?
-
…kannst Du auch die anderen dazugehörigen Scripts posten? `
Hier ein Beispiel für einen 2-Punkt-Regler zur Raumheizung:!
// 2-Punkt-Regler Raumheizung ! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; ! // halbe Hysterese in K var hh = 0.1; ! var xid = getIdByName(raum + ".Temperatur"); var wid = getIdByName(raum + ".Sollwert"); var yid = getIdByName(raum + ".Heizen"); var x = getState(xid).val; // Istwert in °C var w = getState(wid).val; // Sollwert in °C ! function hys() { if (x <= w - hh) setState(yid, true); else if (x >= w + hh) setState(yid, false); } ! hys(); // Script start ! on(xid, function(dp) { x = dp.state.val; hys(); }); ! on(wid, function(dp) { w = dp.state.val; hys(); }); !
-
…kannst Du auch die anderen dazugehörigen Scripts posten?
Hier ein Beispiel für einen 2-Punkt-Regler zur Raumheizung:
mmmh.. und der Teil, in dem die Datenpunkte erstellt und aktualisiert werden.
Ich habe leider keine Heizungssteuerung, sondern nur sieben Thermostate (HM-TC-IT-WM-W-EU und HM-WDS40-TH-I). Die Fußbodenheizung wird manuell geregelt.
Ich dachte, ich könnte mir aus Deinem Script die Visualisierung des Taupunktes, usw. "klauen". Aber irgendwie fehlt mir da noch einiges.
-
Ich dachte, ich könnte mir aus Deinem Script die Visualisierung des Taupunktes, usw. "klauen". Aber irgendwie fehlt mir da noch einiges. `
Die HTML-Formaterung in der Funktion "anzeige" dient nur der Anzeige im Admin-Reiter "Zustände". Ich benutze kein VIS.
filename="Anzeige_Zustände.JPG" index="0">~~
Den Feuchtegehalt (x) benutze ich zusammen mit der Temperatur durch Vergleich Aussen-Innen zur Lüftungsempfehlung.!
// Raumlüftung ! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; ! var tiid = getIdByName(raum + ".Temperatur"); var taid = getIdByName("Aussen.Temperatur"); var xiid = getIdByName(raum + ".Feuchtegehalt"); var xaid = getIdByName("Aussen.Feuchtegehalt"); var lid = getIdByName(raum + ".Lueften"); ! var ti = getState(tiid).val; // Raumtemperatur in °C var ta = getState(taid).val; // Aussentemperatur in °C var xi = getState(xiid).val; // Raumfeuchtegehalt in g/kg var xa = getState(xaid).val; // Aussenfeuchtegehalt in g/kg ! // Lüftung steuern mit 0,3 g/kg und 0,5 K Hysterese function lueften() { if (xa <= (xi - 0.4) && ta <= (ti - 0.6) && ti >= 22.0) setState(lid, true); else if (xa >= (xi - 0.1) || ta >= (ti - 0.1) || ti <= 21.5) setState(lid, false); } ! lueften(); // Script start ! on(xiid, function (dp) { xi = dp.state.val; lueften(); }); ! on(xaid, function (dp) { xa = dp.state.val; lueften(); }); ! on(tiid, function (dp) { ti = dp.state.val; lueften(); }); ! on(taid, function (dp) { ta = dp.state.val; lueften(); }); !
-
Gestern Abend ist mir was komisches passiert.
Wollte ein neues Script anlegen. Blöderweise habe ich eine Gruppe angelegt.
Naja, wieder gelöscht und das selbe Phänomen wie bei anderen - nix gelöscht… Workaround funktionierte.
Nun aber wirklich ein neues Script angelegt und etwas mit dem Code rumgespielt.
Dann Script wieder gelöscht --> Workaround...
Nun das Komische:
alle Scripte bis auf "common" und "global" sind weg (auch die Alten!), ABER das von mir gelöschte wird im Log weiterhin alle 5 Minuten als "gestartet" aufgeführt...
Meine 2 Fragen:
Wo sind meine ursprünglichen Scripte hin?
Warum wird ein gelöschtes Script gestartet?
Vielen Dank für eure Antworten!
-
Gestern Abend ist mir was komisches passiert.
Wollte ein neues Script anlegen. Blöderweise habe ich eine Gruppe angelegt.
Naja, wieder gelöscht und das selbe Phänomen wie bei anderen - nix gelöscht… Workaround funktionierte.
Nun aber wirklich ein neues Script angelegt und etwas mit dem Code rumgespielt.
Dann Script wieder gelöscht --> Workaround...
Nun das Komische:
alle Scripte bis auf "common" und "global" sind weg (auch die Alten!), ABER das von mir gelöschte wird im Log weiterhin alle 5 Minuten als "gestartet" aufgeführt...
Meine 2 Fragen:
Wo sind meine ursprünglichen Scripte hin?
Warum wird ein gelöschtes Script gestartet?
Vielen Dank für eure Antworten! `
Hoch Wahrscheinlich sind deine Scripte weg :?Ich werde aber die Prüfung, ob Name frei ist, einbauen.
-
Hoch Wahrscheinlich sind deine Scripte weg :? `
Damit habe ich schon gerechnet… leider... :oops:aber warum läuft ein Script was bereits gelöscht und auch in der Übersicht nicht mehr zu sehen ist?
-
aber warum läuft ein Script was bereits gelöscht und auch in der Übersicht nicht mehr zu sehen ist? `
Fehler…Starte instance neu.
-
Fehler…
Starte instance neu. `
führt immer noch zum Fehler…
Selbst dann noch wenn ich die Instance (javascript.0, habe nur die eine) lösche und neu anlege...
Neustart des Banana hat auch nichts gebracht...
983_fehler_javascript_reiter_scripte.jpg
983_fehler_javascript_log.jpg -
Fehler…
Starte instance neu. `
führt immer noch zum Fehler…
Selbst dann noch wenn ich die Instance (javascript.0, habe nur die eine) lösche und neu anlege...
Neustart des Banana hat auch nichts gebracht... `
Gehe zur Objektlasche, schalte Expert Mode an. Was siehst du unter "scrtip.js.*" ? -
Ich habe ein ähnliches Problem:
filename="2016-03-15%2017_26_31-ioBroker.admin.png" index="0">~~
Ich bekomme das WOL-Synology Script einfach nicht gelöscht.
Gibt es hier einen Tipp ?
-
Gehe zur Objektlasche, schalte Expert Mode an. Was siehst du unter "scrtip.js.*" ? `
sowas?mir ist aber grad noch etwas aufgefallen.
Habe meinLOWBAT-Script mal wieder angelegt, dann war der Fehler aus dem log weg.
Lösche ich das LOWBAT-Script wieder ist der Fehler wieder da.
Mich verwirrt nur im LOG das Script "Skript1" was ich anfangs mal angelegt habe…
Meine Vermutung ist, der Fehler tritt auf wenn die JavaScript-Instance läuft aber keine Scripte vorhanden sind die ausgeführt werden können.
983_fehler_javascript_reiter_scripte2.jpg -
Ich habe ein ähnliches Problem:
filename="2016-03-15%2017_26_31-ioBroker.admin.png" index="0">~~
Ich bekomme das WOL-Synology Script einfach nicht gelöscht.
Gibt es hier einen Tipp ? `
probier mal den Workaround von looxer01
EDIT: Workaround ist: nach loeschen die ioBroker Seite neu aufrufen. Sofort nach loeschen einer Gruppe. Dann bleibt dies Gruppe auch verschwunden getestet mir Firefox und Chrome
-
Ich habe ein ähnliches Problem:
filename="2016-03-15%2017_26_31-ioBroker.admin.png" index="0">~~
Ich bekomme das WOL-Synology Script einfach nicht gelöscht.
Gibt es hier einen Tipp ? `
Entwider ist da in der Konsole ein Fehler (muss ich sehen) oder es wird mit F5 alles gut. -
Auch mit F5 bekomm ich die Seite nicht angepasst. Und den Workaround kann ich nicht testen, da ich hier keinen löschen Button habe.
-
Auch mit F5 bekomm ich die Seite nicht angepasst. Und den Workaround kann ich nicht testen, da ich hier keinen löschen Button habe. `
Bitte in Objektlasche "Expert mode" einschalten.
Was sieht man da? -
Ich bekomme da nichts.
Es gibt bei mir kein script.js
-
Ich bekomme da nichts.
Es gibt bei mir kein script.js
filename="2016-03-15 20_45_20-ioBroker.admin.png" index="0">~~ `
Du hast filter "state" -