NEWS
ICal Daten in Datenpunkte schreiben
-
hatte jetzt endlich Zeit das Skript umzuschreiben. Genau das hab ich gesucht. <emoji seq="1f44d-1f3fb">👍🏻</emoji>
Eine Frage hätte ich noch und zwar, ist es möglich den Ordner nicht unter Javascript.0 zu erstellen sondern ausserhalb?
Also in die oberste Struktur wo alle .0 Ordner liegen?
Danke und Gruß
-
Jetzt ist doch irgendwie der Hund drin. Kannst Du da bitte mal drüber schauen?
`var idCal = "ical.1"; var idCalTrigger = idCal + ".data.trigger"; var idCalTable = idCal + ".data.table"; var idCalHTML = idCal + ".data.html"; var idCalHTMLtable = idCal + "_1.json"; function iCalToHTMLTable() { var calTable = getState(idCalTable); var inst = getObject("system.adapter."+idCal); var instopt = inst.native; var calendar = {}; var event / var date = "" for (var i = 0; i < 3; i++) { var entry = calTable.val[i]; if ( entry._calName != calendar.name ) { calendar = {}; for (var c = 0; c < instopt.calendars.length; c++ ) { if (entry._calName == instopt.calendars[c].name ) { calendar = instopt.calendars[c]; break; } } } event += entry.event + "," date += entry.date + "," } var event1 = event.split(",")[0]; var event2 = event.split(",")[1]; var event3 = event.split(",")[2]; var date1 = date.split(",")[0]; var date2 = date.split(",")[1]; var date3 = date.split(",")[2]; console.log(event); console.log(event1); console.log(event2); console.log(event3); console.log(date); console.log(date1); console.log(date2); console.log(date3); setState('Hilfsvariablen.0.Kalender.Daniel.event1', event1); setState('Hilfsvariablen.0.Kalender.Daniel.event2', event2); setState('Hilfsvariablen.0.Kalender.Daniel.event3', event3); setState('Hilfsvariablen.0.Kalender.Daniel.date1', date1); setState('Hilfsvariablen.0.Kalender.Daniel.date2', date2); setState('Hilfsvariablen.0.Kalender.Daniel.date3', date3); setState('Hilfsvariablen.0.Kalender.Daniel.event', event); setState('Hilfsvariablen.0.Kalender.Daniel.date', date); } on({id: idCalTable, change: "ne"}, function (obj) { iCalToHTMLTable(); }); schedule("5,35 * * * *", function () { iCalToHTMLTable(); }); iCalToHTMLTable();` Komme nicht drauf, was daran falsch ist bzw was die errors bedeuten... Danke schon mal [10117_bildschirmfoto_2019-02-05_um_16.02.00.png](/assets/uploads/files/10117_bildschirmfoto_2019-02-05_um_16.02.00.png) [/i] -
Auch wenn du mich per PN anschreibst geht es nicht schneller. Ich bin weder bezahlter Programmierer, noch hier angestellt.
`var idCal = "ical.1"; var idCalTrigger = idCal + ".data.trigger"; var idCalTable = idCal + ".data.table"; var idCalHTML = idCal + ".data.html"; var idCalHTMLtable = idCal + "_1.json"; function iCalToHTMLTable() { var calTable = getState(idCalTable); var inst = getObject("system.adapter." + idCal); var instopt = inst.native; var calendar = {}; var event = ""; var date = ""; for (var i = 0; i < 3; i++) { var entry = calTable.val[i]; if (entry._calName != calendar.name) { calendar = {}; for (var c = 0; c < instopt.calendars.length; c++ ) { if (entry._calName == instopt.calendars[c].name ) { calendar = instopt.calendars[c]; break; } } } event += entry.event + ","; date += entry.date + ","; } var event1 = event.split(",")[0]; var event2 = event.split(",")[1]; var event3 = event.split(",")[2]; var date1 = date.split(",")[0]; var date2 = date.split(",")[1]; var date3 = date.split(",")[2]; setState('Hilfsvariablen.0.Kalender.Daniel.event1', event1); setState('Hilfsvariablen.0.Kalender.Daniel.event2', event2); setState('Hilfsvariablen.0.Kalender.Daniel.event3', event3); setState('Hilfsvariablen.0.Kalender.Daniel.date1', date1); setState('Hilfsvariablen.0.Kalender.Daniel.date2', date2); setState('Hilfsvariablen.0.Kalender.Daniel.date3', date3); setState('Hilfsvariablen.0.Kalender.Daniel.event', event); setState('Hilfsvariablen.0.Kalender.Daniel.date', date); } on({id: idCalTable, change: "ne"}, function (obj) { iCalToHTMLTable(); }); schedule("5,35 * * * *", function () { iCalToHTMLTable(); }); iCalToHTMLTable();` Bis jetzt fallen mir nur fehlende ";" auf, habe ich mal hinzugefügt. Welche Zeile ist die, die den Fehler generiert? Ich weiss ja nicht, ob dein Script noch größer ist.[/i] -
Das wären die Fehler im Log wenn Dir das evtl was sagt.
avascript.0 2019-02-06 13:30:39.609 error at ContextifyScript.Script.runInContext (vm.js:59:29)
javascript.0 2019-02-06 13:30:39.609 error at script.js.common.Kalender.Daniel.iCal.1:61:1
javascript.0 2019-02-06 13:30:39.609 error at iCalToHTMLTable (script.js.common.Kalender.Daniel.iCal.1:17:20)
javascript.0 2019-02-06 13:30:39.609 error TypeError: Cannot read property '_calName' of undefined
javascript.0 2019-02-06 13:30:39.608 error ^
javascript.0 2019-02-06 13:30:39.608 error if ( entry._calName != calendar.name ) {
javascript.0 2019-02-06 13:30:39.608 error script.js.common.Kalender.Daniel.iCal.1: script.js.common.Kalender.Daniel.iCal.1:17
-
Steht dann auch was in den Objekten des Adapter drin? Wie gesagt: Hier kein Problem.
Ersatz mal folgende Zeilen
`for (var i = 0; i < 3; i++) { console.log("entry: " + JSON.stringify(entry)); console.log("caltable: " + JSON.stringify(calTable)); console.log("caltable inc: " + JSON.stringify(calTable.val[i])); var entry = calTable.val[i]; if (entry._calName != calendar.name) {` [/i][/i] -
Das wären die Fehler im Log wenn Dir das evtl was sagt.
avascript.0 2019-02-06 13:30:39.609 error at ContextifyScript.Script.runInContext (vm.js:59:29)
javascript.0 2019-02-06 13:30:39.609 error at script.js.common.Kalender.Daniel.iCal.1:61:1
javascript.0 2019-02-06 13:30:39.609 error at iCalToHTMLTable (script.js.common.Kalender.Daniel.iCal.1:17:20)
javascript.0 2019-02-06 13:30:39.609 error TypeError: Cannot read property '_calName' of undefined
javascript.0 2019-02-06 13:30:39.608 error ^
javascript.0 2019-02-06 13:30:39.608 error if ( entry._calName != calendar.name ) {
javascript.0 2019-02-06 13:30:39.608 error script.js.common.Kalender.Daniel.iCal.1: script.js.common.Kalender.Daniel.iCal.1:17 `
Dann steht nix in den Objektes des Adapters drin.
-
Das wären die Fehler im Log wenn Dir das evtl was sagt.
avascript.0 2019-02-06 13:30:39.609 error at ContextifyScript.Script.runInContext (vm.js:59:29)
javascript.0 2019-02-06 13:30:39.609 error at script.js.common.Kalender.Daniel.iCal.1:61:1
javascript.0 2019-02-06 13:30:39.609 error at iCalToHTMLTable (script.js.common.Kalender.Daniel.iCal.1:17:20)
javascript.0 2019-02-06 13:30:39.609 error TypeError: Cannot read property '_calName' of undefined
javascript.0 2019-02-06 13:30:39.608 error ^
javascript.0 2019-02-06 13:30:39.608 error if ( entry._calName != calendar.name ) {
javascript.0 2019-02-06 13:30:39.608 error script.js.common.Kalender.Daniel.iCal.1: script.js.common.Kalender.Daniel.iCal.1:17 `
Dann steht nix in den Objektes des Adapters drin. `
Meinst Du im Kalender oder der Standardwert der Datenpunkte?
-
Die sind aber nicht leer.
Den Teil wenn ich ersetze sind anscheinend geschweifte Klammern zu viel. wenn ich diese lösche komme ich wieder auf eine Meldung das eine andere Zeile mit code falsch ist.
`var idCal = "ical.1"; var idCalTrigger = idCal + ".data.trigger"; var idCalTable = idCal + ".data.table"; var idCalHTML = idCal + ".data.html"; var idCalHTMLtable = idCal + "_1.json"; function iCalToHTMLTable() { var calTable = getState(idCalTable); var inst = getObject("system.adapter."+idCal); var instopt = inst.native; var calendar = {}; var event / var date = "" for (var i = 0; i < 3; i++) { console.log("entry: " + JSON.stringify(entry)); console.log("caltable: " + JSON.stringify(calTable)); console.log("caltable inc: " + JSON.stringify(calTable.val[i])); var entry = calTable.val[i]; if (entry._calName != calendar.name) { break; } } } event += entry.event + "," date += entry.date + "," } var event1 = event.split(",")[0]; var event2 = event.split(",")[1]; var event3 = event.split(",")[2]; var date1 = date.split(",")[0]; var date2 = date.split(",")[1]; var date3 = date.split(",")[2]; console.log(event); console.log(event1); console.log(event2); console.log(event3); console.log(date); console.log(date1); console.log(date2); console.log(date3); setState('Hilfsvariablen.0.Kalender.Daniel.event1', event1); setState('Hilfsvariablen.0.Kalender.Daniel.event2', event2); setState('Hilfsvariablen.0.Kalender.Daniel.event3', event3); setState('Hilfsvariablen.0.Kalender.Daniel.date1', date1); setState('Hilfsvariablen.0.Kalender.Daniel.date2', date2); setState('Hilfsvariablen.0.Kalender.Daniel.date3', date3); setState('Hilfsvariablen.0.Kalender.Daniel.event', event); setState('Hilfsvariablen.0.Kalender.Daniel.date', date); } on({id: idCalTable, change: "ne"}, function (obj) { iCalToHTMLTable(); }); schedule("5,35 * * * *", function () { iCalToHTMLTable(); }); iCalToHTMLTable();` [10117_bildschirmfoto_2019-02-06_um_13.48.22.png](/assets/uploads/files/10117_bildschirmfoto_2019-02-06_um_13.48.22.png) [/i][/i]