NEWS
Test Adapter Calendar v1.2.x
-
Hallo @J-A-R-V-I-S :
Ich glaube ich bin noch über einen Bug gestolpert:
Ich habe meine Nextcloud Kalender über CalDav eingebunden. Funktioniert sehr gut! Bei mir hat sich jetzt allerdings die Domain geändert und ich habe dies in den Einstellungen bei den Kalendern abgeändert (die neue Domain beginnt mit "fa***") :
Allerding scheint sich der Calendar-Adapter durch die neuen Einstellungen nicht beeindrucken zu lassen und versucht sich nach wie vor mit der alten Domain zu verbinden (diese beginnt mit "tsho***")
Habe den Adapter auch schon mehrfach neu gestartet.
Kannst Du das nachvollziehen? Mache gerne einen issue auf auf git, wenn gewünscht.
Grüße,
Tim -
@Tom-Son said in Test Adapter Calendar v1.2.x:
Hallo alle...
Ich bekomme meinen Nextcloud Kalender nicht eingebunden, habe versucht mit einem öffentlichen Link und einem privaten Link, aber geht beides nicht, ich bekomme im Log immer die Meldung: no events found in iCal instance - check configuration and restart adapter Es sind aber Events eingetragen.
Klappt das mit dem Nextcloud-Kalender nicht? Caldav funktioniert definitv da ich den Klaender mit meinem Outlook-Kalender abgleiche.
Ebenso bleibt der Trashschdedule Instanz gelb, "Verbunden mit Treshschedule falsch" ...
Was kann ich da tun?Edit: habe nun gefunden dass der Kalender Link mit einem /?export ergänz werden muss. Jetzt hat sich das Log etwas verändert,
im iCal - Log steh nun in unregelmässigen Abständen:ical.0 2020-06-18 19:00:13.586 info (827844) Terminated (NO_ERROR): Without reason ical.0 2020-06-18 19:00:08.041 info (827844) processing URL: Müllkalender https://meinesite.at/index.php/apps/calendar/p/M6mjDEkBQAePDoMA ical.0 2020-06-18 19:00:06.484 info (827844) starting. Version 1.7.0 in /opt/iobroker/node_modules/iobroker.ical, node: v10.21.0, js-controller: 3.1.5
und im trashshedule Log steht exakt zum selben Zeitpunkt:
trashschedule.0 2020-06-18 19:00:08.059 error (820694) no events found in iCal instance - check configuration and restart adapter
In den iCal Objekten ist tatsächlich alles leer, alle Einträge auf "false"
Wenn ich mir dem Kalender exportiere dann sehe ich die Termine in dem File, die sind definitv vorhanden.Hallo @Tom-Son ,
bei mir funktioniert die Einbindung der NExtcloud Kalender sehr gut. Du hast glaube ich die falsche Url angegeben. Bei mir sieht das so aus:
Bei "Name" den Namen Deines Kalenders bei Nextcloud eintragen (muss übereinstimmen, sonst findet er den nicht).
Bei "Hostname": Domain/Adresse des Servers (bei mir geschwärzt) + "/remote.php/dav/"
Bei "Nutzername"/"Passwort": Die Logindaten Deines NExtcloud-AccountsDu scheinst auf einen ical - Link zu verlinken? Glaube nicht, dass die CalDAV-Funktion diese ADpaters dieses Format so verarbeiten kann. Wichtig ist, dass Dein Nextcloud-Server Zugriffe auf "domain.example.com/remote.php/dav/" korrekt verarbeitet. Falls es hier zu Schwierigkeiten kommt, wird Dir das manchmal in der Nextcloud-Benutzeroberfläche bei den Einstellungen des admin-accounts hier angezeigt:
(bei mir ist jetzt nur eine Fehlermeldung zu meiner Datenbank zu sehen, wollte Dir nur zeigen, wo Du eventuell nachschauen kannst).EDIT: Sehe gerade, dass die neueste Version des Adapters auch ical-Links verarbeiten kann. Sollte also auch gehen. ICh binde meine Nextcloud nur wie oben beschrieben über die CalDAV Funktion ein und das klappt gut.
-
Wie könnte ich nun hier z.b. Infos für Geburstags VIS oder Müllabfuhr VIS bekommen ?
z.b. in 5 Tagen Gelber Sack, in 4, 3, 2, Übermorgen, morgen, Heute gelber Sack
Das gleiche z.b. mit Geburtstagen.
Ist das möglich ?
-
@Stephan-Schleich aktuell gibt es noch keins, da ich derzeit noch einige andere Projekte am Laufen habe. Ich werde mich aber bald wieder dem Calendar Adapter widmen.
@Tom-Son du bist hier im falschen Thread. Du nutzt den iCal Adapter und nicht den Calendar Adapter.
@ts020339 ich bin mir gerade unsicher, aber ich glaube, dass die komplette URL vom Kalender beim ersten initialisieren hinterlegt wird. Da steht vermutlich noch der alte Name drin. Da muss ich mir mal überlegen, ob ich nur die relativen Pfade abspeicher.
Somit kannst du die aktuell nur einbinden, indem die die komplett neu in der Adapter Konfig einträgst.
@ts020339 der Calendar Adapter unterstützt auch iCal.
-
@D3ltoroxp du könntest das mit einem Skript lösen. Aktuell bietet der Adapter eine solche Funktion nicht. Ebenso gibt es auch keine Unterstützung für Trash schedule Adapter.
-
@J-A-R-V-I-S said in Test Adapter Calendar v1.2.x:
@D3ltoroxp du könntest das mit einem Skript lösen. Aktuell bietet der Adapter eine solche Funktion nicht. Ebenso gibt es auch keine Unterstützung für Trash schedule Adapter.
Aktuell ! Heißt das, das so was auf einer ToDo Liste steht, oder in Planung ist ?
-
@D3ltoroxp es gibt dazu schon ein Issue auf Github.
-
@ts020339
Danke dir, im calender.0 klappt das auch aber in ical.0 nicht. Kann man den trashshedule umstellen auch den calender? Bei mir kann ich nur den ical auswählen...@J-A-R-V-I-S
Danke für den Hinweis, aber die meisten Einträge sind schon über ein Jahr alt und da tut sich nichts mehr, deshalb in ich für jeden Tipp dankbar -
@Tom-Son said in Test Adapter Calendar v1.2.x:
@ts020339
Danke dir, im calender.0 klappt das auch aber in ical.0 nicht. Kann man den trashshedule umstellen auch den calender? Bei mir kann ich nur den ical auswählen...sorry, dass Du ical.0 nutzt habe ich zu spät begriffen, nachdem das ein Thread über "calendar" ist. Trash schedule unterstützt offenbar nur ical, wie auch JARVIS schrieb. Ich habe mir für eine Müllanzeige mit calendar selber ein Blockly-Script gebastelt, hat aber eine deutlich reduzierte Funktion und man hat natürlich auch kein VIS Widget
-
@J-A-R-V-I-S said in Test Adapter Calendar v1.2.x:
@ts020339 ich bin mir gerade unsicher, aber ich glaube, dass die komplette URL vom Kalender beim ersten initialisieren hinterlegt wird. Da steht vermutlich noch der alte Name drin. Da muss ich mir mal überlegen, ob ich nur die relativen Pfade abspeicher.
Somit kannst du die aktuell nur einbinden, indem die die komplett neu in der Adapter Konfig einträgst.Hallo @J-A-R-V-I-S ,
danke für die Erklärung. Habe jetzt komplett neue Kalender angelegt und die alten gelöscht. Falls Du das nicht anpassen willst (wegen Aufwand/Zeit) wäre eventuell auch ein kleiner Hinweis in der Doku oder in den Einstellungen des Adapters hilfreich, dass man weiß, dass die Einstellungen nach Erstellung nicht editierbar sind.
Das einzig "unschöne" am Neuanlegen ist halt, dass mit neu angelegten Kalendern auch neue Datenpunkte erzeugt werden. D.h. Man muss manuell alle seine Skripte durchsuchen (hoffen, dass man alle Punkte findet) und die neuen Kalenderdatenpunkte neu verlinken. Soll aber kein Vorwurf sein, bin Dir sehr dankbar für Deinen Adapter und die Unterstützung von CalDAV!Grüße!
-
@J-A-R-V-I-S said in Test Adapter Calendar v1.2.x:
@D3ltoroxp du könntest das mit einem Skript lösen. Aktuell bietet der Adapter eine solche Funktion nicht. Ebenso gibt es auch keine Unterstützung für Trash schedule Adapter.
Könntest du mir helfen, wie so ein Script aussehen sollte ? Das Script sucht dann nach bestimmten Wörtern, wie z.b. Gelber Sack, Papiertonne ? Das muss ich in den einzelne DP's prüfen ? Tag 1 , 2 , 3 usw. Und wenn z.b. Gelber Sack an Tag 3 steht, könnte ich dann einen Text erstellen lassen und dann immer auf den Tag prüfen und mit schreiben lassen, Quasi dann in 3 in 2 morgen...
-
@D3ltoroxp said in Test Adapter Calendar v1.2.x:
@J-A-R-V-I-S said in Test Adapter Calendar v1.2.x:
@D3ltoroxp du könntest das mit einem Skript lösen. Aktuell bietet der Adapter eine solche Funktion nicht. Ebenso gibt es auch keine Unterstützung für Trash schedule Adapter.
Könntest du mir helfen, wie so ein Script aussehen sollte ? Das Script sucht dann nach bestimmten Wörtern, wie z.b. Gelber Sack, Papiertonne ? Das muss ich in den einzelne DP's prüfen ? Tag 1 , 2 , 3 usw. Und wenn z.b. Gelber Sack an Tag 3 steht, könnte ich dann einen Text erstellen lassen und dann immer auf den Tag prüfen und mit schreiben lassen, Quasi dann in 3 in 2 morgen...
Hi,
ich habe das mit einem (programmiertechnisch sehr unschön aufgebauten ) Blockly-Skript quick-and-dirty gelöst. Es geht mit Sicherheit eleganter, aber bei mir funktioniert es:
Hier der Export des Skripts, musst du über die Import-Funktion im Blockly-Modus wieder importieren und danach die ganzen Datenpunkte korrekt anpassen:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="ms/mac`WD(VseC=8za5r">Abfall_Kalender_1</variable> <variable id="ob4oe00h_sL|Cx{zpd4Z">Abfall_Kalender_2</variable> <variable id="#Ap]{|xc~^Rv#eFZ4[/`">Abfall_Kalender_3</variable> </variables> <block type="on_ext" id="::h9y24TVAGz[FtSo{t|" x="-62" y="-237"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="ZAY6,?b^Z{9@*d-3,q*r"> <field name="oid">calendar.0.ZW5kYXJzL0FiZmFsbC9wZXJzb25hbC.0.events</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="pVZcd9/m(?B$)5-l`[cp"> <field name="VAR" id="ms/mac`WD(VseC=8za5r">Abfall_Kalender_1</field> <value name="VALUE"> <block type="get_value" id="03L5k6HOb|Q3^Z},~X,U"> <field name="ATTR">val</field> <field name="OID">calendar.0.ZW5kYXJzL0FiZmFsbC9wZXJzb25hbC.1.events</field> </block> </value> <next> <block type="variables_set" id="Cvgsdi;55kxt~E.mxF$l"> <field name="VAR" id="ob4oe00h_sL|Cx{zpd4Z">Abfall_Kalender_2</field> <value name="VALUE"> <block type="get_value" id="Q_5/H9/[J0^QcJO;U[!H"> <field name="ATTR">val</field> <field name="OID">calendar.0.ZW5kYXJzL0FiZmFsbC9wZXJzb25hbC.2.events</field> </block> </value> <next> <block type="variables_set" id="vHH20oCr0EG(^;]DjqQ`"> <field name="VAR" id="#Ap]{|xc~^Rv#eFZ4[/`">Abfall_Kalender_3</field> <value name="VALUE"> <block type="get_value" id="aH.W#8Y%~U~4WoE/{kNJ"> <field name="ATTR">val</field> <field name="OID">calendar.0.ZW5kYXJzL0FiZmFsbC9wZXJzb25hbC.3.events</field> </block> </value> <next> <block type="control" id="d`Kr`NNgN+K+-NR{J|d:"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.blaue_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Y7Md(1^h17WOe%w_`@TV"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="reT~O^XpYo+Fs[tu8iw:"> <value name="IF0"> <block type="math_number_property" id="X2Me,vme^BLkr-/p5~G="> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="speN0grHA38fp44;#b}-"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="L?XX]{~2LHozN,M[Ne}E"> <field name="VAR" id="#Ap]{|xc~^Rv#eFZ4[/`">Abfall_Kalender_3</field> </block> </value> <value name="FIND"> <shadow type="text" id=")UGm;(Al80?Qe$jV2|IZ"> <field name="TEXT">Papier</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="EMG+cc4B6bet6@[[PWd["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.blaue_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+0uBw{-T[4Rmc@?Wad}v"> <field name="NUM">3</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="tyYw*9wR#,Qs`aA$zp$7"> <value name="IF0"> <block type="math_number_property" id="oA])+4U80NvxNt!(@g?S"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="r-)kqYJVjPO5d-C/C.+A"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="G`1t._6fuZD`V|ZtAk|["> <field name="VAR" id="ob4oe00h_sL|Cx{zpd4Z">Abfall_Kalender_2</field> </block> </value> <value name="FIND"> <shadow type="text" id="MkI;ApMu^`.6DX^}gj7e"> <field name="TEXT">Papier</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="j_6qzB%=Y^;_u$LmxYl5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.blaue_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="zY}NaNC`O|SFLHSZ$3O6"> <field name="NUM">2</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="{g%.!5tUKWyYmpof}$#C"> <value name="IF0"> <block type="math_number_property" id="Fg|$$FSs7%*f//hq1P]o"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="G|,ub$/6Yypr!WZt]K.,"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="4Z3(tAg[+cS~jSeAEEvS"> <field name="VAR" id="ms/mac`WD(VseC=8za5r">Abfall_Kalender_1</field> </block> </value> <value name="FIND"> <shadow type="text" id="d-nzR{K@ocarrCRxI5A]"> <field name="TEXT">Papier</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="F;b@+R){AISOJ^0``YF/"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.blaue_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="W5ENk85EMi.)N3IRHSAu"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="control" id="{+]Krfa=T15A_ORqaRJZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.gelbe_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=")C@CG8?G]B{|GUv=1$@|"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="78gh/g5cCJ}`%4si.T[u"> <value name="IF0"> <block type="math_number_property" id="=fK.qMLlu=o!|x_P|`8$"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="+-fzJ)K@}`yZhFvA6m/Q"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="dgM.I$?TPozYH;NF5%~P"> <field name="VAR" id="#Ap]{|xc~^Rv#eFZ4[/`">Abfall_Kalender_3</field> </block> </value> <value name="FIND"> <shadow type="text" id=";BaXtBk:uo$9e/DP!c%C"> <field name="TEXT">Gelbe Tonne</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="*Ii+`MFIjT}ai=Pd2#v;"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.gelbe_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="rJIQNIKvjTtEsU,azc#)"> <field name="NUM">3</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="BPQ*?}|(x(~,6OpqsGop"> <value name="IF0"> <block type="math_number_property" id="EAO?RGC~(8:NVzoa!ejP"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="bw$pXuGuhataW1bF0RjS"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="HeZ~=Yyk#35:6$gLd~Zl"> <field name="VAR" id="ob4oe00h_sL|Cx{zpd4Z">Abfall_Kalender_2</field> </block> </value> <value name="FIND"> <shadow type="text" id="yCvyrB~UyoSvoTpL%[N["> <field name="TEXT">Gelbe Tonne</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="?7AnyziEB~PPC?8B%(Ea"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.gelbe_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="wSXJcyoh;fY2KK-F9Fy("> <field name="NUM">2</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="l%yimr!`Y4P@|Ms7-)t!"> <value name="IF0"> <block type="math_number_property" id="GW{@7|~0=GK8R;:b|)]K"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="-098|?ncu-myAn#?ccqk"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="r1m]HVVvhV,mnxy)%,f."> <field name="VAR" id="ms/mac`WD(VseC=8za5r">Abfall_Kalender_1</field> </block> </value> <value name="FIND"> <shadow type="text" id=":?u3,xt!v~O71J_r6d2f"> <field name="TEXT">Gelbe Tonne</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="5.o:ZigzT2#jw^7n$jRH"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.gelbe_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="JoJP}~=UgP86Oi5rI])["> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="control" id="pCjO3TX~,JM2Ef]xcWBW"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.restmuell_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="koQRv$/%escC#.1@8wuY"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="@.HqEy),J0U5+P{,C2S{"> <value name="IF0"> <block type="math_number_property" id="]zYJN@9{lB2GRe_T%H=N"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="`]?e%1Qo9Sr[e`xX8PGN"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="QEbSH{d`TRXP^ZH4B-tD"> <field name="VAR" id="#Ap]{|xc~^Rv#eFZ4[/`">Abfall_Kalender_3</field> </block> </value> <value name="FIND"> <shadow type="text" id="g.m(YS:CMKOWs9^J:U{T"> <field name="TEXT">Restmüll</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Q[r8U=PCBc-~kVsfCrmZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.restmuell_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=".WqN_5X7XI%4B@%z+{G7"> <field name="NUM">3</field> </block> </value> </block> </statement> <next> <block type="controls_if" id=".sMIt;rGFzIx{t3iOn@5"> <value name="IF0"> <block type="math_number_property" id="l(y*~]fzkQ:+M9x6T;Vy"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id="e:Xw{*ukZ!q-q/:CoO3S"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="xi_sb23_GskpI{Rv#cTu"> <field name="VAR" id="ob4oe00h_sL|Cx{zpd4Z">Abfall_Kalender_2</field> </block> </value> <value name="FIND"> <shadow type="text" id="z[)K]{h!aPwH`?^JuoQ#"> <field name="TEXT">Restmüll</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="~U|}HT4Ig?(_.$]VaGD2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.restmuell_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="fDRrwx/C9vF;^DF(?Zbg"> <field name="NUM">2</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="0As4KpHi@C[C9dCtjD-I"> <value name="IF0"> <block type="math_number_property" id="B$k#iBIOrPZP)F0iB~xN"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">POSITIVE</field> <value name="NUMBER_TO_CHECK"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="#QaI[..Je5?,AXz:@XCk"> <field name="NUM">0</field> </shadow> <block type="text_indexOf" id=":=2Ca`pkw}]z*XRv#Pos"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="8Fn}CMG98wf539gT;bA-"> <field name="VAR" id="ms/mac`WD(VseC=8za5r">Abfall_Kalender_1</field> </block> </value> <value name="FIND"> <shadow type="text" id="`VLIXa*TSE-`3L78totp"> <field name="TEXT">Restmüll</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="FTc;H?92%IAej2SIeM9K"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.restmuell_tonne</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="2jAP+dz=hTMx5QD!(?=8"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
Vielleicht hilft es Dir ja. Ich suche in den Kalenderdatenpunkten der nächsten 2 Tage (calendar.0.XXX.1.events=heute, calendar.0.XXX.2.events=morgen,calendar.0.XXX.3.events=übermorgen) nach dem Vorkommen bestimmter Einträge (z.B. "Papier") und schreibe den kurzfristigsten Eintrag dann in einen eigenen Datenpunkt (z.B. "javascript.0.blaue_tonne"). Diese eigenen Datenpunkte haben eine Liste:
,die die Zahlen 0-4 wieder in Begriffe ("heute","morgen", etc.) übersetzen. Diese eigenen Datenpunkte kannst Du dann in Deiner Visualisierung referenzieren (ich mache das in iQontrol).
Aber wie gesagt, das ganze geht mit Sicherheit eleganter, wenn man sich ein richtiges Skript bastelt!
Grüße! -
@ts020339 Vielen Dank, das ist doch schon mal was. Schau ich mir an. Danke Danke.
-
Ich habe insgesamt 11 Kalender im iCal angelegt.
Bei einigen habe ich i-cal Adressen, sind nur öffentliche URL vorhanden (z.B. bei den Feiertagen).Es werden mir aber auch nur die I-Cal Termine angezeigt.
Wie kann ich z.B. Feiertag-Kalender mit öffentlicher URL integrieren?
Oder die "Termine" anderer Adapter (auch hier gibts ja einen Feiertags-Adapter)? -
@ts020339 said in Test Adapter Calendar v1.2.x:
@D3ltoroxp said in Test Adapter Calendar v1.2.x:
@J-A-R-V-I-S said in Test Adapter Calendar v1.2.x:
@D3ltoroxp du könntest das mit einem Skript lösen. Aktuell bietet der Adapter eine solche Funktion nicht. Ebenso gibt es auch keine Unterstützung für Trash schedule Adapter.
Könntest du mir helfen, wie so ein Script aussehen sollte ? Das Script sucht dann nach bestimmten Wörtern, wie z.b. Gelber Sack, Papiertonne ? Das muss ich in den einzelne DP's prüfen ? Tag 1 , 2 , 3 usw. Und wenn z.b. Gelber Sack an Tag 3 steht, könnte ich dann einen Text erstellen lassen und dann immer auf den Tag prüfen und mit schreiben lassen, Quasi dann in 3 in 2 morgen...
Hi,
ich habe das mit einem (programmiertechnisch sehr unschön aufgebauten ) Blockly-Skript quick-and-dirty gelöst. Es geht mit Sicherheit eleganter, aber bei mir funktioniert es:Vielleicht hilft es Dir ja. Ich suche in den Kalenderdatenpunkten der nächsten 2 Tage (calendar.0.XXX.1.events=heute, calendar.0.XXX.2.events=morgen,calendar.0.XXX.3.events=übermorgen) nach dem Vorkommen bestimmter Einträge (z.B. "Papier") und schreibe den kurzfristigsten Eintrag dann in einen eigenen Datenpunkt (z.B. "javascript.0.blaue_tonne"). Diese eigenen Datenpunkte haben eine Liste:
Vielen Dank, ich versuche mich gerade daran. Wie oder wo bekomme ich diese Werteliste her ?
-
Ich versuche es jetzt grade so und lass mir gleich den fertigen Text eintragen.
Leider kommt im Log folgendes wenn ich das Script starten will..
javascript.0 2020-07-08 18:41:11.403 error (598) at Script.runInContext (vm.js:131:20) javascript.0 2020-07-08 18:41:11.403 error (598) at script.js.VIS.Abfallkalender:14:24 javascript.0 2020-07-08 18:41:11.403 error (598) TypeError: Cannot read property 'indexOf' of undefined javascript.0 2020-07-08 18:41:11.403 error (598) ^ javascript.0 2020-07-08 18:41:11.402 error (598) if ((Abfall_Kalender_4.indexOf('Papiertonne') + 1) > 0) { javascript.0 2020-07-08 18:41:11.402 error (598) script.js.VIS.Abfallkalender: script.js.VIS.Abfallkalender:14 javascript.0 2020-07-08 18:41:11.383 info (598) Start javascript script.js.VIS.Abfallkalender
Datenpunkte, hab ich auf Zeichenkette gesetzt, in der er den Text schreiben soll.
Day 0 ist quasi nicht der Tag an dem der Event passiert, sondern der Tag danach ?
-
@Hausbaer wenn du die Adresse dort angibst, dann sollte er die auch laden und verarbeiten.
Hast du mal einen Beispiel Link?
-
@D3ltoroxp scheint als würde dein "Abfall_Kalender_4" nicht existieren.
-
@J-A-R-V-I-S said in Test Adapter Calendar v1.2.x:
@D3ltoroxp scheint als würde dein "Abfall_Kalender_4" nicht existieren.
Ich hab's jetzt auch ohne Variable gelöst und die Datenpunkte direkt abgefragt. So klappt es nun.
Jetzt fehlt mir nur noch folgendes. Wenn eben in meinen überprüften Tagen z.b. kein Wort "Papiertonne" auftaucht, dann möchte ich das auch Triggern. Klappt nur irgendwie nicht.
Und "Day 0" heißt, Tag danach ? Dachte immer das wäre der Tag vom Event.
Auch Triggert er hier irgendwie nicht auf eine aktualisierung.
So hat es ja @ts020339 als Beispiel gezeigt. Hier wird ja auf den Hauptodner getriggert, reagiert der Trigger auch auf die darunterliegenden Datenpunkt ? Weil bei mir hätte das Script eigentlich was schreiben sollen, hat es aber nicht. Habs dann manuell ausführen lassen und das hat dann auch geklappt. Also muss ich am Trigger selber, die ganzen DP's mit angeben ?
-
@ts020339 Danke noch mal für dein Script. Hab es noch mal etwas abgeändert und erweitert. Aber scheint ganz gut zu klappen. Muss ich jetzt mal die Tage schauen. Hier und da muss ich noch ein wenig verfeinern und auch dann auf zurücksetzten, wenn der Event vorbei ist.
@J-A-R-V-I-S Mal eine Frage, hast du hier für was geplant ?
Material Design Widget Dazu braucht man wohl json.