NEWS
[Vorlage] Anwesenheitssimulation - Script
-
Habe ich jetzt bei Tasmota mit Bindestrich gemacht.
Mehr als das ist nicht zu machen.
{ "from": "system.adapter.sonoff.0", "ts": 1548865691067, "common": { "name": "Deckenleuchte-Eingang POWER", "type": "boolean", "role": "switch", "read": true, "write": true, "storeMap": true, "smartName": { "de": "Eingangsbeleuchtung" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "sonoff.0.Deckenleuchte-Eingang.POWER", "type": "state" }
Grüße
-
Hallo,
Dann müstes du "sonoff.0.Deckenleuchte-Eingang.POWER" im Script eingeben.
-
Habe ich - tut nich.
Nur zur Info. Ich habe hier noch einen HM-Steckdosenschalter. Mit dem funktioniert es zu 100%.
-
-
Hatte auch mal sonoff drinnen… Glaube das . Power macht Probleme... Hab dann die homematic rein genommen... Kleines hilfsscript könnte helfen mit . STATE am Ende welches die sonoff triggert...vlt geht's aber auch so mittlerweile
Gesendet von meinem CLT-L09 mit Tapatalk `
Wie würde das denn aussehen?
Grüße
-
Frage an die Fachleute: wie lange darf z.B. cron1 sein? Oder präzise: darf cron1 nur Werte zwischen 0 und 60 annehmen? Oder kann der auch z.B. 90 sein, d.h. alle 90 Minuten wird ein geprüft und ein Gerät geschaltet?
-
Hallo zusammen,
ich habe hier ein paar Sonoff Basics (mit Tasmota) an ein paar Lampen.
Ist der Eintrag in dem Einstellungsberich so richtig?
Es tut sich leider nichts.
var IDGruppe11 = "sonoff.0.Deckenleuchte Eingang.POWER"; // Licht Wohnzimmer
Grüße
Manfred `
So, vielen Dank an Looxer. Das Problem ist erkannt, und es wird in der nächsten Version behoben. Er hat bei meinem Script einen kleine "Eingriff" gemacht. Nun läuft alles wie gewünscht. Etwas war mit der "Rolle" - "State" und "Switch". Mein Beitrag begrenzte sich auf – Mund auf und nur Staunen. :shock:
Sehr netter Kontakt. So wie er "mal eben" im Script herum gesaust ist - wirklich, er weiß was er macht.
Noch mal vielen Dank für die Hilfe.
-
Doch noch ein paar Fragen.
Also, ich habe in den Einstellungen es so eingetragen, das wenn die Anwesenheitssimulation ausgeschaltet wird, alle beteiligten Geräte auch ausgeschaltet werden.
Das funktioniert auch soweit.
ABER
Ich habe nur eine Gruppe. Also die 1. Gruppe. Dort ist eine "von - bis" Zeit eingetragen Von 18:20 bis 23:00 Uhr.
Ich verstehe die Zeit so, das die Anwesenheitssimulation NUR in dieser Zeit die Geräte schaltet, richtig? Also wenn ich um 17 Uhr das Haus verlasse, schaltet sich die Anwesenheitssimulation ein, beginnt aber erst mit der Simulation um 18:20 Uhr, oder?
Ich habe es noch nicht probiert, aber ich gehe mal davon aus, das es so ist.
Mein Problem ist jetzt, Wenn Lampe "A" von mir um 15 Uhr eingeschaltet wird und ich verlasse mein Haus (Anwesenheitssimulation AN), komme um 16 Uhr wieder (Anwesenheitssimulation AUS), schaltet mir die Anwesenheitssimulation die Lampe aus, obwohl sie eigentlich noch nicht "drann" ist. Laut Einstellung ist sie ja erst ab 18:20 Uhr im Spiel.
Kann ich das noch an anderer Stelle einstellen?
Grüße
Manfred
-
Keine eine Idee?
-
Ich hatte da mal eine Frage...
Ich nutze das Script und es läuft bei mir immer, mit Astrofunktion, (24/7).
Ich würde allerdings den Zufallsmechanismus des Sripts gerne ZUSÄTZLICH nutzen, um weitere Geräte zu schalten. Dafür soll das Script unter bestimmten Bedingungen ein- und ausgeschaltet werden.
Meine Idee war, einfach das bestehende Script zu kopieren und es unter einen zweiten Namen, quasi als zweite Instanz, laufen zu lassen.
Ich bin mir aber nicht sicher, ob das möglich ist, weil ja Variablen angelegt werden etc.
Habe ich das Problem verständlich formuliert? Hat jemand einen Lösungsansatz für mich?
-
Guten Morgen,
erstmal ein großes Lob an den looxer01.
Ich teste das Script nun seit einigen Tagen und habe es auf meine Bedürfnisse (vermeintlich) für die Nutzung mit Shelly1 Lichtschalterrelais angepasst.Ich habe dazu einige Verständnisfragen:
Ich habe die Einschaltdauer und die Häufigkeit der cronjobs nicht angepasst.
Lediglich die Zeiträume und logischerweise die Schalter wurden von mir ersetzt.
Jetzt kommt es in der "Fernsehphase" jedoch im Wohnzimmer häufig zu dunkelzeiten.
Ziel sollte jedoch sein, dass im Wohnzimmer (Gruppe2) das Licht durchgängig leuchtet.
Ich habe in Gruppe 2 nur 2 Räume zugeordnet und steuere mit Gruppe 3 das beliebig im Haus (WC, Küche oder Flur) mal das Licht eingeschaltet wird.Ich bin selber neu in iobroker und um Scripten nur rudimentär unterwegs.
Die angegebene Anzahl der Geräte sollte doch dafür sorgen, dass immer ein Licht eingeschaltet ist, sofern diese exakt mit der Anzahl der zu schaltenden Geräte übereinstimmt, oder habe ich da einen Denkfehler?
Die zweite Frage ist. Wozu brauche ich den State AWSaktiv? Ist das Script so gedacht, dass es rund um die uhr läuft und durch setzen der Variable auch etwas ausführt? Man könnte doch das ganze Script einfach mittels VIS Schalter aktivieren bzw deaktivieren, dann läuft die Simulation nicht ganztägig? Oder habe ich auch hier einen Denkfehler?
Hat hier sonst noch jemand das Script mit Shellys in Benutzung?
Sofern ich die Shellys über das Menü ins Script einfüge steht am Ende immer ein /Switch/. Da es in der Vorlage nicht vorhanden war habe ich es entfernt und es funktioniert trotzdem.
Meine Frage: Was soll die o.g. Zeichenfolge?Vielen Dank vorab!
-
Mir ist noch etwas aufgefallen.
Ich habe das Script wie folgend mit Zeiten konfiguriert. Gestern abend bzw. heute morgen hat das Script bis nach 1 uhr noch fröhilich Licht an und aus geschaltet, obwohl es laut Zeitvorgabe nach 0 Uhr nichts mehr schalten sollte.
Vor allem Gruppe 1 und Gruppe 2 haben geschaltet (wobei Gruppe 1 nach 20:15 bis 0 Uhr nicht mehr geschaltet hat.var zeit1von = "SunSet"; //Aktivzeit von IDGruppe1 var zeit1bis = "20:15:00"; //Aktivzeit bis IDGruppe1 var zeit2von = "20:00:00"; //Aktivzeit von IDGruppe2 var zeit2bis = "23:30:00"; //Aktivzeit bis IDGruppe2 var zeit3von = "20:15:00"; //Aktivzeit von IDGruppe3 var zeit3bis = "23:54:00"; //Aktivzeit bis IDGruppe3 var zeit4von = "20:00:00"; //Aktivzeit von IDGruppe4 var zeit4bis = "23:00:00"; //Aktivzeit bis IDGruppe4 var zeit5von = "19:00:00"; //Aktivzeit von IDGruppe5 var zeit5bis = "23:00:00"; //Aktivzeit bis IDGruppe5
Hier das komplette Script so wie ich es einsetze.
AWS_20190310.txt -
Weitere Erkenntnisse:
Scheinbar kommt die Astrofunktion mit dem Datumswechsel nicht klar.
Nach 0 Uhr führt er zwar die Abfrage nach Sonnenauf und -untergang durch, jedoch ist laut log der Rückgabewert der von Gestern. Somit ist die Gruppe1 der Meinung es müsse geschaltet werden.
Wenn ich das Script durch starte nach 0 Uhr dann sind die ermittelten Astrozeiten korrekt.Hat jemand eine Idee wie man da beheben kann?
Ein automatisiertes Neustarten des Scripts ist ja dann auch nur eine Symptombehandlung. -
Auch ich habe folgende Fehlermeldung beim Datumswechsel (24:00 - 0:00)
2019-03-31 00:00:00.002 - info: javascript.0 script.js.common.Anwesenheitssimulation.Abwesenheitssimulation: Routine IsTimeInRange - Gruppe2 aktuelle ist ist > als lower und kleiner als upper - Gruppe wird geschaltet (true) 2019-03-31 00:00:00.003 - error: javascript.0 Error in callback: TypeError: Cannot set property '1' of undefined 2019-03-31 00:00:00.003 - error: javascript.0 at UpdateSwithTime (script.js.common.Anwesenheitssimulation.Abwesenheitssimulation:621:36) 2019-03-31 00:00:00.003 - error: javascript.0 at IsTimeInRange (script.js.common.Anwesenheitssimulation.Abwesenheitssimulation:570:9) 2019-03-31 00:00:00.003 - error: javascript.0 at Object. (script.js.common.Anwesenheitssimulation.Abwesenheitssimulation:219:8) 2019-03-31 00:00:00.003 - error: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34) 2019-03-31 00:00:00.003 - error: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) 2019-03-31 00:00:00.003 - error: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 2019-03-31 00:00:00.003 - error: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) 2019-03-31 00:00:00.003 - error: javascript.0 at ontimeout (timers.js:498:11) 2019-03-31 00:00:00.003 - error: javascript.0 at tryOnTimeout (timers.js:323:5) 2019-03-31 00:00:00.003 - error: javascript.0 at Timer.listOnTimeout (timers.js:290:5)
meine Scripteinstellungen:
/ HIER Einstellungen vornehmen............................................................................................ var KeyWordSunDown = "SunSet"; // SONNENUNTERGANG - Bitte dieses Keyword in ZeitxVon oder ZeitxBis eintragen wenn Astrozeit gewünscht ist var KeyWordSunUp = "SunRise"; // SONNENAUFGANG - Bitte dieses Keyword in ZeitxVon oder ZeitxBis eintragen wenn Astrozeit gewünscht ist // Bei Eingabe des Keywords bei den Zeiten werden die Astrozeiten verwendet // Einstellungen der Aktivzeiten je IDGruppe von bis // Beispiel Zeiteingabe "23:30:00" var zeit1von = "SunSet"; //Aktivzeit von IDGruppe1 var zeit1bis = "SunRise"; //Aktivzeit bis IDGruppe1 var zeit2von = "SunSet"; //Aktivzeit von IDGruppe2 var zeit2bis = "SunRise"; //Aktivzeit bis IDGruppe2 var zeit3von = "SunSet"; //Aktivzeit von IDGruppe3 var zeit3bis = "SunRise"; //Aktivzeit bis IDGruppe3 var zeit4von = "SunSet"; //Aktivzeit von IDGruppe4 var zeit4bis = "SunRise"; //Aktivzeit bis IDGruppe4 var zeit5von = "SunSet"; //Aktivzeit von IDGruppe5 var zeit5bis = "SunRise"; //Aktivzeit bis IDGruppe5 // Einstellungen der zufaelligen Einschaltdauer je IDGruppe von bis var ein1von = 5; // Minuten IDGruppe1 von var ein1bis = 40; // Minuten IDGruppe1 bis var ein2von = 5; // Minuten IDGruppe2 von var ein2bis = 40; // Minuten IDGruppe2 bis var ein3von = 5; // Minuten IDGruppe3 von var ein3bis = 10; // Minuten IDGruppe3 bis var ein4von = 5; // Minuten IDGruppe4 von var ein4bis = 10; // Minuten IDGruppe4 bis var ein5von = 10; // Minuten IDGruppe5 von var ein5bis = 30; // Minuten IDGruppe5 bis // Einstellung je Gruppe für die maximale Startverzögerung in Minuten // bei 0 = keine Startverzögerung - bei z.B. 10 = Startverzögerung zwischen 0 und 10 in Minuten // var StartDelay1 = 19; // Maximale Startverzoegerung Gruppe1 var StartDelay2 = 17; // Maximale Startverzoegerung Gruppe2 var StartDelay3 = 0; // Maximale Startverzoegerung Gruppe3 var StartDelay4 = 0; // Maximale Startverzoegerung Gruppe4 var StartDelay5 = 0; // Maximale Startverzoegerung Gruppe5 // Einstellung Check-schedule - Voreinstellung z.B. alle 30 Minuten je IDGruppe - Damit wird je Lauf nach Zufaelligkeit je ein Geraet der IDGruppe eingeschaltet var cron1 = 47; // checks alle x Minuten für IDGruppe1 var cron2 = 57; // checks alle x Minuten für IDGruppe2 var cron3 = 0; // checks alle x Minuten für IDGruppe3 var cron4 = 0; // checks alle x Minuten für IDGruppe4 var cron5 = 0; // checks alle x Minuten für IDGruppe5 // Einstellung teilnehmende Homematic Geräte je IDGruppe maximal 5 - Eingabe der Homematic ID var IDGruppe11 = 'hm-rpc.0.JEQ0464470.1.STATE'/*Zw Stecker 1 STATE*/ //Diele var IDGruppe12 = 'hm-rpc.0.JEQ0461675.1.STATE'/*Zw Stecker 2 STATE*/ //Treppenhaus var IDGruppe13 = " "; var IDGruppe14 = " "; var IDGruppe15 = " "; var Grp1ZufAnz = 2; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes var IDGruppe21 = 'hm-rpc.0.KEQ0177570.1.STATE'/*Zw Stecker 3 STATE*/ //Bügelzimmer var IDGruppe22 = 'hm-rpc.0.LEQ0763719.1.STATE'/*LichtSch KellerAbgSeite:1 STATE*/ var IDGruppe23 = " "; var IDGruppe24 = " "; var IDGruppe25 = " "; var Grp2ZufAnz = 2; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes var IDGruppe31 = " "; var IDGruppe32 = " "; var IDGruppe33 = " "; var IDGruppe34 = " "; var IDGruppe35 = " "; var Grp3ZufAnz = 5; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes var IDGruppe41 = " "; var IDGruppe42 = " "; var IDGruppe43 = " "; var IDGruppe44 = " "; var IDGruppe45 = " "; var Grp4ZufAnz = 3; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes var IDGruppe51 = " "; var IDGruppe52 = " "; var IDGruppe53 = " "; var IDGruppe54 = " "; var IDGruppe55 = " "; var Grp5ZufAnz = 5; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes var logflag = false; // wenn auf true dann wird das logging in Datei /opt/iobroker/iobroker-data/AWSLog.csv eingeschaltet bei false vice versa var ausflag = true; // Wenn AWS deaktiviert wird, dann werden alle Teilnehmer ausgeschaltet // Experten-Einstellungen ....................................................................................................... var IDAWSaktiv = "javascript.0.Anwesenheitssteuerung.AWSTest"; // in den objekten angelegte variable zur Bestimmung ob AWS aktiv ist - Kann auch ausgetauscht werden durch eine andere var LogPath = "/opt/iobroker/iobroker-data/AWSLogTest.csv"; // Pfad und Dateiname des externen Logs var IgnoreWhenOn = false; // bei true: Ignoriert den Schaltvorgang, wenn das Geraet bereits eingeschaltet war var ErlieastSunDown = 16; // Die Stunde des fruehesten Sonnenuntergangs z.B. in Deutschlnad 16 Uhr var EarliestSunUp = 4; // Die Stunde des fruehesten Sonnenuntergangs z.B. in Deutschlnad 4 Uhr var LatestSunDown = 21; // Die Stunde des spätesten Sonnenuntergangs z.B. in Deutschlnad 21 Uhr var LatestSunUp = 8; // Die Stunde des spätestens Sonnenuntergangs z.B. in Deutschlnad 8 Uhr var EinschaltFlag = true; // Einschaltbefehl der Teilnehmer fuer Boolean Geräte var AusschaltFlag = false; // Ausschaltbefehl der Teilnehmer fuer Boolean Geräte var DimmAusschalt = 0; // Ausschaltbefehl fuer Number Geräte (Dimmer) var DimmEinschalt = 100; // Einschaltbefehl fuer Number Geräte (Dimmer) = Einschaltlevel auf den geschaltet wird var debug = false; // zusätzliche log Meldungen zur Analyse // Ende Experten-Einstellungen .......................................................................................................
Was ist falsch?
-
Ich bekomme neuerdings folgende Fehlermeldung:
javascript.0 2019-06-27 22:00:00.005 error at Timer.listOnTimeout (timers.js:290:5) javascript.0 2019-06-27 22:00:00.005 error at tryOnTimeout (timers.js:323:5) javascript.0 2019-06-27 22:00:00.005 error at ontimeout (timers.js:498:11) javascript.0 2019-06-27 22:00:00.005 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) javascript.0 2019-06-27 22:00:00.005 error at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 javascript.0 2019-06-27 22:00:00.004 error at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) javascript.0 2019-06-27 22:00:00.004 error at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1191:34) javascript.0 2019-06-27 22:00:00.004 error at Object.<anonymous> (script.js.common.Anwesenheitssimulation.Abwesenheitssimulation:219:8) javascript.0 2019-06-27 22:00:00.004 error at IsTimeInRange (script.js.common.Anwesenheitssimulation.Abwesenheitssimulation:570:9) javascript.0 2019-06-27 22:00:00.004 error at UpdateSwithTime (script.js.common.Anwesenheitssimulation.Abwesenheitssimulation:621:36) javascript.0 2019-06-27 22:00:00.004 error Error in callback: TypeError: Cannot set property '1' of undefined javascript.0 2019-06-27 22:00:00.003 info script.js.common.Anwesenheitssimulation.Abwesenheitssimulatio
Kann jemand helfen?
-
Hallo, was ist die letzte Version von dem Script? Ich habe das Problem, wenn ich "Dunkelzeiten" einstelle - Warnungen im Log sind. Ausserdem würde ich auch gern die Astro Zeiten (SunSet etc.) nutzen.
-
@LJSven sagte in [Vorlage] Anwesenheitssimulation - Script:
was ist die letzte Version von dem Script? I
Hi,
das ist die Version 0.94 - erster Post zum herunterladen.
Die Warnmeldung sieht wie ein Konfigurationsproblem aus, also etwas beim eingeben der Geräte.Sunset sollte über Keywords funktionieren: Die werden statt der Zeiten eingetragen. Gross und Kleinschreibung ist dabei zu beachten:
List of Keywords
"sunrise": sunrise (top edge of the sun appears on the horizon)
"sunriseEnd": sunrise ends (bottom edge of the sun touches the horizon)
"goldenHourEnd":morning golden hour (soft light, best time for photography) ends
"solarNoon": solar noon (sun is in the highest position)
"goldenHour": evening golden hour starts
"sunsetStart": sunset starts (bottom edge of the sun touches the horizon)
"sunset": sunset (sun disappears below the horizon, evening civil twilight starts)
"dusk": dusk (evening nautical twilight starts)
"nauticalDusk": nautical dusk (evening astronomical twilight starts)
"night": night starts (dark enough for astronomical observations)
"nightEnd": night ends (morning astronomical twilight starts)
"nauticalDawn": nautical dawn (morning nautical twilight starts)
"dawn": dawn (morning nautical twilight ends, morning civil twilight starts)
"nadir": nadir (darkest moment of the night, sun is in the lowest position)PS: ich habe leider in der letzten Zeit durch Abwesenheit geglänzt. Es ist beruflich und familär zeitlich im Moment sehr eng.
vG Looxer
-
@looxer01 sagte in [Vorlage] Anwesenheitssimulation - Script:
@LJSven sagte in [Vorlage] Anwesenheitssimulation - Script:
was ist die letzte Version von dem Script? I
Hi,
das ist die Version 0.94 - erster Post zum herunterladen.
Die Warnmeldung sieht wie ein Konfigurationsproblem aus, also etwas beim eingeben der Geräte.Sunset sollte über Keywords funktionieren: Die werden statt der Zeiten eingetragen. Gross und Kleinschreibung ist dabei zu beachten:
List of Keywords
"sunrise": sunrise (top edge of the sun appears on the horizon)
"sunriseEnd": sunrise ends (bottom edge of the sun touches the horizon)
"goldenHourEnd":morning golden hour (soft light, best time for photography) ends
"solarNoon": solar noon (sun is in the highest position)
"goldenHour": evening golden hour starts
"sunsetStart": sunset starts (bottom edge of the sun touches the horizon)
"sunset": sunset (sun disappears below the horizon, evening civil twilight starts)
"dusk": dusk (evening nautical twilight starts)
"nauticalDusk": nautical dusk (evening astronomical twilight starts)
"night": night starts (dark enough for astronomical observations)
"nightEnd": night ends (morning astronomical twilight starts)
"nauticalDawn": nautical dawn (morning nautical twilight starts)
"dawn": dawn (morning nautical twilight ends, morning civil twilight starts)
"nadir": nadir (darkest moment of the night, sun is in the lowest position)PS: ich habe leider in der letzten Zeit durch Abwesenheit geglänzt. Es ist beruflich und familär zeitlich im Moment sehr eng.
vG Looxer
Danke für die Antworten. Meine Geräte sehen wie folgt aus:
-
Hi,
@LJSven sagte in [Vorlage] Anwesenheitssimulation - Script:
// Einstellung teilnehmende Homematic Geräte je IDGruppe maximal 5 - Eingabe der Homematic ID
var IDGruppe11 = "javascript.0.Anwesenheitssteuerung.Galerie";
var IDGruppe12 = "";
var IDGruppe13 = "";
var IDGruppe14 = "";
var IDGruppe15 = "";
var Grp1ZufAnz = 3; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetesmit dieser Einstellung wird aus 3 Gruppenmitgliedern zufällig eine augewählt, wobei 2 davon fakes sind.
also wird das eine Geräte mit einer Wahrscheinlichkeit von 33% bei jeder Auswahl selektiert.
kannst du bitte IDGruppe12 und 13 mit einem Leerzeichen versehen also = " " .vG Looxer
-
Habe ich gemacht! Mit Leerzeichen kommt keine Meldung mehr.