NEWS
Ical Termine als Telegramnachricht
-
Also wenn ich es richtig verstehe dann habe ich einmal den ical Adapter und einmal den calendar Adapter bei dem ich über Google API alles eingerichtet habe. Beim zweiten habe ich aber keine Datenpunkte bei Objekte. Also nicht Mal der Adapter wird da angezeigt.
-
@Nico-Adler dann versuch es testweise mal mit der iCal Adresse im Calendar Adapter.
-
Ich bekomme es irgendwie nicht hin.. anscheinend bin ich zu blöd. Im Log steht no permission granted.
Also kann man nicht einfach den ical Datenpunkt umschreiben lassen. Der funktioniert zumindest, bloß das dort "<span style...." steht
-
@Stephan-Schleich sagte in Ical Termine als Telegramnachricht:
oder post mal das Script.
Warum stellt du dein Script nicht hier ein?
-
So,
hab mal ein bisschen rum gespielt.var arr = getState('ical.0.data.table').val; for (x=1;x<=5;x++) { log (arr[x].date + " / " + arr[x].event); }
du musst die table Var. nehmen.
Dann arr erzeugen.Im log kommt dann:
Was du noch brauchst:
- Prüfen von Datum
- telegram senden.
mfg
Dieter -
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="telegram" id="~U[Ttfz9[[RJFe$HzE@Y" x="-587" y="2062"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">HTML</field> <value name="MESSAGE"> <shadow type="text" id="Gzz$1-!y]:uJcJ4tA)4O"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="feiXZ+N4Ic*_*T6/]gr|"> <mutation items="2"></mutation> <value name="ADD0"> <block type="get_value" id="{;wI`jk@W1*YZI%lE(+`"> <field name="ATTR">val</field> <field name="OID">ical.0.data.html</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id="93]*F0;~EH8%Yow+8a%`"> <field name="TEXT">Nico</field> </block> </value> </block> </xml>
Hier ist das Blockly Script.
-
@bahnuhr wo muss ich das hin kopieren? Sorry aber ich bin noch beim urschleim
-
@Nico-Adler sagte in Ical Termine als Telegramnachricht:
@bahnuhr wo muss ich das hin kopieren? Sorry aber ich bin noch beim urschleim
Das ist ein Script und muss bei Scripte als Javascript (nicht blockly) eingefügt und dann gestartet werden.
-
habe ich gemacht. im log stehen jetzt auch die Termine. wie füge ich das jetzt in das blockly.
wenn ich das objekt vom javascript nehme, kommt nur der text true. -
@Nico-Adler sagte in Ical Termine als Telegramnachricht:
habe ich gemacht. im log stehen jetzt auch die Termine. wie füge ich das jetzt in das blockly.
wenn ich das objekt vom javascript nehme, kommt nur der text true.tut mir leid, blockly mach ich nicht.
Muss jemand anders mal helfen.
-
OK. Ich danke dir trotzdem für deine Mühe
-
@bahnuhr ich habe mir jetzt ein datenpunkt angelegt.
und dein script mit hilfe von google etwas geändert.
im Datenpunkt steht jetzt schon mal Klartext, aber ich glaube er macht nur den letzen eintrag da rein. wie kann ich das lösen?hier das skript:
var arr = getState('ical.0.data.table').val; for (x=1;x<=5;x++) { setState("ical.0.Termin", arr[x].date + " / " + arr[x].event); }
-
Keiner eine Idee?
-
@Nico-Adler sagte in Ical Termine als Telegramnachricht:
Keiner eine Idee?
Na, weil du den Wert 5 x zuweist.
Also erst 1 in die Var.
dann 2 in die Var.
....Und zum Schluss steht halt die 5 drin.
-
Und wie kann ich das ändern? Also im Log bei deinem Skript kommen ja die nächsten 5 Termine einzeln aufgelistet. Kann ich die in einen Datenpunkt fortlaufend übertragen?
-
@Nico-Adler sagte in Ical Termine als Telegramnachricht:
Und wie kann ich das ändern? Also im Log bei deinem Skript kommen ja die nächsten 5 Termine einzeln aufgelistet. Kann ich die in einen Datenpunkt fortlaufend übertragen?
z.B. so:
// Variablen var arr = getState('ical.0.data.table').val; var vUser = "Dieter"; var vText = ""; // Script for (x=1;x<=5;x++) { log (arr[x].date + " / " + arr[x].event); vText += (arr[x].date + " / " + arr[x].event +"\n"); } // telegram senden vText = "Die nächsten Termine:\n" + vText; log (vText); sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' });
Hättest du aber auch selber drauf kommen können, oder ?
-
Vielen Dank das funktioniert.
Ich wäre nicht selber drauf gekommen, weil ich leider davon keine Ahnung habe. -
So, habe jetzt auch die Tage eingebaut.
Probleme gibt es beim Jahreswechsel. Damit konnte ich aber nun erst einmal leben.// Variablen var arr = getState('ical.0.data.table').val; var vUser = "Dieter"; var AnzTage = 7; // wie viele Tage sollen ausgelesen werden var vText = ""; //aktuelles Datum aktJahr = new Date().getFullYear(); aktMon = new Date().getMonth()+1; aktTag = new Date().getDate(); d3 = getDateObject(aktJahr+"-"+aktMon+"-"+aktTag+" 02:00:00"); // Datum aus ical var arr = getState('ical.0.data.table').val; arr.forEach(myFunction); function myFunction(item, i) { // date aus Array ermitteln aMon = (arr[i].date).substring(3, 5); aTag = (arr[i].date).substring(0, 2); d2 = getDateObject(aktJahr+"-"+aMon+"-"+aTag); // Tage ermitteln var t = Date.parse(d2) - Date.parse(d3); var days = Math.floor( t/(1000*60*60*24) ); // wenn kleiner x Tage dann dazu fügen if (days <= AnzTage) { log (aTag + "." + aMon + "." + " " + arr[i].event +"\n"); vText += (aTag + "." + aMon + "." + " " + arr[i].event +"\n"); } } // telegram senden vText = "Die nächsten Termine:\n" + vText; log (vText); sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' });
mfg
Dieter -
@bahnuhr
mit diesen Script werden die Termine nicht gesendet -
@locito09 sagte in Ical Termine als Telegramnachricht:
@bahnuhr
mit diesen Script werden die Termine nicht gesendetDann hast du etwas falsch gemacht.
Das Script klappt einwandfrei.