NEWS
Fehler im Log was ist object 1636
-
Was will mir diese Errorliste sagen?
Ich habe ein paar Obejekte erstellt üner das Plsu Icon in der Objektübersichtsseite erstellt:
Die heißen alle object 1636?
oder liegt es am Script welches diese Objekte schreibt und auch 1636 heißt?
/************************** * Setzen von diversen Variablen zur Verwendung in anderen Scrippten * Version 1.00 vom 13.01.18 * Ausführung: jeden Tag um 00:10 **************************/ // Setzt alle Sonos in eine Gruppe und startet Sonos Wohnzimmer schedule("10 00 * * *", function () { var _Wochenende; var _Arbeitstag; var _Arbeitstag_ccu = getState("hm-rega.0.29659").val; var _Urlaub_heute_ccu = getState("hm-rega.0.16982").val; /*SV Urlaub heute*/ var _Feiertag_heute = getState("feiertage.0.heute.boolean").val; var _Feiertag_heute_ccu = getState("hm-rega.0.16984").val; /*SV Feiertag heute*/ var jetzt = new Date(), _Wochentag = jetzt.getDay(); /* Wochentag 6 und 7 sind Wochenende */ if(_Wochentag == 6 || _Wochentag === 0){ _Wochenende = true;} else{_Wochenende = false;} /* Arbeitstag ermitteln */ if(_Wochenende || _Feiertag_heute || _Urlaub_heute_ccu){_Arbeitstag = false} else{_Arbeitstag = true;} console.log(_Arbeitstag_ccu); console.log(_Arbeitstag); console.log(_Feiertag_heute_ccu); console.log(_Feiertag_heute); console.log(_Wochentag); console.log(_Wochenende); setState("javascript.0.scriptEnabled.Systemvariablen.Wochenende", _Wochenende); setState("javascript.0.scriptEnabled.Systemvariablen.Arbeitstag", _Arbeitstag); });
Dort musste ich heute den Wochentag von 7 auf 0 ändern. Bei homematic ist Sonntag die 7. Bei Javascript scheint es 0 zu sein? Einfach auf 0 ändern ging nicht. Es kam ein Hinweis das ich 3x = dabei nehmen muss?
-
setState("javascript.0.scriptEnabled.Systemvariablen.Wochenende", _Wochenende); ```` `
Daran liegts ^
Da darfst du keine Datenpunkte anlegen. "scriptEnabled" ist ein Systemordner, in dem geregelt wird, welche Skripte aktiviert ("enabled") sind und welche nicht.
Leg deine Datenpunkte direkt unter "javascript.0" oder einem Unterordner davon an, den du selbst erstellt hast.
Um deine andere Frage zu beantworten:
acl ist die Access Control List und gibt an, welche Rechte für Objekt/State vergeben sind. 1636 steht dabei für eine bestimmte Kombination.
-
Wie erstelle ich denn dort direkt in javascript.0 einen Ordner?
Oder kann ich auch auf oberste Ebene so etwas erstellen? Also wie ein eigenen Adapter?
-
Wie erstelle ich denn dort direkt in javascript.0 einen Ordner? `
Indem Du im Reiter "Objekte" javascript.0 selektierst und dann einen Datenpunkt mit einem Punkt im Namen erstellst:Name "meinOrdner.meinDatenpunkt1" hat dann die ID "javascript.0.meinOrdner.meinDatenpunkt1" und "meinOrdner" erscheint als Ordner. Alternativ kannst Du unter javascript.0 auch einen Kanal "meinOrdner" estellen.
-
kann ich auch auf oberste Ebene so etwas erstellen? Also wie ein eigenen Adapter? `
Auch das ist möglich, z.B. als Kanal. Allerdings muss der Kanalname dann eine bestimmte Struktur haben: ordnername.N (N = Zahl). -
was wäre denn besser?
Ich dort eben so Objekte reinpacken wie Arbeitstag (ja/nein) oder div. Schaltzeiten bzw Schaltzeitabweichungen. Die Werte sollen dann zum einen in div. Prgrammen genutzt werden damit z. B. Musik zum Frühstück nur an Arbeitstagen spielt usw…
Ebenfalls will ich all diese Sachen auch in vis einpflegen um sie jederzeit sehen zu können...
Vgl. eben mit typischen Systemvariablen in der ccu...
-
was wäre denn besser? `
Das macht keinen wesentlichen Unterschied.Unter javascript.0 hat den Vorteil, dass die gleiche Struktur erzeugt wird wie mit Erstellung der Datenpunkte im Skript per createState(). Nachteilig kann es sein, wenn man mehrere JS-Instanzen verwendet.