NEWS
Kalender html trennen
-
Liebe Gemeinde,
Ich suche ein Skript oder einen anderen Weg um meine html-Wurst aus dem ICal Adapter zu zerpflücken.
Also Jeder Tag einzeln soll in einen separaten Datenpunkt geschrieben werden.
Meine Kompetenz ist leider nicht ausreichend dafür.Bin für Hilfe offen und auch bereit für eine funktionierende Lösung gerne ein bisschen was zu zahlen.
Bin echt schon verzweifelt. -
Das kannst du dir alles aus dem Datenpunkt
ical.0.data.table
rausholen.
Den kann man in Blockly mit einer Schleife verarbeiten. Würde auch von abraten für jeden Termin einen DP anzulegen. Das macht es (egal was du vor hast) doch recht kompliziert.
EDIT
Dieses Blockly liest Zb den Datenpunkt jeden Morgen aus und sendet mir die Termine für den Tag per Telegram. Da siehst du wie man das grob angehen kann.<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="Fm@jUZ-M6;1(zOnfdAH}" x="-62" y="4512"> <field name="SCHEDULE">0 6 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="tIT?J%bTRTpU?0Lzqh]w"> <value name="IF0"> <block type="logic_compare" id="x6n8/G_mK+Qm.O2=^G!d"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="~G_c9liH+toMKIMBQ:-T"> <field name="ATTR">val</field> <field name="OID">ical.1.data.count</field> </block> </value> <value name="B"> <block type="math_number" id="NWC(]`)WJ52|A/2(1]IN"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="WnW%0CZUKo`s72;!O+%H"> <field name="VAR" id="b)m])isudJ]Z:`l}GrRL">anstehende_termine</field> <value name="VALUE"> <block type="text" id="CIjlH6U+|o2jM:#LCHVe"> <field name="TEXT"></field> </block> </value> <next> <block type="variables_set" id="[tvY+!HWF5oO1R|[jpg{"> <field name="VAR" id="Nin}JW*y1Vp_$;},D.7Z">liste_term</field> <value name="VALUE"> <block type="get_value" id="X$ahkgGp9+b!U*[Uj,En"> <field name="ATTR">val</field> <field name="OID">ical.1.data.table</field> </block> </value> <next> <block type="controls_for" id="@e,^p}*`[)R{cL@Nb}Bg"> <field name="VAR" id="1]Y7`n@:hU1lh4_N4rup">j</field> <value name="FROM"> <shadow type="math_number" id="KeRr-o`$mFs2)I1dLvHe"> <field name="NUM">1</field> </shadow> </value> <value name="TO"> <shadow type="math_number"> <field name="NUM">10</field> </shadow> <block type="get_value" id="Z^Z[TP!Jz)xd#.c56FF4"> <field name="ATTR">val</field> <field name="OID">ical.1.data.count</field> </block> </value> <value name="BY"> <shadow type="math_number" id="u8aRqY#HE9_q{x`B6UH7"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="variables_set" id="Mk^n~-kg9;-n3p-a^KS%"> <field name="VAR" id="mOjNB}.j)RR3:k$kM.L7">obj_termin</field> <value name="VALUE"> <block type="lists_getIndex" id="$IW)KdG=yi%Zz=^lD@qw"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="`8p.~sHoAh*m_/SjT([6"> <field name="VAR" id="Nin}JW*y1Vp_$;},D.7Z">liste_term</field> </block> </value> <value name="AT"> <block type="variables_get" id="GyTT/MHIN--+|56:!l7X"> <field name="VAR" id="1]Y7`n@:hU1lh4_N4rup">j</field> </block> </value> </block> </value> <next> <block type="variables_set" id="n!wT=:{$u9w34]B~D2]C"> <field name="VAR" id="%9%0UV]g*=a-{TDxkJ2t">termin</field> <value name="VALUE"> <block type="get_attr" id="*SnQ4z%O!(-)):N7M1Al"> <value name="PATH"> <shadow type="text" id="$,VU=KZt7T.Wk?!djrJ;"> <field name="TEXT">event</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="LysqbR6V:uT`HmT?sSdC"> <field name="VAR" id="mOjNB}.j)RR3:k$kM.L7">obj_termin</field> </block> </value> </block> </value> <next> <block type="variables_set" id="}Qb7_].O4PQnd6e48dDr"> <field name="VAR" id="HIJ%UiQd%]r!t2:`_t9{">termin_datum</field> <value name="VALUE"> <block type="get_attr" id="By*w(zcakDgc-7l(pslt"> <value name="PATH"> <shadow type="text" id="1r6N5Nxh9WXiugBWS.LA"> <field name="TEXT">_date</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="FIDh$.kd?2K?#4[^tI=C"> <field name="VAR" id="mOjNB}.j)RR3:k$kM.L7">obj_termin</field> </block> </value> </block> </value> <next> <block type="variables_set" id="R89wqk;#9i1mCfn6E516"> <field name="VAR" id="wPep`OX`O^fEpJ%f1ug~">ort</field> <value name="VALUE"> <block type="get_attr" id="pU4Sx,J(11$SyGHB_Jfg"> <value name="PATH"> <shadow type="text" id="!5RiB|91%0XUpHfHf2W1"> <field name="TEXT">location</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="fBGM3ujWUo^1~j.(AB5a"> <field name="VAR" id="mOjNB}.j)RR3:k$kM.L7">obj_termin</field> </block> </value> </block> </value> <next> <block type="controls_if" id="_pNnXthi6ndOHz%U=Nmp"> <value name="IF0"> <block type="logic_compare" id=";Xpep`R6jb%3wEI3d?f?"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="Z{5|;XeYX^p^!QZ|?|/H"> <field name="VAR" id="wPep`OX`O^fEpJ%f1ug~">ort</field> </block> </value> <value name="B"> <block type="text" id="1CglnV[9=BEX,n`p0qP-"> <field name="TEXT"></field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="2I~$h^@b[gPh(o=A;2Q-"> <field name="VAR" id=";b3g/W*e;GFH|}7)uzqt">text_ort</field> <value name="VALUE"> <block type="text_join" id="JgDojxK-23b9uU#hn~Kl"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="WB*Grnska{T8q:~CqOwX"> <field name="TEXT"> - </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="{vem[b?y^Qz83140g?QD"> <field name="VAR" id="wPep`OX`O^fEpJ%f1ug~">ort</field> </block> </value> </block> </value> </block> </statement> <next> <block type="variables_set" id="$L2V`4Jic,?vy@_/91KP"> <field name="VAR" id="b)m])isudJ]Z:`l}GrRL">anstehende_termine</field> <value name="VALUE"> <block type="text_join" id="M4.T[Y6:CJxNMHNJC/jK"> <mutation items="9"></mutation> <value name="ADD0"> <block type="variables_get" id="kAK?J3f9bR_^`_umky14"> <field name="VAR" id="b)m])isudJ]Z:`l}GrRL">anstehende_termine</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="/il9_gMRmc{wqi75p6DU"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="convert_from_date" id="lT1TZmBd:8j$!nfya{^J"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="variables_get" id="z*yN9YoK*|@A(Klf{N,("> <field name="VAR" id="HIJ%UiQd%]r!t2:`_t9{">termin_datum</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text" id="k}2!.6{oh3hFW+tK^-}3"> <field name="TEXT"> </field> </block> </value> <value name="ADD4"> <block type="variables_get" id="!1k{RhVpWxlh+q$s(6Xf"> <field name="VAR" id="%9%0UV]g*=a-{TDxkJ2t">termin</field> </block> </value> <value name="ADD5"> <block type="variables_get" id="#E|{)3XPu1^Sny/9+`f$"> <field name="VAR" id=";b3g/W*e;GFH|}7)uzqt">text_ort</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="3mOBtVm]lH2!X^k5y;={"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="oul}tWGY6ZxYKHMgzNkw"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="$[Yj[.0sr1a6B`w^UFV;"> <field name="ATTR">val</field> <field name="OID">ical.1.data.count</field> </block> </value> <value name="B"> <block type="math_number" id="x/wO:kcl3+1f^bF5Q@y:"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="^gFCa|sLK,!EG3.[+:;u"> <field name="VAR" id=")kOGElBJiWDGZET7n=3d">ueberschrift</field> <value name="VALUE"> <block type="text" id="8QyGIoV(}FkAL3Vy%h4J"> <field name="TEXT">Heute steht ein Termin an:</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="!k0!th]~.?r6.W%^{x:W"> <field name="VAR" id=")kOGElBJiWDGZET7n=3d">ueberschrift</field> <value name="VALUE"> <block type="text_join" id="GV~^q~zxf14y1+J?u/w/"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="]hSj-RdJP_Td@(I)_`;$"> <field name="TEXT">Heute stehen </field> </block> </value> <value name="ADD1"> <block type="get_value" id="YFtE_aRF[WSkWxl/:]N."> <field name="ATTR">val</field> <field name="OID">ical.1.data.count</field> </block> </value> <value name="ADD2"> <block type="text" id="k$m=#udr24wB?y6MH7f,"> <field name="TEXT"> Termine an. </field> </block> </value> </block> </value> </block> </statement> <next> <block type="telegram" id="f0qV=6l:}{harC^J2X/n"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="-o)f_A*a7wZlooVYhVx?"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="(M|?)}wY**X*nQ:ic;t/"> <field name="VAR" id=")kOGElBJiWDGZET7n=3d">ueberschrift</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="?#zktoMd+~W~toZ8p([5"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="!60erbnj6Bm$l5QLQFag"> <field name="VAR" id="b)m])isudJ]Z:`l}GrRL">anstehende_termine</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block>
-
@david-g
ok, ich glaube der Ansatz ist schon mal in die richtige Richtung.
Allerdings sehe ich aus deinem Skript nicht heraus wie er nach dem heutigen Tag sucht...Ich brauche ja nicht jeden Tag des Monats.
Ich hätte nur gern ein Skript welches mir die nächsten 10 Tage in einzelne Datenpunkte packt.
Ich würde die dann einzeln anzeigen lassen.
heute: Termin XY
morgen: Termin Z
..... -
Die Schleife arbeitet die Termine vom ersten Termin aus ab.
In der Schleife zahle ich von 0 bis "counts of Events today". Ist auch ein DP vom Adapter.So zählt er nur die Termine von heute.
Du kannst natürlich auch das Datum auswerten und prüfen ob es in den nächsten 10 Tagen liegt.
Für was brauchst du jeden Termin in einem einzelnen DP? Können ja mal mehr mal weniger sein.
-
@david-g
Kurzstory:
Habe ein altes Android Tablet, das kann aber Javascript nicht wirklich anzeigen in der fully app oder wallpanel.
Der Kalender wird im VIS Editor angezeigt und in jedem Browser aber auf dem Endgerät nicht in den appsSomit ist das ein Workaround um mir den Kalender ansehnlich einzublenden.
so sollte er aussehen: bleibt allerdings leer als wäre nichts.
und die Lösung jetzt ist mehr als hässlich:
-
Okay, bei vis bin ich raus.
Ich würde mir vermutlich mit HTML eine Tabelle basteln die ansehnlich ist.
Ist nicht sooo komplex.Ich hab es im Moment so, ist allerdings auch für das Smartphone optimiert und deshalb sehr einfach gehalten.
-
@curtis777 evtl kannst du damit was anfangen ?
-
@david-g Die Tabelle ist fast ok nur ist bei meinen Terminen sehr unübersichtlich,
Hätte die gerne im Querformat. -
@david-g Hab mir das jetzt genau angesehen.....
also dein Blockly, kannst du mich unterstützen das so umzubauen das das skript täglich nachsieht und die Termine von heute in ein Datenpunkt schreibt und dann den von morgen ?
Dann kann ich damit weiterarbeiten. -
Muss ich am Wochenende mal nach schauen.
Die Frage ist ja auch, wie die Termine in den DP sollen. Kommagetrennt, mit html formatierung, als json etc.Im Moment hab ich wenig Zeit. Hab grad im Moment zwischen Tür und Angel was eigenes kleines getestet wo ich Tage dran war. Hier 3min, dann nochmal 10min etc .....
Meine Tabelle kann man sich natürlich auch im querformat generieren lassen.....
-
@david-g Bei mir kommen 3 Kalender zusammen.
Alle Farbcodiert.
Sieht momentan So in der VIS aus.
MAn sieht allerdings nicht sofort wann welches Event ist daher eher eine Provisorische Lösung.