NEWS
ical - Erinnerungszeit auslesen [gelöst]
-
@jr28 Moin,
ich glaube das Problem ist, das es iwie verschachtelt ist. Du müsstest dir in einer Variablen das "_object" Schreiben, dann brauchst du in der nächsten Variablen die ID "16f1f..."
und dann kannst du den "trigger abfragen.Dein Date ist aber "_date"


geht bestimmt auch anders.
das "Entschachteln" funktioniert nur zum Teil.
-
Liste_object lässt sich noch erstellen, Liste_ID nicht mehr, ergibt []
-
die ID ändert sich mit jedem Termin, ist also nicht konstant
Der Ansatz war aber gut, vielleicht fehlt nur noch ein kleiner Trick
Danke
-
-
das "Entschachteln" funktioniert nur zum Teil.
-
Liste_object lässt sich noch erstellen, Liste_ID nicht mehr, ergibt []
-
die ID ändert sich mit jedem Termin, ist also nicht konstant
Der Ansatz war aber gut, vielleicht fehlt nur noch ein kleiner Trick
Danke
glaube nicht, dass da nur etwas kleines fehlt - wenn die langen id's wirklich unterschiedlich sein können, müßte man zuerst alle unterpunkte auslesen - danach müssen wiederum alle diese gefundenen unterpunkte durchsucht werden, ob sie bestimmte unterpunkte habe (z.b. "method": "PUBLISH" ) damit man weiß, das es sich um das richtige handelt - dann erst könnte man das auslesen
natürlich ist es nicht ganz so einfach, denn wenn man 2 reminder hat (mail,benachrichtigung) hat man das ganze 2 mal

das ganze kann man eher mit javascript lösen d.h. du musst einen functionblock machen, der das ganze macht
benötigte befehle:
- Object.keys(jsondata);
- hasOwnProperty()
-
-
glaube nicht, dass da nur etwas kleines fehlt - wenn die langen id's wirklich unterschiedlich sein können, müßte man zuerst alle unterpunkte auslesen - danach müssen wiederum alle diese gefundenen unterpunkte durchsucht werden, ob sie bestimmte unterpunkte habe (z.b. "method": "PUBLISH" ) damit man weiß, das es sich um das richtige handelt - dann erst könnte man das auslesen
natürlich ist es nicht ganz so einfach, denn wenn man 2 reminder hat (mail,benachrichtigung) hat man das ganze 2 mal

das ganze kann man eher mit javascript lösen d.h. du musst einen functionblock machen, der das ganze macht
benötigte befehle:
- Object.keys(jsondata);
- hasOwnProperty()
kann ich denn nicht die ganze Zeichenfolge des Array in einen Text umwandeln und dann konventionel mit String-Befehlen ran gehen?
9:24:31.759 info javascript.0 (1640) script.js.Tesla.Skript_1: [{'date':'09.11.2022 10:00-11:00','event':'Test','_class':'ical_Jochen Ruth ical_tomorrow','_date':'2022-11-09T09:00:00.000Z','_end':'2022-11-09T10:00:00.000Z','_IDID':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','_allDay':false,'_private':false,'_rule':' ','location':'','_calName':'Jochen Ruth','_calColor':'#44ff00','_object':{'type':'VEVENT','params':[],'start':'2022-11-09T09:00:00.000Z','datetype':'date-time','end':'2022-11-09T10:00:00.000Z','dtstamp':'2022-11-08T18:24:06.000Z','uid':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','created':'2022-11-08T17:05:18.000Z','lastmodified':'2022-11-08T17:05:18.000Z','location':'','sequence':'0','status':'CONFIRMED','summary':'Test','transparency':'OPAQUE','e7d276d9-6f79-4cc3-af0d-3a37126344b7':{'type':'VALARM','params':[],'action':'DISPLAY','description':'This is an event reminder','trigger':'-P0DT0H10M0S','end':'2022-11-09T18:24:07.531Z'},'method':'PUBLISH'}}]
und danach sowas

dann könnte man doch alles mit String-Befehlen lösen.
-
kann ich denn nicht die ganze Zeichenfolge des Array in einen Text umwandeln und dann konventionel mit String-Befehlen ran gehen?
9:24:31.759 info javascript.0 (1640) script.js.Tesla.Skript_1: [{'date':'09.11.2022 10:00-11:00','event':'Test','_class':'ical_Jochen Ruth ical_tomorrow','_date':'2022-11-09T09:00:00.000Z','_end':'2022-11-09T10:00:00.000Z','_IDID':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','_allDay':false,'_private':false,'_rule':' ','location':'','_calName':'Jochen Ruth','_calColor':'#44ff00','_object':{'type':'VEVENT','params':[],'start':'2022-11-09T09:00:00.000Z','datetype':'date-time','end':'2022-11-09T10:00:00.000Z','dtstamp':'2022-11-08T18:24:06.000Z','uid':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','created':'2022-11-08T17:05:18.000Z','lastmodified':'2022-11-08T17:05:18.000Z','location':'','sequence':'0','status':'CONFIRMED','summary':'Test','transparency':'OPAQUE','e7d276d9-6f79-4cc3-af0d-3a37126344b7':{'type':'VALARM','params':[],'action':'DISPLAY','description':'This is an event reminder','trigger':'-P0DT0H10M0S','end':'2022-11-09T18:24:07.531Z'},'method':'PUBLISH'}}]
und danach sowas

dann könnte man doch alles mit String-Befehlen lösen.
@jr28 sagte in ical - Erinnerungszeit auslesen:
[{'date':'09.11.2022 10:00-11:00','event':'Test','_class':'ical_Jochen Ruth ical_tomorrow','_date':'2022-11-09T09:00:00.000Z','_end':'2022-11-09T10:00:00.000Z','_IDID':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','_allDay':false,'_private':false,'_rule':' ','location':'','_calName':'Jochen Ruth','_calColor':'#44ff00','_object':{'type':'VEVENT','params':[],'start':'2022-11-09T09:00:00.000Z','datetype':'date-time','end':'2022-11-09T10:00:00.000Z','dtstamp':'2022-11-08T18:24:06.000Z','uid':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','created':'2022-11-08T17:05:18.000Z','lastmodified':'2022-11-08T17:05:18.000Z','location':'','sequence':'0','status':'CONFIRMED','summary':'Test','transparency':'OPAQUE','e7d276d9-6f79-4cc3-af0d-3a37126344b7':{'type':'VALARM','params':[],'action':'DISPLAY','description':'This is an event reminder','trigger':'-P0DT0H10M0S','end':'2022-11-09T18:24:07.531Z'},'method':'PUBLISH'}}]
müßte evtl auch funktionieren - was genau willst du auslesen - diesen wert? 'end': '2022-11-09T18:24:07.531Z'
dann müßtest du unter _object das 2te aufkommen von end finden - dann könntest du es evtl. finden
-
@jr28 sagte in ical - Erinnerungszeit auslesen:
[{'date':'09.11.2022 10:00-11:00','event':'Test','_class':'ical_Jochen Ruth ical_tomorrow','_date':'2022-11-09T09:00:00.000Z','_end':'2022-11-09T10:00:00.000Z','_IDID':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','_allDay':false,'_private':false,'_rule':' ','location':'','_calName':'Jochen Ruth','_calColor':'#44ff00','_object':{'type':'VEVENT','params':[],'start':'2022-11-09T09:00:00.000Z','datetype':'date-time','end':'2022-11-09T10:00:00.000Z','dtstamp':'2022-11-08T18:24:06.000Z','uid':'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com','created':'2022-11-08T17:05:18.000Z','lastmodified':'2022-11-08T17:05:18.000Z','location':'','sequence':'0','status':'CONFIRMED','summary':'Test','transparency':'OPAQUE','e7d276d9-6f79-4cc3-af0d-3a37126344b7':{'type':'VALARM','params':[],'action':'DISPLAY','description':'This is an event reminder','trigger':'-P0DT0H10M0S','end':'2022-11-09T18:24:07.531Z'},'method':'PUBLISH'}}]
müßte evtl auch funktionieren - was genau willst du auslesen - diesen wert? 'end': '2022-11-09T18:24:07.531Z'
dann müßtest du unter _object das 2te aufkommen von end finden - dann könntest du es evtl. finden
ich brauche den Startwert und die Erinnerung
'_date':'2022-11-09T09:00:00.000Z'
'trigger':'-P0DT0H10M0S'leider bringt der Versuch den reinen Text einer Variable zuzuweisen eine leere Variable

-
ich brauche den Startwert und die Erinnerung
'_date':'2022-11-09T09:00:00.000Z'
'trigger':'-P0DT0H10M0S'leider bringt der Versuch den reinen Text einer Variable zuzuweisen eine leere Variable

sorry - aber das mit dem string durchsuchen gefällt mir nicht

hier ein beispiel - die funktion gibt immer den ersten trigger zurück (oder no triggers",wenn keiner da ist) - davon ausgehend, das deine einträge nur eine erinnerung haben ! kommt bei mir selten vor - habe meist 2 trigger (mail, benachrichtigung)
zum import und testen:
-
@liv-in-sky
vielen herzlichen Dank für die Mühe.
Ich versuche noch genau zu verstehen wie es gemacht wurde, aber es tut was es soll und ich kann es als Baustein verwenden. -
@liv-in-sky
vielen herzlichen Dank für die Mühe.
Ich versuche noch genau zu verstehen wie es gemacht wurde, aber es tut was es soll und ich kann es als Baustein verwenden.zuerst wird das _object gelesen
in der function:
let theTriggers=[]; let theKeys=Object.keys(objectPart); //liest alle unterkeys unter _object und erstellt ein array //log(theKeys); for (let ii=0; ii<theKeys.length; ii++){ // es wird durch alle unterkeys durchgegangen if (objectPart[theKeys[ii]].hasOwnProperty("trigger")) { //wenn in einem unterkey noch ein unter-unterkey "trigger" existiert theTriggers.push(objectPart[theKeys[ii]].trigger) // wird dieser trigger in ein array gespeichert (könnten ja mehrere sein } }if (theTriggers.length > 0) { return theTriggers[0] } else { return"no Triggers";} // gibt den ersten "trigger-wert" aus dem array zurück oder "no Trigger"wichtig dabei - ein tool. um die struktur des jsons richtig zu sehen
[ { 'date': '09.11.2022 10:00-11:00', 'event': 'Test', '_class': 'ical_Jochen Ruth ical_tomorrow', '_date': '2022-11-09T09:00:00.000Z', '_end': '2022-11-09T10:00:00.000Z', '_IDID': 'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com', '_allDay': false, '_private': false, '_rule': ' ', 'location': '', '_calName': 'Jochen Ruth', '_calColor': '#44ff00', '_object': { 'type': 'VEVENT', 'params': [ ], 'start': '2022-11-09T09:00:00.000Z', 'datetype': 'date-time', 'end': '2022-11-09T10:00:00.000Z', 'dtstamp': '2022-11-08T18:24:06.000Z', 'uid': 'cor32dhmcpj3ab9j6gsj8b9kckqj4b9o64r66bb46oo3ac1i6sqm2o9p70@google.com', 'created': '2022-11-08T17:05:18.000Z', 'lastmodified': '2022-11-08T17:05:18.000Z', 'location': '', 'sequence': '0', 'status': 'CONFIRMED', 'summary': 'Test', 'transparency': 'OPAQUE', 'e7d276d9-6f79-4cc3-af0d-3a37126344b7': { 'type': 'VALARM', 'params': [ ], 'action': 'DISPLAY', 'description': 'This is an event reminder', 'trigger': '-P0DT0H10M0S', 'end': '2022-11-09T18:24:07.531Z' }, 'method': 'PUBLISH' } } ] -
Vielen Dank nochmal, werde ich mir in Ruhe anschauen. Ich beschäftige mich erst seit etwa 10 Tagen mit JavaScript bzw. Blockly, da ich durch einen Bekannten auf IO Broker gestoßen wurde und festgestellt habe, was damit alles geht.
-
Vielen Dank nochmal, werde ich mir in Ruhe anschauen. Ich beschäftige mich erst seit etwa 10 Tagen mit JavaScript bzw. Blockly, da ich durch einen Bekannten auf IO Broker gestoßen wurde und festgestellt habe, was damit alles geht.
ja - das ist nicht unbedingt ein anfäger script - aber json-verarbeiten kann man bei iobroker immer gut gebrauchen - leider ist blockly da nicht wirklich gut dafür
nur so nebenbei - bei diesem script ist etwas besonderes
normalerweise spricht man einen key im json so an - also mit punkten getrennt:
objectPart.theKeys[ii].trigger -> objectPart.e7d276d9-6f79-4cc3-af0d-3a37126344b7.triggerda aber der key "e7d276d9-6f79-4cc3-af0d-3a37126344b7" bindestriche beinhaltet und javascript das als minus interpretiert, muss man anstatt des punktes die eckige klammer nehmen
objectPart[theKeys[ii]].trigger -> objectPart["e7d276d9-6f79-4cc3-af0d-3a37126344b7"].trigger -
ja - das ist nicht unbedingt ein anfäger script - aber json-verarbeiten kann man bei iobroker immer gut gebrauchen - leider ist blockly da nicht wirklich gut dafür
nur so nebenbei - bei diesem script ist etwas besonderes
normalerweise spricht man einen key im json so an - also mit punkten getrennt:
objectPart.theKeys[ii].trigger -> objectPart.e7d276d9-6f79-4cc3-af0d-3a37126344b7.triggerda aber der key "e7d276d9-6f79-4cc3-af0d-3a37126344b7" bindestriche beinhaltet und javascript das als minus interpretiert, muss man anstatt des punktes die eckige klammer nehmen
objectPart[theKeys[ii]].trigger -> objectPart["e7d276d9-6f79-4cc3-af0d-3a37126344b7"].trigger
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden