NEWS
[gelöst] Skript Frage - 2tes Gerät 10 Minuten später
-
Hallo,
habe zwei Fragen zu einem Script:
!
var idTemp = "fhem.0.ESP03_Temperatur.Temperature"/*ESP03_Temperatur Temperature*/; var idAktor_Innenlicht = "fhem.0.ESP03_Innenlicht.state"/*ESP03_Innenlicht state*/; var idAktor_Notlicht = "fhem.0.ESP03_Notlicht.state"/*ESP03_Notlicht state*/; var idAktor_Heizung = "fhem.0.ESP03_Heizung.state"/*ESP03_Heizung state*/; ! var minOn = false; var temp = getState(idTemp).val; var aktor_Innenlicht = getState(idAktor_Innenlicht).val; var aktor_Notlicht = getState(idAktor_Notlicht).val; var aktor_Heizung = getState(idAktor_Heizung).val; ! function Zeitschaltung() { var morgen = compareTime('06:00', "javascript.0.Tageszeit.Sonnenaufgang", 'between'); var abend = compareTime("javascript.0.Tageszeit.Sonnenuntergang", '22:00', 'between'); if(morgen || abend) { if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true); } else if(aktor_Innenlicht) setState(idAktor_Innenlicht, false); } ! function heizung() { if (temp < 0) { if (!aktor_Heizung) setState(idAktor_Heizung, true); } else if (aktor_Heizung) setState(idAktor_Heizung, false); } ! schedule('* * * * *', Zeitschaltung); !
Das Script ist für einen Stall. Hier soll es zwischen 6:00 und 22:00 "hell" sein, entweder
durch Tageslicht oder durch künstliches Licht (fhem.0.ESP03_Innenlicht.state).
- Was macht das Script, wenn Sonnenaufgang zb um 5:00 Uhr ist? Wenn dieser
um zb 8:00 ist, schaltet er ja hoffentlich ab 6:00 die Lampe an und um 8:00 wieder aus.
- Eine 2te Lampe (fhem.0.ESP03_Notlicht.state) soll abends noch 10 Minuten nachleuchten, sofern
Lampe 1 geschaltet wurde.
zb
22:00 Lampe 1 aus / Lampe 2 an
22:10 Lampe 2 aus
Weiß leider nicht, wie man das einbringen kann.
-
Die Aktorvariablen und die Temperaturvariable werden nie aktualisiert.
var idTemp = "fhem.0.ESP03_Temperatur.Temperature"/*ESP03_Temperatur Temperature*/; var idAktor_Innenlicht = "fhem.0.ESP03_Innenlicht.state"/*ESP03_Innenlicht state*/; var idAktor_Notlicht = "fhem.0.ESP03_Notlicht.state"/*ESP03_Notlicht state*/; var idAktor_Heizung = "fhem.0.ESP03_Heizung.state"/*ESP03_Heizung state*/; var temp = getState(idTemp).val; var aktor_Innenlicht = getState(idAktor_Innenlicht).val; var aktor_Notlicht = getState(idAktor_Notlicht).val; var aktor_Heizung = getState(idAktor_Heizung).val; var timer = null; function Zeitschaltung() { var nacht = compareTime('22:00', '06:00', 'between'); if(nacht && !isAstroDay()) { if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true); } else if(aktor_Innenlicht) setState(idAktor_Innenlicht, false); } function heizung() { if (temp < 0) { if (!aktor_Heizung) setState(idAktor_Heizung, true); } else if (aktor_Heizung) setState(idAktor_Heizung, false); } schedule('* * * * *', Zeitschaltung); on(idTemp, function(dp) { temp = dp.state.val; heizung(); }); on({id: idAktor_Innenlicht, ack: true}, function(dp) { aktor_Innenlicht = dp.state.val; if(timer) clearTimeout(timer); if(!aktor_Innenlicht) { // schaltet aus setState(idAktor_Notlicht, true); // Notlicht ein timer = setTimeout(function() { setState(idAktor_Notlicht, false); }, 600000); // nach 10 Minuten aus } }); on({id: idAktor_Notlicht, ack: true}, function(dp) { aktor_Notlicht = dp.state.val; }); on({id: idAktor_Heizung, ack: true}, function(dp) { aktor_Heizung = dp.state.val; });
EDIT: Korrigiert idAktor_Aussenlicht –> idAktor_Innenlicht
-
danke sehr, ich werde es ausprobieren-
gruß
-
hmm, das Notlicht springt sofort an, geht aber nicht mehr aus.
!
fhem.0 2017-07-16 19:08:00.430 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:08:00.402 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:07:00.406 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:07:00.378 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:06:00.422 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:06:00.381 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:05:00.402 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:05:00.379 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:04:00.406 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:04:00.381 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:03:00.398 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:03:00.380 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:02:00.402 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:02:00.381 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:01:00.401 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:01:00.380 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 19:00:00.410 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 19:00:00.383 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:59:00.411 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:59:00.387 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:58:00.400 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:58:00.379 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:57:00.416 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:57:00.385 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:56:00.406 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:56:00.385 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:55:00.414 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:55:00.386 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:54:00.414 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:54:00.388 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:53:00.415 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on fhem.0 2017-07-16 18:53:00.390 info fhem.0.ESP03_Innenlicht.state.false ==> writeFHEM: set ESP03_Innenlicht off fhem.0 2017-07-16 18:52:00.414 info fhem.0.ESP03_Notlicht.state.true ==> writeFHEM: set ESP03_Notlicht on !
-
Das Licht wird jede Minute ausgeschaltet, was nicht sein dürfte. In die Zeitschaltung habe ich wohl einen Fehler eingebaut (Aussenlicht). Zum Testen baue mal ein Log ein:
function Zeitschaltung() { log('Innenlicht: ' + aktor_Innenlicht); var nacht = compareTime('22:00', '06:00', 'between'); if(nacht && !isAstroDay()) { if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true); } else if(aktor_Innenlicht) setState(idAktor_Innenlicht, false); }
-
danke, das mit dem Aussenlicht hatte ich schon korrigiert, das kanns
nicht gewesen sein.
log:
fhem.0 2017-07-16 22:26:02.702 info fhem.0.ESP03_Heizung.state.false ==> writeFHEM: set ESP03_Heizung off javascript.0 2017-07-16 22:26:00.750 info script.js.common.Hühnerstall: Innenlicht: Swi: off fhem.0 2017-07-16 22:25:02.675 info fhem.0.ESP03_Heizung.state.false ==> writeFHEM: set ESP03_Heizung off javascript.0 2017-07-16 22:25:00.749 info script.js.common.Hühnerstall: Innenlicht: Swi: off fhem.0 2017-07-16 22:24:02.669 info fhem.0.ESP03_Heizung.state.false ==> writeFHEM: set ESP03_Heizung off javascript.0 2017-07-16 22:24:00.749 info script.js.common.Hühnerstall: Innenlicht: Swi: off javascript.0 2017-07-16 22:23:47.750 info script.js.common.Hühnerstall: registered 3 subscriptions and 1 schedule javascript.0 2017-07-16 22:23:47.729 info Start javascript script.js.common.Hühnerstall
-
sonst vielleicht einer ne Idee, warum das hier immer durchläuft?
if(nacht && !isAstroDay()) { if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true); }
! ````
var idTemp = "fhem.0.ESP03_Temperatur.Temperature"/ESP03_Temperatur Temperature/;
var idAktor_Innenlicht = "fhem.0.ESP03_Innenlicht.state"/ESP03_Innenlicht state/;
var idAktor_Notlicht = "fhem.0.ESP03_Notlicht.state"/ESP03_Notlicht state/;
var idAktor_Heizung = "fhem.0.ESP03_Heizung.state"/ESP03_Heizung state/;
! var temp = getState(idTemp).val;
var aktor_Innenlicht = getState(idAktor_Innenlicht).val;
var aktor_Notlicht = getState(idAktor_Notlicht).val;
var aktor_Heizung = getState(idAktor_Heizung).val;
var timer = null;
! function Zeitschaltung()
{
log('Innenlicht: ' + aktor_Innenlicht);
var nacht = compareTime('22:00', '06:00', 'between');
if(nacht && !isAstroDay())
{
if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true);
}
else if(aktor_Innenlicht) setState(idAktor_Innenlicht, false);
}
! function heizung()
{
if (temp < 0)
{
if (!aktor_Heizung) setState(idAktor_Heizung, true);
}
else if (aktor_Heizung) setState(idAktor_Heizung, false);
}
! schedule('* * * * *', Zeitschaltung);
! on(idTemp, function(dp) {
temp = dp.state.val;
heizung();
});
! on(idAktor_Innenlicht, function(dp) {
aktor_Innenlicht = dp.state.val;
if(timer) clearTimeout(timer);
if(!aktor_Innenlicht) { // schaltet aus
setState(idAktor_Notlicht, true); // Notlicht ein
timer = setTimeout(function() {
setState(idAktor_Notlicht, false);
}, 600000); // nach 10 Minuten aus
}
});
! on(idAktor_Notlicht, function(dp) {
aktor_Notlicht = dp.state.val;
});
! on(idAktor_Heizung, function(dp) {
aktor_Heizung = dp.state.val;
}); -
Aus dem Log ist ersichtlich, dass die Aktoren keine boolschen Werte liefern, sondern so etwas wie Swi: off. Dann muss man es in den Skripten entsprechend anpassen. Allerdings hätte ich erwartet, dass der FHEM-Adapter diese Anpassungen vornimmt.
-
Ändere mal in allen on(idAktor..)-Funktionen das
aktor... = dp.state.val;
in
if(dp.state.val.indexOf('on') != -1) aktor... = true; else aktor... = false;
-
bekomme einen Fehler.
javascript.0 2017-07-17 17:35:00.281 error Error in callback: TypeError: dp.state.val.indexOf is not a function
on(idAktor_Notlicht, function(dp) { if(dp.state.val.indexOf('on') != -1) aktor_Notlicht = true; aktor_Notlicht = false; });
-
Eigenartig Bei der Log-Ausgabe hätte ich einen String 'Swi: off' erwartet. Logge mal anstelle der Abfrage:
on(idAktor_Innenlicht, function(dp) { log(dp.state.val + ' ' + typeof dp.state.val); ... });
-
on(idAktor_Notlicht, function(dp) { log(dp.state.val + ' ' + typeof dp.state.val); });
LOG:
javascript.0 2017-07-17 17:47:01.409 info script.js.common.Hühnerstall: Swi: on string javascript.0 2017-07-17 17:47:00.453 info script.js.common.Hühnerstall: true boolean
-
Nach dem Setzen (setState()) wird offenbar ein boolscher Wert geliefert und nach ca. einer Sekunde (ack: true) ein String. Dann versuche es mal so:
on({id: idAktor_Notlicht, ack: true}, function(dp) { log(dp.state.val + ' ' + typeof dp.state.val); });
-
hmm, nun geht nix mehr
Entweder spinnt iobroker oder er mag den "Befehl" nicht
fhem.0 2017-07-17 18:20:18.935 warn Readings "Swi" still not found in "ESP03_Innenlicht" after JsonList2 fhem.0 2017-07-17 18:20:18.455 info Unknown state "ESP03_Innenlicht.Swi fhem.0 2017-07-17 18:20:08.256 warn Readings "Swi" still not found in "ESP03_Heizung" after JsonList2 fhem.0 2017-07-17 18:20:07.581 info Unknown state "ESP03_Heizung.Swi fhem.0 2017-07-17 18:20:04.155 warn Readings "Swi" still not found in "ESP03_Notlicht" after JsonList2 fhem.0 2017-07-17 18:20:03.622 info Unknown state "ESP03_Notlicht.Swi fhem.0 2017-07-17 18:20:03.133 warn Readings "Swi" still not found in "ESP03_Innenlicht" after JsonList2 fhem.0 2017-07-17 18:20:02.568 info Unknown state "ESP03_Innenlicht.Swi host.raspberrypi 2017-07-17 18:20:01.139 info Restart adapter system.adapter.javascript.0 because enabled host.raspberrypi 2017-07-17 18:20:01.137 error instance system.adapter.javascript.0 terminated with code 0 (OK) javascript.0 2017-07-17 18:20:01.019 error at Timer.listOnTimeout (timers.js:92:15) javascript.0 2017-07-17 18:20:01.019 error at null._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:479:11) javascript.0 2017-07-17 18:20:01.019 error at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:175:10) javascript.0 2017-07-17 18:20:01.019 error at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1501:34) javascript.0 2017-07-17 18:20:01.019 error at Object. (script.js.common.Astro:103:4) javascript.0 2017-07-17 18:20:01.019 error at zeiten_speichern (script.js.common.Astro:63:44) javascript.0 2017-07-17 18:20:01.019 error TypeError: Cannot read property 'toLocaleTimeString' of undefined javascript.0 2017-07-17 18:20:00.995 error uncaught exception: Cannot read property 'toLocaleTimeString' of undefined javascript.0 2017-07-17 18:20:00.971 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:20:00.969 error Longitude or latitude does not set. Cannot use astro. fhem.0 2017-07-17 18:20:00.412 warn Readings "Cou" still not found in "ESP04_Gaszaehler" after JsonList2 fhem.0 2017-07-17 18:20:00.343 warn Unknown event "ESPEasy ESP03_Notlicht on" fhem.0 2017-07-17 18:20:00.314 warn Unknown event "ESPEasy ESP03_Innenlicht off" fhem.0 2017-07-17 18:19:59.775 info Unknown state "ESP04_Gaszaehler.Cou fhem.0 2017-07-17 18:19:57.120 warn Readings "Swi" still not found in "ESP03_Aussenlicht" after JsonList2 fhem.0 2017-07-17 18:19:56.556 info Unknown state "ESP03_Aussenlicht.Swi fhem.0 2017-07-17 18:19:55.878 warn Readings "Tem" still not found in "ESP03_Temperatur" after JsonList2 fhem.0 2017-07-17 18:19:55.368 info Unknown state "ESP03_Temperatur.Tem javascript.0 2017-07-17 18:19:39.299 info script.js.common.Müllkalender2push: registered 0 subscriptions and 1 schedule javascript.0 2017-07-17 18:19:39.286 info Start javascript script.js.common.Müllkalender2push javascript.0 2017-07-17 18:19:39.281 info script.js.common.Müllkalender: registered 1 subscription and 1 schedule javascript.0 2017-07-17 18:19:39.253 info script.js.common.Müllkalender: Muellwarnung.GelbeTonne javascript.0 2017-07-17 18:19:39.252 info script.js.common.Müllkalender: Muellwarnung.GrueneTonne javascript.0 2017-07-17 18:19:39.250 info script.js.common.Müllkalender: Muellwarnung.BlaueTonne javascript.0 2017-07-17 18:19:39.248 info script.js.common.Müllkalender: Muellwarnung.Reststoff javascript.0 2017-07-17 18:19:39.239 info Start javascript script.js.common.Müllkalender javascript.0 2017-07-17 18:19:39.235 info script.js.common.Hühnerstall: registered 4 subscriptions and 1 schedule javascript.0 2017-07-17 18:19:39.214 info Start javascript script.js.common.Hühnerstall javascript.0 2017-07-17 18:19:39.209 info script.js.common.LowBat: registered 4 subscriptions and 1 schedule javascript.0 2017-07-17 18:19:39.204 info script.js.common.LowBat: lowbat(4): javascript.0 2017-07-17 18:19:39.047 info Start javascript script.js.common.LowBat javascript.0 2017-07-17 18:19:39.034 info script.js.common.Denon: registered 39 subscriptions and 0 schedules javascript.0 2017-07-17 18:19:39.021 error script.js.common.Denon: ungültige IP Adresse javascript.0 2017-07-17 18:19:38.982 info Start javascript script.js.common.Denon javascript.0 2017-07-17 18:19:38.975 info script.js.common.Astro: registered 0 subscriptions and 9 schedules javascript.0 2017-07-17 18:19:38.953 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.953 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.952 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.952 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.951 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.951 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.950 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.948 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:38.919 info Start javascript script.js.common.Astro javascript.0 2017-07-17 18:19:38.912 info script.js.common.PoolPumpe: registered 2 subscriptions and 1 schedule javascript.0 2017-07-17 18:19:38.812 info Start javascript script.js.common.PoolPumpe javascript.0 2017-07-17 18:19:38.600 info received all objects javascript.0 2017-07-17 18:19:37.748 info received all states javascript.0 2017-07-17 18:19:35.912 info requesting all objects javascript.0 2017-07-17 18:19:35.905 info requesting all states javascript.0 2017-07-17 18:19:35.861 info starting. Version 3.2.6 in /opt/iobroker/node_modules/iobroker.javascript, node: v4.6.2 host.raspberrypi 2017-07-17 18:19:31.130 info instance system.adapter.javascript.0 started with pid 997 fhem.0 2017-07-17 18:19:30.282 warn Readings "Cou" still not found in "ESP04_Gaszaehler" after JsonList2 fhem.0 2017-07-17 18:19:29.746 info Unknown state "ESP04_Gaszaehler.Cou fhem.0 2017-07-17 18:19:08.277 warn Readings "Swi" still not found in "ESP03_Heizung" after JsonList2 fhem.0 2017-07-17 18:19:07.506 info Unknown state "ESP03_Heizung.Swi fhem.0 2017-07-17 18:19:04.032 warn Readings "Swi" still not found in "ESP03_Notlicht" after JsonList2 fhem.0 2017-07-17 18:19:03.563 info Unknown state "ESP03_Notlicht.Swi fhem.0 2017-07-17 18:19:03.092 warn Readings "Swi" still not found in "ESP03_Innenlicht" after JsonList2 fhem.0 2017-07-17 18:19:02.503 info Unknown state "ESP03_Innenlicht.Swi host.raspberrypi 2017-07-17 18:19:01.104 info Restart adapter system.adapter.javascript.0 because enabled host.raspberrypi 2017-07-17 18:19:01.102 error instance system.adapter.javascript.0 terminated with code 0 (OK) javascript.0 2017-07-17 18:19:01.014 error at Timer.listOnTimeout (timers.js:92:15) javascript.0 2017-07-17 18:19:01.014 error at null._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:479:11) javascript.0 2017-07-17 18:19:01.014 error at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:175:10) javascript.0 2017-07-17 18:19:01.014 error at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1501:34) javascript.0 2017-07-17 18:19:01.014 error at Object. (script.js.common.Astro:103:4) javascript.0 2017-07-17 18:19:01.014 error at zeiten_speichern (script.js.common.Astro:63:44) javascript.0 2017-07-17 18:19:01.014 error TypeError: Cannot read property 'toLocaleTimeString' of undefined javascript.0 2017-07-17 18:19:00.991 error uncaught exception: Cannot read property 'toLocaleTimeString' of undefined javascript.0 2017-07-17 18:19:00.962 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:19:00.960 error Longitude or latitude does not set. Cannot use astro. fhem.0 2017-07-17 18:19:00.680 warn Readings "Cou" still not found in "ESP04_Gaszaehler" after JsonList2 fhem.0 2017-07-17 18:19:00.363 warn Unknown event "ESPEasy ESP03_Notlicht on" fhem.0 2017-07-17 18:19:00.280 warn Unknown event "ESPEasy ESP03_Innenlicht off" fhem.0 2017-07-17 18:18:59.715 info Unknown state "ESP04_Gaszaehler.Cou fhem.0 2017-07-17 18:18:57.102 warn Readings "Swi" still not found in "ESP03_Aussenlicht" after JsonList2 fhem.0 2017-07-17 18:18:56.477 info Unknown state "ESP03_Aussenlicht.Swi fhem.0 2017-07-17 18:18:55.818 warn Readings "Tem" still not found in "ESP03_Temperatur" after JsonList2 fhem.0 2017-07-17 18:18:55.290 info Unknown state "ESP03_Temperatur.Tem javascript.0 2017-07-17 18:18:48.280 info script.js.common.Müllkalender2push: registered 0 subscriptions and 1 schedule javascript.0 2017-07-17 18:18:48.267 info Start javascript script.js.common.Müllkalender2push javascript.0 2017-07-17 18:18:48.263 info script.js.common.Müllkalender: registered 1 subscription and 1 schedule javascript.0 2017-07-17 18:18:48.228 info script.js.common.Müllkalender: Muellwarnung.GelbeTonne javascript.0 2017-07-17 18:18:48.227 info script.js.common.Müllkalender: Muellwarnung.GrueneTonne javascript.0 2017-07-17 18:18:48.225 info script.js.common.Müllkalender: Muellwarnung.BlaueTonne javascript.0 2017-07-17 18:18:48.223 info script.js.common.Müllkalender: Muellwarnung.Reststoff javascript.0 2017-07-17 18:18:48.214 info Start javascript script.js.common.Müllkalender javascript.0 2017-07-17 18:18:48.210 info script.js.common.Hühnerstall: registered 4 subscriptions and 1 schedule javascript.0 2017-07-17 18:18:48.192 info Start javascript script.js.common.Hühnerstall javascript.0 2017-07-17 18:18:48.187 info script.js.common.LowBat: registered 4 subscriptions and 1 schedule javascript.0 2017-07-17 18:18:48.183 info script.js.common.LowBat: lowbat(4): javascript.0 2017-07-17 18:18:48.009 info Start javascript script.js.common.LowBat javascript.0 2017-07-17 18:18:48.003 info script.js.common.Denon: registered 39 subscriptions and 0 schedules javascript.0 2017-07-17 18:18:47.997 error script.js.common.Denon: ungültige IP Adresse javascript.0 2017-07-17 18:18:47.962 info Start javascript script.js.common.Denon javascript.0 2017-07-17 18:18:47.956 info script.js.common.Astro: registered 0 subscriptions and 9 schedules javascript.0 2017-07-17 18:18:47.940 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.940 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.939 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.939 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.938 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.938 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.937 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.936 error Longitude or latitude does not set. Cannot use astro. javascript.0 2017-07-17 18:18:47.907 info Start javascript script.js.common.Astro javascript.0 2017-07-17 18:18:47.901 info script.js.common.PoolPumpe: registered 2 subscriptions and 1 schedule javascript.0 2017-07-17 18:18:47.786 info Start javascript script.js.common.PoolPumpe javascript.0 2017-07-17 18:18:47.619 info received all objects javascript.0 2017-07-17 18:18:46.891 info received all states javascript.0 2017-07-17 18:18:45.212 info requesting all objects javascript.0 2017-07-17 18:18:45.204 info requesting all states javascript.0 2017-07-17 18:18:45.161 info starting. Version 3.2.6 in /opt/iobroker/node_modules/iobroker.javascript, node: v4.6.2
-
javascript.0 2017-07-17 18:18:47.936 error Longitude or latitude does not set. Cannot use astro.
Du solltest erst einmal die Koordinaten eingeben, damit die Funktion isAstroDay() funktionieren kann.
-
Erzeuge erst einmal ein reines Test-Skript, damit wir über die Werte Bescheid wissen.
var idTemp = "fhem.0.ESP03_Temperatur.Temperature"/*ESP03_Temperatur Temperature*/; var idAktor_Innenlicht = "fhem.0.ESP03_Innenlicht.state"/*ESP03_Innenlicht state*/; var idAktor_Notlicht = "fhem.0.ESP03_Notlicht.state"/*ESP03_Notlicht state*/; var idAktor_Heizung = "fhem.0.ESP03_Heizung.state"/*ESP03_Heizung state*/; var temp = getState(idTemp).val; var aktor_Innenlicht = getState(idAktor_Innenlicht).val; var aktor_Notlicht = getState(idAktor_Notlicht).val; var aktor_Heizung = getState(idAktor_Heizung).val; var timer = null; log('Temp ' + temp + ' ' + typeof temp); log('Innen ' + aktor_Innenlicht + ' ' + typeof aktor_Innenlicht); log('Not ' + aktor_Notlicht + ' ' + typeof aktor_Notlicht); log('Heizung ' + aktor_Heizung + ' ' + typeof aktor_Heizung);
-
sind drin, auch vorher schon.
hatte iobroker gerade upgedatet (discovery/vis)
nun spinnt er… wenns wieder läuft, kommt das LOG
-
so
22:12:56.811 [info] javascript.0 Start javascript script.js.common.test 22:12:56.815 [info] javascript.0 script.js.common.test: Temp 18.5 number 22:12:56.816 [info] javascript.0 script.js.common.test: Innen Swi: off string 22:12:56.816 [info] javascript.0 script.js.common.test: Not Swi: off string 22:12:56.818 [info] javascript.0 script.js.common.test: Heizung Swi: off string 22:12:56.819 [info] javascript.0 script.js.common.test: registered 0 subscriptions and 0 schedules
-
Dann sollte das Skript an ein paar Stellen umgebaut werden.
! ````
var idTemp = "fhem.0.ESP03_Temperatur.Temperature"/ESP03_Temperatur Temperature/;
var idAktor_Innenlicht = "fhem.0.ESP03_Innenlicht.state"/ESP03_Innenlicht state/;
var idAktor_Notlicht = "fhem.0.ESP03_Notlicht.state"/ESP03_Notlicht state/;
var idAktor_Heizung = "fhem.0.ESP03_Heizung.state"/ESP03_Heizung state/;
! var temp = getState(idTemp).val;
var aktor_Innenlicht = false;
if(getState(idAktor_Innenlicht).val.indexOf('on') != -1) aktor_Innenlicht = true;
var aktor_Notlicht = false;
if(getState(idAktor_Notlicht).val.indexOf('on') != -1) aktor_Notlicht = true;
var aktor_Heizung = false;
if(getState(idAktor_Heizung).val.indexOf('on') != -1) aktor_Heizung = true;
var timer = null;
! function Zeitschaltung()
{
var nacht = compareTime('22:00', '06:00', 'between');
if(nacht && !isAstroDay())
{
if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true);
}
else if(aktor_Innenlicht) setState(idAktor_Innenlicht, false);
}
! function heizung()
{
if (temp < 0)
{
if (!aktor_Heizung) setState(idAktor_Heizung, true);
}
else if (aktor_Heizung) setState(idAktor_Heizung, false);
}
! schedule('* * * * *', Zeitschaltung);
! on(idTemp, function(dp) {
temp = dp.state.val;
heizung();
});
! on({id: idAktor_Innenlicht, ack: true}, function(dp) {
if(typeof dp.state.val == 'string') {
if(dp.state.val.indexOf('on') != -1) aktor_Innenlicht = true;
else aktor_Innenlicht = false;
}
if(timer) clearTimeout(timer);
if(!aktor_Innenlicht) { // schaltet aus
setState(idAktor_Notlicht, true); // Notlicht ein
timer = setTimeout(function() {
setState(idAktor_Notlicht, false);
}, 600000); // nach 10 Minuten aus
}
});
! on({id: idAktor_Notlicht, ack: true}, function(dp) {
if(typeof dp.state.val == 'string'){
if(dp.state.val.indexOf('on') != -1) aktor_Notlicht = true;
else aktor_Notlicht = false;
}
});
! on({id: idAktor_Heizung, ack: true}, function(dp) {
if(typeof dp.state.val == 'string') {
if(dp.state.val.indexOf('on') != -1) aktor_Heizung = true;
else aktor_Heizung = false;
}
}); -
Allerdings hätte ich erwartet, dass der FHEM-Adapter diese Anpassungen vornimmt. `
Habe mir den FHEM-Adapter mal angesehen und festgestellt, dass der Adapter die Anpassung macht: ' on' –> true, ' off' --> false.Allerdings kann er er mit 'Swi: on' und 'Swi: off' nichts anfangen. Woher kommt das 'Swi:' ? Hast Du eventuell die FHEM-Namenskonventionen nicht beachtet ?