NEWS
ICal Daten in Datenpunkte schreiben
-
Hallo zusammen,
bräuchte mal eure Hilfe. Wenn man nach sowas ähnlichem sucht, geht es nur um "Abfallkalender" leider fehlt mir die nötige Kenntnis diese umzubauen.
Ich möchte ganz schlicht die Termine von ical ohne Tabelle oder andere Veränderungen in Datenpunkte schreiben.
Es werden insgesamt 4 unterschiedliche Kalender die alle ihre eigene Instanz bekommen.
Ich habe einen Ordner der Hilfsvariablen.0 heißt und unter Objekten liegt. Dort hätte ich auch gerne die Datenpunkte.
Wie Die Datenpunkte heissen bzw in welchen Unterordner sie liegen würde ich dann gerne selber festlegen. Hoffe, dass man
das aus dem Skript rauslesen kann.
Ist es möglich, für jeden Tag (Heute, Morgen, Übermorgen) jeweils 3 Datenpunkte 1. Termin 2. Termin 3. Termin anzulegen?
Hoffe ihr könnt mir da behilflich sein.
Danke und Gruß
der-eine
-
-
Danke für den Link, schau ich mir an.
-
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ß
-
In dem iCal Adapter oder in deinem eigenen Script?
Im eigenen Script ganz einfach:
setState("custom.0.ordner.objekt", "Wert");
Objekt muss vorher(!) vorhanden sein. createState() vorher machen oder manuell erstellen.
-
Wenn ich:
createState( „ Hilfsvariablen.0.Kalender.Name.event1“, „ „);
Mache erstellt er die Ordner unter JavaScript.
Gesendet von iPhone mit Tapatalk
-
Wenn ich:
createState( „ Hilfsvariablen.0.Kalender.Name.event1“, „ „);
Mache erstellt er die Ordner unter JavaScript.
Gesendet von iPhone mit Tapatalk `
Ordner vorher erstellen, am besten auch das Objekt. Dann gehts sicher.
-
Dann kann ich das createState aus dem Skript raus nehmen wenn ich die Datenpunkte selber erstelle?
Gesendet von iPhone mit Tapatalk
-
ja
-
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]
-
Ok, sorry…
Laut error im Post darüber 17, 20, 61.
Danke trotzdem für deine Zeit auch wenn Du nicht hier angestellt bist.
Gesendet von iPhone mit Tapatalk
-
Die Frage war welche Zeile das bei dir ist?
if (entry._calName != calendar.name) {
Die?
-
Diese sind es 3. Hab gerade gesehen, Du siehst ja nicht die Zeilennr.
if ( entry._calName != calendar.name ) { if (entry._calName == instopt.calendars[c].name ) { iCalToHTMLTable();
-
Bei mir kein Problem, hab mir grad extra den Adapter installiert.
Ist die Instanz denn korrekt ical.1? Wenn du nur eine Instanz hast ist es meistens ical.0.
-
Nein, ist nicht die einzige. Aber der Fehler bezieht sich immer wieder auf die erste Zeile
Ich habe 3 Instanzen aber davon aktuell nur die ical.1 aktiv.
> var idCal = "ical.1";
-
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?