SEPIA-Framework / sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
https://sepia-framework.github.io/
238 stars 16 forks source link

gzip / FHEM Character Encoding bei httpGet: Umlaute brechen JSON #26

Closed xyzaxyz closed 4 years ago

xyzaxyz commented 4 years ago

Hi Florian, danke für ein bislang sehr vielversprechend aussehendes, gut strukturiertes System.

Ich baue das ganze gerade auf einem RPi4 lokal nach und möchte es an meine FHEM Instanz anbinden.

Über den Stolperstein, dass mein am FHEM-Server befindliches mit eigener CA gesignetes Zertifikat nicht im Truststore der JVM war, bin ich mit folgenden Commands schon selbstständig gekommen -evtl gibts hier aber auch die Möglichkeit für ein ignore-flag, allerdings tun mir die 2 Commands nicht weiter weh:

openssl x509 -in <(openssl s_client -connect home.vx:443 -prexit 2>/dev/null) -out ~/homevx.crt
sudo keytool -importcert -file ~/homevx.crt -alias homevx -keystore "/usr/lib/jvm/java-11-openjdk-armhf/lib/security/cacerts" -storepass changeit

SEPIA client and server versions

To Reproduce Leider nun ein Problem, das ich glaube ich nicht selbst fixen oder umgehen kann: Nach der Registration von Sepia an FHEM hole ich die Geräteliste über die UI:

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77103624-00e6ac00-6a1b-11ea-9eef-3f0b2764a6f7.png)

sepia-assist-server/log.out zeigt folgende Fehlermeldung:

2020-03-19 18:51:47 ERROR - FHEM - getDevices FAILED with msg.: {"code":"500","error":"result could not be parsed","HTTP_REST_SUCCESS":false}

Das darüber geloggte JSON zeigt in VS Code eingefügt etliche invalide Stellen, man sieht, dass Umlaute falsch dargestellt werden:

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77103903-6fc40500-6a1b-11ea-8129-30138e8fe66d.png)

Andere Stellen bringe ich nicht mit dem Encoding in Verbindung, verstehe es aber einfach nicht, warum plötzlich mitten im JSON wichtige Steuerzeichen fehlen würden.

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77103995-8ec29700-6a1b-11ea-873f-2e710daa14df.png)

Manuelle Aufrufe, selbst ohne Content-Type Header via Postman abgesendet, bilden alle ein valides JSON ab.

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77104049-abf76580-6a1b-11ea-84bb-9e849d2e45fb.png)

Expected behavior Ich würde erwarten, dass public Map<String, SmartHomeDevice> getDevices() beim Aufruf von JSONObject result = httpGET(url); ein valides, parsbares JSON-Array erhält, identisch zur Response, wenn ich "zu Fuß" im Browser oder via Postman den selben Endpunkt von FHEM aufrufe ( https://home.vx/fhem?cmd=jsonlist2&XHR=1 )

xyzaxyz commented 4 years ago

Eventuell liegt es an dem CharStream/StreamReader Verbund? UTF-8 klingt ja erst mal gut und korrekt...

Aus src\main\java\net\b07z\sepia\server\core\tools\Connectors.java

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77105001-37252b00-6a1d-11ea-9f8b-fcaf873bcc7c.png)
sepia-assistant commented 4 years ago

Hi :-)

Über den Stolperstein, dass mein am FHEM-Server befindliches mit eigener CA gesignetes Zertifikat nicht im Truststore der JVM war, bin ich mit folgenden Commands schon selbstständig gekommen

Ah wie nervig, das Problem hatte ich in ähnlicher Weise auch mal mit dem lokal installierten Java (~/SEPIA/java). Ist das Zertifikat im systemweiten Store? Falls ja sollte das package ca-certificates-java eigentlich dafür sorgen, dass es in den Java Truststore kopiert wird.

sepia-assist-server/log.out zeigt folgende Fehlermeldung: [...] Das darüber geloggte JSON zeigt in VS Code eingefügt etliche invalide Stellen, man sieht, dass Umlaute falsch dargestellt werden:

Ich muss mir das Morgen mal genauer angucken aber es KÖNNTE sein, dass die Umlaute lediglich ein Problem der log.out sind (die ist nicht zwangsläufig UTF-8 kodiert, wobei das unter Linux komisch wäre) und der Fehler woanders herkommt. Selber hatte ich mit FHEM bisher keine Probleme mit Umlauten, egal auf welchem System (RPi, Windows, Debian, etc.), vielleicht stört ihn ein anderes Zeichen. Gibt es noch mehr Infos im Stack-Trace die den genauen Ort des Fehlers angeben? (manchmal steht da was von 'invalid token at ...').

Könntest du mal versuchen den JSON-String in UTF-8 umzuwandeln und dann im Browser zu parsen mit JSON.parse(...) oder vielleicht den ganzen Teil aus der log.out hier posten, falls möglich?

xyzaxyz commented 4 years ago

Hey,

Danke für die schnelle Rückmeldung!

Zu den Zertifikaten: Ich habe die genauen Commands nicht mehr da, die habe ich, weil sie nicht das gewünschte Ergebnis gebracht haben, aus meinen Notizen entfernt und nur die oben beschriebene Methode bei mir vermerkt - so umständlich ist es ja nicht :)


Die log.out hat bei mir im Urzustand (habe sie heute vor dem Start der SEPIA-Dienste noch mal komplett gelöscht, damit alte Outputs entfernt werden) das UTF-8 Format:

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77149073-1991a900-6a91-11ea-88a5-46f3e9d11872.png)

Ja, meine FHEM-Instanz hat ein evtl. etwas ungewöhnliches Setup, da habe ich aber jede Stelle in der Infrastruktur überprüft, durch die manuellen Calls auf den Endpunkt via Chrome und auch via Postman habe ich allerdings Umlaute und alle JSON-Steuerzeichen korrekt wiedergegeben bekommen, bezweifle somit dass es am Webserver liegt.
Die FHEM-Instanz liegt bei mir in einem Docker-Container, mittels eines nginx-reverse-proxy aus einem anderen Container wird hierdurch die Domäne "home.vx" angelegt - die Container laufen auf einer virtuellen Debian Maschine auf einem ESXi Host. Aber wie gesagt, da manuelle Calls ein valides JSON liefern, bezweifle ich, dass die Infrastruktur schuld ist.

Mein FHEM ist dafür schon sehr alt und gewachsen, weiß nicht ob das Volumen aus dem jsonlist2-Call etwas ausmacht. Das resultierende JSON auf der log.out ist 15773 Zeilen lang mit einer totalResultsReturned von 370.
Aber auch hier wieder - im manuellen Call kommt ein valides JSON raus.

Das JSON lässt sich in der DevTools-Konsole des Browsers nicht parsen - das aus manuellen Calls schon:

  1. Manuell gecalled
    Screenshot

image

  1. Aus log.out
    Screenshot

image

Die komplette log.out würde ich ungern teilen, es fällt mir schwer, den Überblick zu behalten, was da alles privates drin steckt. Da ich aber recht fit mit JSON bin, würde ich den Großteil (valide Array-Objekte) aus dem Array entfernen und ein paar valide und invalide Kandidaten in ein manipuliertes Output-Array für das Issue hier einstellen:

Teile des JSON-Ergebnisses (Suche nach Frühlingsblüten bzw 'hlingsbl' und im ersten Objekt das Property TYPE) - VS Code visualisiert den Fehler schön ![image](https://user-images.githubusercontent.com/27498403/77149236-6d03f700-6a91-11ea-849a-e0cb7e839e1c.png) ```json { "Arg":"", "Results": [ { "Name":"Bad_FensterSensor", "PossibleSets":"assignHmKey:noArg clear:readings,trigger,register,oldRegs,rssi,msgEvents,msgErrors,attack,all deviceRename fwUpdate getConfig:noArg getDevInfo:noArg getRegRaw peerBulk peerChan raw regBulk regSet reset:noArg sign:on,off unpair:noArg peerSmart:Bad.Heizung_WindowRec,Bad.Heizung_remote,Kueche.Heizung_WindowRec,Kueche.Heizung_remote,SZ.HeizWand_WindowRec,SZ.HeizWand_remote,WZ.Heizung_WindowRec,WZ.Heizung_remote,virtueller_BadLichtAktor_Btn1,virtueller_BadLichtAktor_Btn2,virtueller_SZLichtAktor_Btn1,virtueller_SZLichtAktor_Btn2,virtueller_WZLichtAktor_Btn1,virtueller_WZLichtAktor_Btn2", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 do_not_notify:1,0 showtime:1,0 rawToReadable unit expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything param readOnly:0,1 actAutoTry:0_off,1_on aesCommReq:1,0 model ignore:1,0 dummy:1,0 IODev IOList IOgrp rssiLog:1,0 actCycle hmKey hmKey2 hmKey3 readingOnDead:multiple,noChange,state,periodValues,periodString,channels subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 .mId serialNr firmware .stc .devInfo actStatus autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto msgRepeat hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger aesKey:5,4,3,2,1,0 repPeers peerIDs tempListTmpl levelRange levelMap cyclicMsgOffset event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_1OG_Floorplan genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttName mqttReadings mqttRoom sepia-data sepia-mem-state sepia-name sepia-room sepia-room-index sepia-set-cmds sepia-state-type sepia-type snipsMapping:textField-long snipsName snipsRoom sortby webCmd webCmdLabel:textField-long widgetOverride userattr", "Internals": { "CFGFN": "./00cfg/05_Floors/02_1OG/01_Bad/Heizung.cfg", "DEF": "5D25B0", "FUUID": "5c5b1cc8-f33f-72f7-6f0b-f16249ad3a5fd1f7", "LASTInputDev": "hmusb", "MSGCNT": "18", "NAME": "Bad_FensterSensor", "NOTIFYDEV": "global", "NR": "387", "NTFY_ORDER": "50-Bad_FensterSensor", "STATE": "closed", "TYPE": 1", "hmusb_MSGCNT": "18", "hmusb_RAWMSG": "E5D25B0,0000,982B66C5,FF,FFC0,5A86105D25B000000006010000", "hmusb_RSSI": "-64", "hmusb_TIME": "2020-03-20 09:24:59", "lastMsg": "No:5A - t:10 s:5D25B0 d:000000 06010000", "protCmdPend": "2 CMDs pending", "protLastRcv": "2020-03-20 09:24:59", "protRcv": "18 last_at:2020-03-20 09:24:59", "protResnd": "1 last_at:2020-03-19 20:13:53", "protSnd": "1 last_at:2020-03-19 20:13:48", "protState": "CMDs_pending", "rssi_at_hmusb": "cnt:18 min:-69 max:-62 avg:-64.77 lst:-64 " }, "Readings": { "Activity": { "Value":"alive", "Time":"2020-03-19 19:12:48" }, "CommandAccepted": { "Value":"no", "Time":"2020-02-11 16:42:39" }, "D-firmware": { "Value":"1.0", "Time":"2019-08-22 08:02:18" }, "D-serialNr": { "Value":"OEQ0925940", "Time":"2019-08-22 08:02:18" }, "RegL_00.": { "Value":"", "Time":"null" }, "alive": { "Value":"yes", "Time":"2020-03-20 09:24:59" }, "battery": { "Value":"ok", "Time":"2020-03-20 09:24:59" }, "contact": { "Value":"closed (to broadcast)", "Time":"2020-03-20 09:24:59" }, "recentStateType": { "Value":"info", "Time":"2020-03-20 09:24:59" }, "sabotageError": { "Value":"off", "Time":"2020-03-20 09:24:59" }, "state": { "Value":"closed", "Time":"2020-03-20 09:24:59" }, "trigDst_broadcast": { "Value":"noConfig", "Time":"2020-03-20 09:01:24" }, "trigger_cnt": { "Value":"132", "Time":"2020-03-20 09:01:24" } }, "Attributes": { "DbLogExclude": ".*", "DbLogInclude": "contact", "IODev": "hmusb", "actCycle": "002:50", "actStatus": "alive", "autoReadReg": "4_reqStatus", "devStateIcon": "open:fts_window_1w_open@orange tilted:fts_window_1w_tilt@red closed:fts_window_1w@lightblue", "expert": "2_raw", "firmware": "1.0", "group": "Kontaktsensor", "model": "HM-SEC-SCO", "room": "Bad,Snips", "serialNr": "OEQ0925940", "snipsMapping": "GetOnOff:currentVal=state,valueOff=closed\nStatus:response=Das Fenster ist [Bad_FensterSensor:state], letzte Aktion am {ReadingsTimestamp(\"Bad_FensterSensor\",\"trigger_cnt\",0)}", "snipsName": "Badfenster,Fenster,Fenstersensor", "snipsRoom": "Bad", "stateFormat": "{\nmy @openClosedState = split(/ /, ReadingsVal($name, \"contact\", 0));\nsprintf(\"%s\", $openClosedState[0]);\n}", "subType": "threeStateSensor" } }, { "Name":"Bad_LichtSchalter", "PossibleSets":"assignHmKey:noArg clear:readings,all clear:readings,rssi,msgErrors,msgErrors,unknownDev deviceRename fwUpdate getDevInfo:noArg raw reset:noArg unpair:noArg update:noArg virtual:slider,1,1,50 ", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 do_not_notify:1,0 showtime:1,0 rawToReadable unit expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything param readOnly:0,1 actAutoTry:0_off,1_on aesCommReq:1,0 model ignore:1,0 dummy:1,0 IODev IOList IOgrp rssiLog:1,0 actCycle hmKey hmKey2 hmKey3 readingOnDead:multiple,noChange,state,periodValues,periodString,channels subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 .mId serialNr firmware .stc .devInfo actStatus autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto msgRepeat hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger aesKey:5,4,3,2,1,0 repPeers peerIDs tempListTmpl levelRange levelMap cyclicMsgOffset event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_1OG_Floorplan genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttName mqttReadings mqttRoom sepia-data sepia-mem-state sepia-name sepia-room sepia-room-index sepia-set-cmds sepia-state-type sepia-type snipsMapping:textField-long snipsName snipsRoom sortby webCmd webCmdLabel:textField-long widgetOverride userattr", "Internals": { "CFGFN": "./00cfg/05_Floors/02_1OG/01_Bad/Lichtschalter.cfg", "DEF": "588711", "FUUID": "5c5b1cc8-f33f-72f7-6eed-277d8103d15c7131", "LASTInputDev": "hmusb", "MSGCNT": "17", "NAME": "Bad_LichtSchalter", "NOTIFYDEV": "global", "NR": "348", "NTFY_ORDER": "50-Bad_LichtSchalter", "STATE": "CMDs_done", "TYPE": "CUL_HM", "channel_01": "Bad_LichtSchalter_Btn_01", "channel_02": "Bad_LichtSchalter_Btn_02", "hmusb_MSGCNT": "17", "hmusb_RAWMSG": "E588711,0000,97B2DE6D,FF,FFC0,9FA4405887111457450290", "hmusb_RSSI": "-64", "hmusb_TIME": "2020-03-20 07:13:20", "lastMsg": "No:9F - t:40 s:588711 d:145745 0290", "protLastRcv": "2020-03-20 07:13:20", "protRcv": "10 last_at:2020-03-20 07:13:20", "rssi_at_hmusb": "cnt:17 min:-78 max:-58 avg:-63.58 lst:-64 " }, "Readings": { "D-firmware": { "Value":"1.4", "Time":"2020-01-12 02:08:52" }, "RegL_00.": { "Value":"", "Time":"2020-03-01 18:06:31" }, "state": { "Value":"CMDs_done", "Time":"2020-03-10 23:33:29" }, "trigger": { "Value":"Short_72", "Time":"2020-01-13 00:23:22" }, "triggerTo_virtueller_BadLichtAktor": { "Value":"Short_72", "Time":"2020-01-13 00:23:22" }, "trigger_cnt": { "Value":"72", "Time":"2020-01-13 00:23:22" } }, "Attributes": { "DbLogExclude": ".*", "IODev": "hmusb", "expert": "2_raw", "group": "Lichtschalter", "model": "ACTIONDETECTOR", "room": "System->Server", "subType": "virtual", "webCmd": "getConfig:clear msgEvents" } }, { "Name":"Bad_LichtSchalter_Btn_01", "PossibleSets":"clear:readings,all peerChan postEvent press pressS:virtueller_BadLichtAktor_Btn1 pressL:virtueller_BadLichtAktor_Btn1 update:noArg ", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 do_not_notify:1,0 showtime:1,0 rawToReadable unit expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything param readOnly:0,1 actAutoTry:0_off,1_on aesCommReq:1,0 model ignore:1,0 dummy:1,0 IODev IOList IOgrp rssiLog:1,0 actCycle hmKey hmKey2 hmKey3 readingOnDead:multiple,noChange,state,periodValues,periodString,channels subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 .mId serialNr firmware .stc .devInfo actStatus autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto msgRepeat hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger aesKey:5,4,3,2,1,0 repPeers peerIDs tempListTmpl levelRange levelMap cyclicMsgOffset event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_1OG_Floorplan genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttName mqttReadings mqttRoom sepia-data sepia-mem-state sepia-name sepia-room sepia-room-index sepia-set-cmds sepia-state-type sepia-type snipsMapping:textField-long snipsName snipsRoom sortby webCmd webCmdLabel:textField-long widgetOverride userattr", "Internals": { "CFGFN": "./00cfg/05_Floors/02_1OG/01_Bad/Lichtschalter.cfg", "DEF": "58871101", "FUUID": "5c5b1cc8-f33f-72f7-669b-a935f2b7bfe12ab1", "NAME": "Bad_LichtSchalter_Btn_01", "NOTIFYDEV": "global", "NR": "351", "NTFY_ORDER": "50-Bad_LichtSchalter_Btn_01", "STATE": "Short 1_215 (to virtueller_BadLichtAktor)", "TYPE": "CUL_HM", "chanNo": "01", "device": "Bad_LichtSchalter", "peerList": "virtueller_BadLichtAktor_Btn1," }, "Readings": { "peerList": { "Value":"virtueller_BadLichtAktor_Btn1,", "Time":"2020-03-19 19:12:48" }, "state": { "Value":"Short 1_215 (to virtueller_BadLichtAktor)", "Time":"2020-03-02 18:36:43" }, "trigger": { "Value":"Short_215", "Time":"2020-03-02 18:36:43" }, "triggerTo_virtueller_BadLichtAktor": { "Value":"Short_215", "Time":"2020-03-02 18:36:43" }, "trigger_cnt": { "Value":"215", "Time":"2020-03-02 18:36:43" } }, "Attributes": { "DbLogExclude": ".*", "group": "Lichtschalter", "model": "ACTIONDETECTOR", "peerIDs": "00000000,14574501,", "room": "System->Server", "webCmd": "press short:press long" } }, { "Name":"Bad_LichtSchalter_Btn_02", "PossibleSets":"clear:readings,all peerChan postEvent press pressS:virtueller_BadLichtAktor_Btn2 pressL:virtueller_BadLichtAktor_Btn2 update:noArg ", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 do_not_notify:1,0 showtime:1,0 rawToReadable unit expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything param readOnly:0,1 actAutoTry:0_off,1_on aesCommReq:1,0 model ignore:1,0 dummy:1,0 IODev IOList IOgrp rssiLog:1,0 actCycle hmKey hmKey2 hmKey3 readingOnDead:multiple,noChange,state,periodValues,periodString,channels subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 .mId serialNr firmware .stc .devInfo actStatus autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto msgRepeat hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger aesKey:5,4,3,2,1,0 repPeers peerIDs tempListTmpl levelRange levelMap cyclicMsgOffset event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_1OG_Floorplan genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttName mqttReadings mqttRoom sepia-data sepia-mem-state sepia-name sepia-room sepia-room-index sepia-set-cmds sepia-state-type sepia-type snipsMapping:textField-long snipsName snipsRoom sortby webCmd webCmdLabel:textField-long widgetOverride userattr", "Internals": { "CFGFN": "./00cfg/05_Floors/02_1OG/01_Bad/Lichtschalter.cfg", "DEF": "58871102", "FUUID": "5e1193f6-f33f-d107-7395-6fccdf11df2297d3", "NAME": "Bad_LichtSchalter_Btn_02", "NOTIFYDEV": "global", "NR": "353", "NTFY_ORDER": "50-Bad_LichtSchalter_Btn_02", "STATE": "Short 1_144 (to virtueller_BadLichtAktor)", "TYPE": "CUL_HM", "chanNo": "02", "device": "Bad_LichtSchalter", "peerList": "virtueller_BadLichtAktor_Btn2," }, "Readings": { "peerList": { "Value":"virtueller_BadLichtAktor_Btn2,", "Time":"2020-03-19 19:12:48" }, "state": { "Value":"Short 1_144 (to virtueller_BadLichtAktor)", "Time":"2020-03-20 07:13:20" }, "trigger": { "Value":"Short_144", "Time":"2020-03-20 07:13:20" }, "triggerTo_virtueller_BadLichtAktor": { "Value":"Short_144", "Time":"2020-03-20 07:13:20" }, "trigger_cnt": { "Value":"144", "Time":"2020-03-20 07:13:20" } }, "Attributes": { "DbLogExclude": ".*", "group": "Lichtschalter", "model": "ACTIONDETECTOR", "peerIDs": "00000000,14574502,", "room": "System->Server", "webCmd": "press short:press long" } }, { "Name":"BadLicht", "PossibleSets":"off:noArg on:noArg toggle:noArg statusRequest:noArg pct:colorpicker,BRI,0,1,100 bri:colorpicker,BRI,0,1,254 rgb:colorpicker,RGB color:colorpicker,CT,2000,1,6500 ct:colorpicker,CT,154,1,500 hue:colorpicker,HUE,0,1,65535 sat:slider,0,1,254 xy dimUp:noArg dimDown:noArg ctUp:noArg ctDown:noArg hueUp:noArg hueDown:noArg satUp:noArg satDown:noArg alert:none,select,lselect effect:none,colorloop rename scene:Energie#tanken#[id=BR21MBxaFkwyk45],Energie#tanken#[id=K3dh9bBQ8GblPWn],Energie#tanken#[id=kCbRuZUQFaqZzam],Entspannen#[id=Gtrxt5nGRRxF2ps],Entspannen#[id=xLxoqgYv8HnbNLc],Entspannen#[id=yXa8GyWECas5fqn],Frühlingsblüten#[id=4lBG6voSQLvaXyk],Frühlingsblüten#[id=4qcFWbN3xSq66Oz],Frühlingsblüten#[id=81BWWoSOhBk3vEu],Gedimmt#[id=WkO6cogiqF-CHpy],Gedimmt#[id=pp58zmQGnAAEevZ],Gedimmt#[id=zt8ojSxQ-1GLedl],Hell#[id=4vq21G3QkfHh5Uc],Hell#[id=E38r9TtwRjaOi54],Hell#[id=bVtzeG9d3HTRQvT],Konzentrieren#[id=1KGo6rOKS2QNNSz],Konzentrieren#[id=mWPxLwm0lnQqaMx],Konzentrieren#[id=tkhNz7gytlRLMxu],Lesen#[id=gDOjLP7orNyR9wX],Lesen#[id=gmeK78Twk6bviTo],Lesen#[id=zZJP8VQ2I3h2AQu],Nachtlicht#[id=-p1f6XNiVZYlpTg],Nachtlicht#[id=0-5CjqcqzjZKYcz],Nachtlicht#[id=azndTSiGe2l3Io6],Nordlichter#[id=8zSjw10xmpFidaO],Nordlichter#[id=E6Pmn1EViIHPLLB],Nordlichter#[id=XbiC4QVgy9qRSR-],Sonnenuntergang#Savanne#[id=LWEGQztSTB2Zeio],Sonnenuntergang#Savanne#[id=Mb7nJV-sq9j2YQc],Sonnenuntergang#Savanne#[id=PImHcEVt4m6cFyS],Tropendämmerung#[id=5we5bn9DBteAEh-],Tropendämmerung#[id=bnfUxCfYNr4ljnT],Tropendämmerung#[id=wxvwGOFo8m6Nrrp],Wake#Up#init#[id=EKwCSikEEhhExfk],Wake#Up#init#[id=UDRA44GsUcAasUy],Wake#Up#init#[id=UaVjNi-pctb8jp5] off-till intervals on-till on-for-timer off-till-overnight on-till-overnight off-for-timer blink attrTemplate:?,C_01_Eurotronic_SPZB0001_Spirit_ZigBee,D_01_Xiaomi_Aqara_MCCGQ11LM_Window_Door_Sensor,E_01a_Xiaomi_Aqara_WSDCGQ11LM_Temperature_Sensor,E_01b_Xiaomi_Aqara_WSDCGQ11LM_Pressure_Sensor,E_01c_Xiaomi_Aqara_WSDCGQ11LM_Humidity_Sensor,F_01a_Xiaomi_Aqara_RTCGQ11LM_Lightlevel_Sensor,F_01a_Xiaomi_Aqara_RTCGQ11LM_Motion_Sensor,G_01_Xiaomi_Aqara_WXKG02LM_Double_Switch", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev delayedUpdate:1 ignoreReachable:1,0 realtimePicker:1,0 color-icons:1,2 transitiontime model:CLA60#RGBW#OSRAM,Classic#A60,Classic#A60#RGBW,Classic#A60#TW,Classic#B40#TW,DM01,FLS-H3,FLS-PP3,Flex#RGBW,Gardenspot#RGB,LCT001,LCT002,LCT003,LCT007,LCT010,LCT011,LCT012,LCT014,LCT024,LLC001,LLC005,LLC006,LLC007,LLC010,LLC011,LLC012,LLC013,LLC014,LLC020,LLM001,LLM010,LLM011,LLM012,LOM001,LOM002,LST001,LST002,LTW001,LTW004,LTW012,LTW013,LTW014,LWB001,LWB003,LWB004,LWB006,LWB007,LWB010,LWB014,LWL001,PAR16#50#TW,Plug#-#LIGHTIFY,Plug#01,RM01,RWL020,RWL021,Surface#Light#TW,ZGPSWITCH setList:textField-long configList:textField-long subType:extcolordimmer,colordimmer,ctdimmer,dimmer,switch,blind event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_1OG_Floorplan genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttName mqttReadings mqttRoom sepia-data sepia-mem-state sepia-name sepia-room sepia-room-index sepia-set-cmds sepia-state-type sepia-type snipsMapping:textField-long snipsName snipsRoom sortby webCmd webCmdLabel:textField-long widgetOverride snipsColors:textField-long userattr", "Internals": { "CFGFN": "./00cfg/05_Floors/02_1OG/01_Bad/Licht.cfg", "CHANGED": "null", "DEF": "3 IODev=HUE_Bridge", "FUUID": "5c5b1cc8-f33f-72f7-bd93-a6d85a0c64f689c5", "FVERSION": "31_HUEDevice.pm:0.211360/2020-02-07", "ID": "3", "INTERVAL": "null", "NAME": "BadLicht", "NR": "341", "STATE": "off", "TYPE": "HUEDevice", "desired": "0", "manufacturername": "Signify Netherlands B.V.", "modelid": "LCT010", "name": "Badlicht", "productid": "Philips-LCT010-1-A19ECLv4", "swconfigid": "292E579A", "swversion": "1.50.2_r30933", "type": "Extended color light", "uniqueid": "00:17:88:01:02:47:eb:6b-0b" }, "Readings": { "alert": { "Value":"none", "Time":"2020-03-19 19:12:50" }, "bri": { "Value":"254", "Time":"2020-03-20 07:12:46" }, "colormode": { "Value":"xy", "Time":"2020-03-20 07:12:46" }, "ct": { "Value":"230 (4347K)", "Time":"2020-03-20 07:13:21" }, "effect": { "Value":"none", "Time":"2020-03-19 19:12:50" }, "hue": { "Value":"39489", "Time":"2020-03-20 07:13:21" }, "onoff": { "Value":"0", "Time":"2020-03-20 07:13:21" }, "pct": { "Value":"0", "Time":"2020-03-20 07:13:21" }, "reachable": { "Value":"1", "Time":"2020-03-19 19:12:50" }, "rgb": { "Value":"fff4ad", "Time":"2020-03-20 07:12:46" }, "sat": { "Value":"13", "Time":"2020-03-20 07:13:21" }, "state": { "Value":"off", "Time":"2020-03-20 07:13:21" }, "xy": { "Value":"0.3691,0.3718", "Time":"2020-03-20 07:13:21" } }, "Attributes": { "DbLogExclude": ".*", "IODev": "HUE_Bridge", "alias": "BadLicht", "color-icons": "2", "devStateIcon": "{(HUEDevice_devStateIcon($name),\"toggle\")}", "group": "Licht", "icon": "hue_filled_white_and_color_e27_b22", "model": "LCT010", "room": "Snips,Bad", "snipsColors": "rot=rgb FF0000\norange=rgb FF9A36\ngelb=rgb FAFF5E\npink=rgb E55EBD\nviolett=rgb E47DF0\ngrün=rgb 00FF00\nhellgrün=rgb 97FF87\ntürkis=rgb A0FEFE\npetrol=rgb 80F6FA\nblau=rgb 0000FF\nhellblau=rgb 4169E1\nweiß=ct 3000\nwarmweiß=ct 2700", "snipsMapping": "SetOnOff:cmdOn=on,cmdOff=off\nGetOnOff:currentVal=state,valueOff=off\nSetNumeric:currentVal=bri,cmd=bri,step=25,type=Helligkeit\nGetNumeric:currentVal=bri,type=Helligkeit", "snipsName": "Badlicht,Deckenlicht,Licht,Lampe", "snipsRoom": "Bad", "subType": "extcolordimmer", "userattr": "snipsColors:textField-long", "webCmd": "rgb:rgb ff0000:rgb DEFF26:rgb 0000ff:ct 490:ct 380:ct 270:ct 160:toggle:on:off" } }], "totalResultsReturned":370 } ```

Noch kurz zur Frage mit dem StackTrace:
Da gibt es leider keinen - muss ich irgendwo ein verbose-Flag setzen, um das LogLevel zu erhöhen?
Hier der Beginn und das Ende des Loggings auf dem getDevices-Event:

Screenshots Begin/Ende Log #### Beginn ![image](https://user-images.githubusercontent.com/27498403/77149516-0d5a1b80-6a92-11ea-8579-e3930021f78e.png) #### Ende ![image](https://user-images.githubusercontent.com/27498403/77149523-0fbc7580-6a92-11ea-8767-bd177e8c83eb.png)

Danke Dir soweit! 🚀

sepia-assistant commented 4 years ago

Ja, meine FHEM-Instanz hat ein evtl. etwas ungewöhnliches Setup, da habe ich aber jede Stelle in der Infrastruktur überprüft, durch die manuellen Calls auf den Endpunkt via Chrome und auch via Postman habe ich allerdings Umlaute und alle JSON-Steuerzeichen korrekt wiedergegeben bekommen, bezweifle somit dass es am Webserver liegt.

Ich glaube eigentlich auch nicht, dass die Kodierung irgendwo auf dem Weg kaputt geht, aus den Gründen die du ja schon genannt hast und weil eh alles Linux ist :thinking:

Die komplette log.out würde ich ungern teilen, es fällt mir schwer, den Überblick zu behalten, was da alles privates drin steckt.

Verstehe ich.

Teile des JSON-Ergebnisses (Suche nach Frühlingsblüten bzw 'hlingsbl' und im ersten Objekt das Property TYPE) - VS Code visualisiert den Fehler schön

Das ist wirklich ziemlich verwirrend, wie kann denn ein Anführungszeichen verschwinden :confused: :stuck_out_tongue_closed_eyes: Wie sieht diese Stelle im korrekten JSON aus? "TYPE": 1" ? Gibt es noch mehr Stellen die man genau ausmachen kann? Z.B. wenn du diese Stelle entfernst und dann guckst wo der nächste Fehler auftritt?

Da gibt es leider keinen - muss ich irgendwo ein verbose-Flag setzen, um das LogLevel zu erhöhen?

Wenn nichts angezeigt wird gibt es wohl leider keine zusätzlichen Infos, schade aber zu erwarten ^^.

Kannst du bei Gelegenheit vielleicht auch mal testen, ob der FHEM Demo der neusten FHEM Version bei dir ohne Probleme läuft?

xyzaxyz commented 4 years ago

Ich glaube eigentlich auch nicht, dass die Kodierung irgendwo auf dem Weg kaputt geht, aus den Gründen die du ja schon genannt hast und weil eh alles Linux ist 🤔

Sollte sie nicht 😄 da kam mir das mit dem Chunk-weisen lesen/schreiben ins Auge, bin damit nicht so erfahren, aber es gibt ja Leute die SEPIA bereits erfolgreich an FHEM anbinden konnten, insofern sollte das Problem eigentlich nicht wirklich in der Methode liegen.

Das ist wirklich ziemlich verwirrend, wie kann denn ein Anführungszeichen verschwinden 😕 😝

Da steh ich auch auf dem Schlauch ^^ irgendwas läuft sich doch da über die eigenen Füße...

Wie sieht diese Stelle im korrekten JSON aus? "TYPE": 1" ?

Du wirst lachen, ich bin auch sehr verwirrt: Da wird eine ganze Zeile geschluckt, der Wert "1" gehört zu dem nächsten Property chanNo, dessen Name gar nicht im invaliden JSON erscheint (und dort ist der Wert 01):

image

Wenn nichts angezeigt wird gibt es wohl leider keine zusätzlichen Infos, schade aber zu erwarten ^^.

Hmm, jo, schade :| Aber wie der log sagt, der Fehler tritt beim Parsen auf - weil das JSON invalide ist :/

Kannst du bei Gelegenheit vielleicht auch mal testen, ob der FHEM Demo der neusten FHEM Version bei dir ohne Probleme läuft?

Gern! Kannst du mir eine kleine Richtungsweisung geben? Ich nutze FHEM in Docker, https://hub.docker.com/r/fhem/fhem/tags - Demo gibt es als solches nicht zur Auswahl.

Ich habe tatsächlich schon länger nicht das neueste Image gezogen sondern nur innerhalb FHEM die Updates gefahren. Da die Dockerfile ellenlang ist mit lauter Dependencies die ich fürs Home brauche, dauert der Build entsprechend lang - da ich das bisher manuell mache, hab ich perfekt prokrastiniert ^^ aber es ist ja Freitag 🤣

xyzaxyz commented 4 years ago

Eine der nachfolgenden invaliden Stellen ist zB bei meinem FHEM Device CALVIEW, das Kalenderdaten parst:

Screenshots ##### Valide ![image](https://user-images.githubusercontent.com/27498403/77164653-0bec1b80-6ab1-11ea-888e-a564a1b236aa.png) ##### Invalide ![image](https://user-images.githubusercontent.com/27498403/77164700-1f978200-6ab1-11ea-9a60-d87da64a7322.png)

{ "Value":"0", " fehlt also komplett, in dem Schnipsel

xyzaxyz commented 4 years ago

Ich habe meine FHEM-Instanz mal auf dem neuesten Image von fhem/fhem-amd64_linux aufgezogen, das Fehlerbild ist leider ähnlich wie zuvor: Es werden Bestandteile des JSONs 'vergessen':

Screenshots ##### JSON aus SEPIA log ![image](https://user-images.githubusercontent.com/27498403/77166351-663aab80-6ab4-11ea-8056-11962ec1b52f.png) ##### JSON aus manuellem Aufruf, selbe Stelle ![image](https://user-images.githubusercontent.com/27498403/77166646-e6f9a780-6ab4-11ea-8852-11e2491dd931.png)
sepia-assistant commented 4 years ago

Gern! Kannst du mir eine kleine Richtungsweisung geben? Ich nutze FHEM in Docker, https://hub.docker.com/r/fhem/fhem/tags - Demo gibt es als solches nicht zur Auswahl.

Ich nutze zum Testen immer die Version von hier: https://fhem.de/#Download Da gibt es eine demo config, die man mit perl fhem.pl fhem.cfg.demo starten kann. Könnte mir vorstellen, dass es die auch im Docker Container gibt :thinking:

Du wirst lachen, ich bin auch sehr verwirrt: Da wird eine ganze Zeile geschluckt, der Wert "1" gehört zu dem nächsten Property chanNo, dessen Name gar nicht im invaliden JSON erscheint (und dort ist der Wert 01)

Interessant :sweat_smile: :see_no_evil: Diese Fehler sind so unsystematisch, dass ich glaube es kommt nicht von Problemen mit der Kodierung sondern von irgendwelchen "unsichtbaren" Bytes in dem Objekt (Steuerungsbytes, Line-Break, Tab, etc.). Warum der Postman- und VSCode-Parser damit klar kommen, der in JAVA aber nicht bleibt dabei erstmal ungeklärt, so wie die Frage warum die überhaupt da drin sein sollten. Letzteres kann aber durchaus schon mal vorkommen wenn die Daten per Input Feld eingegeben wurden oder irgendwie komisch importiert.

Um diese Theorie zu bestätigen oder zu widerlegen hilft uns leider der Output des Loggers nicht, denn der hat die Bytes ja offensichtlich schon verschluckt. Könntest du eventuell ein betroffenes Element getrennt über die FHEM API abrufen und via wget oder curl direkt in eine Datei schreiben lassen?

Ich experimentiere mal etwas mit dem Parser so lange.

xyzaxyz commented 4 years ago

Huiui, also mit curl komme ich zu einem ähnlichen Ergebnis.

curl -k -X GET -H 'Authorization: Basic BLUB64==' "https://home.vx/fhem?cmd=jsonlist2%20Bad_FensterSensor&XHR=1" >> 1.json
curl -k -X GET -H 'Authorization: Basic BLUB64==' "https://home.vx/fhem?cmd=jsonlist2&XHR=1" >> 2.json

Sind allerdings immer ähnliche Stellen/Devices an denen es kracht, nicht allzu willkürlich.

JSON Screenshot von curl-request ![image](https://user-images.githubusercontent.com/27498403/77171948-7c009e80-6abd-11ea-947c-e59fc4b10b4d.png) ![image](https://user-images.githubusercontent.com/27498403/77171982-891d8d80-6abd-11ea-8201-d58b3df4afde.png) Wenn man auf die Scrollbar achtet, treten die Fehler zumeist nur im oberen Teil des ganzen Arrays auf: ![image](https://user-images.githubusercontent.com/27498403/77172068-ac483d00-6abd-11ea-962d-33568136b7a2.png)

Besagter Fenstersensor, den ich alleine abgefragt und in 1.json geloggt habe, hat allerdings keine Fehler 🤒

JSON Screenshot von curl-request: Nur ein Device abgefragt ![image](https://user-images.githubusercontent.com/27498403/77172318-0c3ee380-6abe-11ea-95e5-a9ba980c5198.png)
sepia-assistant commented 4 years ago

Huch, habe ich das jetzt richtig verstanden, das selbe Item macht in der Gesamtliste Probleme aber in der einzelnen Abfrage nicht? :astonished:

xyzaxyz commented 4 years ago

Exakt... Super strange bisher 😣 Ich analysiere jetzt doch noch mal die Infrastruktur. Bekomme gzip am Webserver leider grad nicht deaktiviert, da ich das ein bisschen verdächtige - das komprimiert ja, sobald ein Response lohnenswert groß ist - wundert mich aber auch in dem Fall, dass manche Clients dann erfolgreich die Ressource abrufen können.

Leider taucht mein curl-Request nicht im Fiddler auf, sonst könnte man schöner vergleichen... Evtl fehlt ja auch ein gewisser Request-Header wie "Accept" oder ähnliches, allerdings würde dann ja auch der Postman-Call krachen...

Screenshot Fiddler: REQ/RES Headers ![image](https://user-images.githubusercontent.com/27498403/77174830-f92e1280-6ac1-11ea-9b96-f283099131a0.png)
xyzaxyz commented 4 years ago

Und das andere abartige Gerät, das CALVIEW, in dem der Müllabfuhrplan drin steht, das auch jedes mal in der Gesamtübersicht kracht, geht als einzelner curl-body auch super klar - private Daten geschwärzt:

curl -k -X GET -H 'Authorization: Basic B64==' "https://home.vx/fhem?cmd=jsonlist2%20CalViewKalenderNuernbergAbfall&XHR=1" > 4.json

CalView Device JSON ```json { "Arg":"CalViewKalenderNuernbergAbfall", "Results": [ { "Name":"CalViewKalenderNuernbergAbfall", "PossibleSets":"update", "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 datestyle:ISO8601 disable:0,1 do_not_notify:1,0 filterSummary:textField-long fulldaytext isbirthday:1,0 maxreadings modes:next oldStyledReadings:1,0 sourcecolor:textField-long timeshort:1,0 yobfield:_location,_description,_summary weekdayformat:de-long,de-short,en-long,en-short event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_1OG_Floorplan genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttName mqttReadings mqttRoom sepia-data sepia-mem-state sepia-name sepia-room sepia-room-index sepia-set-cmds sepia-state-type sepia-type snipsMapping:textField-long snipsName snipsRoom sortby webCmd webCmdLabel:textField-long widgetOverride userattr", "Internals": { "CFGFN": "./00cfg/actions/Calendar.cfg", "DEF": "KalenderNuernbergAbfall next", "FUUID": "5e1b1a52-f33f-d107-df9c-6995f8ae049faf67", "INTERVAL": "43200", "KALENDER": "KalenderNuernbergAbfall", "NAME": "CalViewKalenderNuernbergAbfall", "NR": "1035", "NTFY_ORDER": "50-CalViewKalenderNuernbergAbfall", "STATE": "t: 70 td: 0 tm: 0", "TYPE": "CALVIEW" }, "Readings": { "c-term": { "Value":"70", "Time":"2020-03-20 15:35:45" }, "c-today": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "c-tomorrow": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "state": { "Value":"t: 70 td: 0 tm: 0", "Time":"2020-03-20 15:35:45" }, "t_001_bdate": { "Value":"25.03.2020", "Time":"2020-03-20 15:35:45" }, "t_001_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_001_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_001_daysleft": { "Value":"5", "Time":"2020-03-20 15:35:45" }, "t_001_daysleftLong": { "Value":"in 5 Tagen", "Time":"2020-03-20 15:35:45" }, "t_001_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_001_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_001_edate": { "Value":"25.03.2020", "Time":"2020-03-20 15:35:45" }, "t_001_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_001_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_001_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_001_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_001_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_001_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_001_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_001_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_001_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_002_bdate": { "Value":"30.03.2020", "Time":"2020-03-20 15:35:45" }, "t_002_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_002_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_002_daysleft": { "Value":"10", "Time":"2020-03-20 15:35:45" }, "t_002_daysleftLong": { "Value":"in 10 Tagen", "Time":"2020-03-20 15:35:45" }, "t_002_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_002_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_002_edate": { "Value":"30.03.2020", "Time":"2020-03-20 15:35:45" }, "t_002_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_002_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_002_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_002_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_002_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_002_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_002_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_002_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_002_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_003_bdate": { "Value":"01.04.2020", "Time":"2020-03-20 15:35:45" }, "t_003_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_003_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_003_daysleft": { "Value":"12", "Time":"2020-03-20 15:35:45" }, "t_003_daysleftLong": { "Value":"in 12 Tagen", "Time":"2020-03-20 15:35:45" }, "t_003_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_003_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_003_edate": { "Value":"01.04.2020", "Time":"2020-03-20 15:35:45" }, "t_003_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_003_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_003_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_003_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_003_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_003_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_003_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_003_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_003_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_004_bdate": { "Value":"06.04.2020", "Time":"2020-03-20 15:35:45" }, "t_004_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_004_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_004_daysleft": { "Value":"17", "Time":"2020-03-20 15:35:45" }, "t_004_daysleftLong": { "Value":"in 17 Tagen", "Time":"2020-03-20 15:35:45" }, "t_004_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_004_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_004_edate": { "Value":"06.04.2020", "Time":"2020-03-20 15:35:45" }, "t_004_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_004_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_004_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_004_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_004_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_004_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_004_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_004_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_004_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_005_bdate": { "Value":"08.04.2020", "Time":"2020-03-20 15:35:45" }, "t_005_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_005_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_005_daysleft": { "Value":"19", "Time":"2020-03-20 15:35:45" }, "t_005_daysleftLong": { "Value":"in 19 Tagen", "Time":"2020-03-20 15:35:45" }, "t_005_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_005_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_005_edate": { "Value":"08.04.2020", "Time":"2020-03-20 15:35:45" }, "t_005_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_005_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_005_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_005_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_005_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_005_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_005_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_005_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_005_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_006_bdate": { "Value":"14.04.2020", "Time":"2020-03-20 15:35:45" }, "t_006_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_006_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_006_daysleft": { "Value":"25", "Time":"2020-03-20 15:35:45" }, "t_006_daysleftLong": { "Value":"in 25 Tagen", "Time":"2020-03-20 15:35:45" }, "t_006_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_006_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_006_edate": { "Value":"14.04.2020", "Time":"2020-03-20 15:35:45" }, "t_006_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_006_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_006_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_006_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_006_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_006_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_006_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_006_weekday": { "Value":"2", "Time":"2020-03-20 15:35:45" }, "t_006_weekdayname": { "Value":"Dienstag", "Time":"2020-03-20 15:35:45" }, "t_007_bdate": { "Value":"17.04.2020", "Time":"2020-03-20 15:35:45" }, "t_007_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_007_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_007_daysleft": { "Value":"28", "Time":"2020-03-20 15:35:45" }, "t_007_daysleftLong": { "Value":"in 28 Tagen", "Time":"2020-03-20 15:35:45" }, "t_007_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_007_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_007_edate": { "Value":"17.04.2020", "Time":"2020-03-20 15:35:45" }, "t_007_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_007_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_007_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_007_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_007_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_007_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_007_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_007_weekday": { "Value":"5", "Time":"2020-03-20 15:35:45" }, "t_007_weekdayname": { "Value":"Freitag", "Time":"2020-03-20 15:35:45" }, "t_008_bdate": { "Value":"23.04.2020", "Time":"2020-03-20 15:35:45" }, "t_008_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_008_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_008_daysleft": { "Value":"34", "Time":"2020-03-20 15:35:45" }, "t_008_daysleftLong": { "Value":"in 34 Tagen", "Time":"2020-03-20 15:35:45" }, "t_008_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_008_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_008_edate": { "Value":"23.04.2020", "Time":"2020-03-20 15:35:45" }, "t_008_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_008_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_008_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_008_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_008_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_008_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_008_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_008_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_008_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_009_bdate": { "Value":"27.04.2020", "Time":"2020-03-20 15:35:45" }, "t_009_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_009_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_009_daysleft": { "Value":"38", "Time":"2020-03-20 15:35:45" }, "t_009_daysleftLong": { "Value":"in 38 Tagen", "Time":"2020-03-20 15:35:45" }, "t_009_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_009_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_009_edate": { "Value":"27.04.2020", "Time":"2020-03-20 15:35:45" }, "t_009_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_009_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_009_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_009_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_009_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_009_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_009_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_009_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_009_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_010_bdate": { "Value":"29.04.2020", "Time":"2020-03-20 15:35:45" }, "t_010_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_010_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_010_daysleft": { "Value":"40", "Time":"2020-03-20 15:35:45" }, "t_010_daysleftLong": { "Value":"in 40 Tagen", "Time":"2020-03-20 15:35:45" }, "t_010_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_010_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_010_edate": { "Value":"29.04.2020", "Time":"2020-03-20 15:35:45" }, "t_010_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_010_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_010_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_010_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_010_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_010_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_010_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_010_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_010_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_011_bdate": { "Value":"06.05.2020", "Time":"2020-03-20 15:35:45" }, "t_011_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_011_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_011_daysleft": { "Value":"47", "Time":"2020-03-20 15:35:45" }, "t_011_daysleftLong": { "Value":"in 47 Tagen", "Time":"2020-03-20 15:35:45" }, "t_011_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_011_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_011_edate": { "Value":"06.05.2020", "Time":"2020-03-20 15:35:45" }, "t_011_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_011_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_011_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_011_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_011_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_011_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_011_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_011_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_011_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_012_bdate": { "Value":"07.05.2020", "Time":"2020-03-20 15:35:45" }, "t_012_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_012_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_012_daysleft": { "Value":"48", "Time":"2020-03-20 15:35:45" }, "t_012_daysleftLong": { "Value":"in 48 Tagen", "Time":"2020-03-20 15:35:45" }, "t_012_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_012_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_012_edate": { "Value":"07.05.2020", "Time":"2020-03-20 15:35:45" }, "t_012_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_012_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_012_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_012_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_012_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_012_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_012_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_012_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_012_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_013_bdate": { "Value":"11.05.2020", "Time":"2020-03-20 15:35:45" }, "t_013_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_013_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_013_daysleft": { "Value":"52", "Time":"2020-03-20 15:35:45" }, "t_013_daysleftLong": { "Value":"in 52 Tagen", "Time":"2020-03-20 15:35:45" }, "t_013_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_013_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_013_edate": { "Value":"11.05.2020", "Time":"2020-03-20 15:35:45" }, "t_013_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_013_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_013_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_013_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_013_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_013_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_013_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_013_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_013_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_014_bdate": { "Value":"13.05.2020", "Time":"2020-03-20 15:35:45" }, "t_014_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_014_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_014_daysleft": { "Value":"54", "Time":"2020-03-20 15:35:45" }, "t_014_daysleftLong": { "Value":"in 54 Tagen", "Time":"2020-03-20 15:35:45" }, "t_014_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_014_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_014_edate": { "Value":"13.05.2020", "Time":"2020-03-20 15:35:45" }, "t_014_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_014_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_014_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_014_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_014_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_014_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_014_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_014_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_014_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_015_bdate": { "Value":"20.05.2020", "Time":"2020-03-20 15:35:45" }, "t_015_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_015_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_015_daysleft": { "Value":"61", "Time":"2020-03-20 15:35:45" }, "t_015_daysleftLong": { "Value":"in 61 Tagen", "Time":"2020-03-20 15:35:45" }, "t_015_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_015_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_015_edate": { "Value":"20.05.2020", "Time":"2020-03-20 15:35:45" }, "t_015_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_015_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_015_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_015_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_015_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_015_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_015_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_015_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_015_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_016_bdate": { "Value":"25.05.2020", "Time":"2020-03-20 15:35:45" }, "t_016_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_016_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_016_daysleft": { "Value":"66", "Time":"2020-03-20 15:35:45" }, "t_016_daysleftLong": { "Value":"in 66 Tagen", "Time":"2020-03-20 15:35:45" }, "t_016_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_016_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_016_edate": { "Value":"25.05.2020", "Time":"2020-03-20 15:35:45" }, "t_016_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_016_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_016_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_016_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_016_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_016_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_016_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_016_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_016_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_017_bdate": { "Value":"27.05.2020", "Time":"2020-03-20 15:35:45" }, "t_017_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_017_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_017_daysleft": { "Value":"68", "Time":"2020-03-20 15:35:45" }, "t_017_daysleftLong": { "Value":"in 68 Tagen", "Time":"2020-03-20 15:35:45" }, "t_017_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_017_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_017_edate": { "Value":"27.05.2020", "Time":"2020-03-20 15:35:45" }, "t_017_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_017_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_017_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_017_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_017_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_017_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_017_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_017_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_017_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_018_bdate": { "Value":"04.06.2020", "Time":"2020-03-20 15:35:45" }, "t_018_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_018_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_018_daysleft": { "Value":"76", "Time":"2020-03-20 15:35:45" }, "t_018_daysleftLong": { "Value":"in 76 Tagen", "Time":"2020-03-20 15:35:45" }, "t_018_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_018_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_018_edate": { "Value":"04.06.2020", "Time":"2020-03-20 15:35:45" }, "t_018_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_018_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_018_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_018_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_018_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_018_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_018_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_018_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_018_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_019_bdate": { "Value":"08.06.2020", "Time":"2020-03-20 15:35:45" }, "t_019_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_019_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_019_daysleft": { "Value":"80", "Time":"2020-03-20 15:35:45" }, "t_019_daysleftLong": { "Value":"in 80 Tagen", "Time":"2020-03-20 15:35:45" }, "t_019_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_019_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_019_edate": { "Value":"08.06.2020", "Time":"2020-03-20 15:35:45" }, "t_019_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_019_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_019_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_019_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_019_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_019_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_019_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_019_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_019_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_020_bdate": { "Value":"10.06.2020", "Time":"2020-03-20 15:35:45" }, "t_020_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_020_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_020_daysleft": { "Value":"82", "Time":"2020-03-20 15:35:45" }, "t_020_daysleftLong": { "Value":"in 82 Tagen", "Time":"2020-03-20 15:35:45" }, "t_020_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_020_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_020_edate": { "Value":"10.06.2020", "Time":"2020-03-20 15:35:45" }, "t_020_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_020_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_020_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_020_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_020_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_020_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_020_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_020_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_020_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_021_bdate": { "Value":"10.06.2020", "Time":"2020-03-20 15:35:45" }, "t_021_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_021_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_021_daysleft": { "Value":"82", "Time":"2020-03-20 15:35:45" }, "t_021_daysleftLong": { "Value":"in 82 Tagen", "Time":"2020-03-20 15:35:45" }, "t_021_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_021_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_021_edate": { "Value":"10.06.2020", "Time":"2020-03-20 15:35:45" }, "t_021_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_021_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_021_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_021_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_021_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_021_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_021_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_021_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_021_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_022_bdate": { "Value":"17.06.2020", "Time":"2020-03-20 15:35:45" }, "t_022_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_022_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_022_daysleft": { "Value":"89", "Time":"2020-03-20 15:35:45" }, "t_022_daysleftLong": { "Value":"in 89 Tagen", "Time":"2020-03-20 15:35:45" }, "t_022_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_022_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_022_edate": { "Value":"17.06.2020", "Time":"2020-03-20 15:35:45" }, "t_022_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_022_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_022_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_022_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_022_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_022_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_022_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_022_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_022_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_023_bdate": { "Value":"22.06.2020", "Time":"2020-03-20 15:35:45" }, "t_023_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_023_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_023_daysleft": { "Value":"94", "Time":"2020-03-20 15:35:45" }, "t_023_daysleftLong": { "Value":"in 94 Tagen", "Time":"2020-03-20 15:35:45" }, "t_023_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_023_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_023_edate": { "Value":"22.06.2020", "Time":"2020-03-20 15:35:45" }, "t_023_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_023_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_023_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_023_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_023_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_023_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_023_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_023_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_023_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_024_bdate": { "Value":"24.06.2020", "Time":"2020-03-20 15:35:45" }, "t_024_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_024_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_024_daysleft": { "Value":"96", "Time":"2020-03-20 15:35:45" }, "t_024_daysleftLong": { "Value":"in 96 Tagen", "Time":"2020-03-20 15:35:45" }, "t_024_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_024_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_024_edate": { "Value":"24.06.2020", "Time":"2020-03-20 15:35:45" }, "t_024_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_024_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_024_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_024_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_024_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_024_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_024_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_024_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_024_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_025_bdate": { "Value":"01.07.2020", "Time":"2020-03-20 15:35:45" }, "t_025_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_025_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_025_daysleft": { "Value":"103", "Time":"2020-03-20 15:35:45" }, "t_025_daysleftLong": { "Value":"in 103 Tagen", "Time":"2020-03-20 15:35:45" }, "t_025_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_025_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_025_edate": { "Value":"01.07.2020", "Time":"2020-03-20 15:35:45" }, "t_025_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_025_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_025_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_025_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_025_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_025_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_025_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_025_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_025_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_026_bdate": { "Value":"06.07.2020", "Time":"2020-03-20 15:35:45" }, "t_026_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_026_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_026_daysleft": { "Value":"108", "Time":"2020-03-20 15:35:45" }, "t_026_daysleftLong": { "Value":"in 108 Tagen", "Time":"2020-03-20 15:35:45" }, "t_026_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_026_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_026_edate": { "Value":"06.07.2020", "Time":"2020-03-20 15:35:45" }, "t_026_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_026_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_026_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_026_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_026_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_026_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_026_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_026_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_026_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_027_bdate": { "Value":"08.07.2020", "Time":"2020-03-20 15:35:45" }, "t_027_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_027_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_027_daysleft": { "Value":"110", "Time":"2020-03-20 15:35:45" }, "t_027_daysleftLong": { "Value":"in 110 Tagen", "Time":"2020-03-20 15:35:45" }, "t_027_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_027_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_027_edate": { "Value":"08.07.2020", "Time":"2020-03-20 15:35:45" }, "t_027_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_027_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_027_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_027_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_027_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_027_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_027_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_027_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_027_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_028_bdate": { "Value":"09.07.2020", "Time":"2020-03-20 15:35:45" }, "t_028_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_028_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_028_daysleft": { "Value":"111", "Time":"2020-03-20 15:35:45" }, "t_028_daysleftLong": { "Value":"in 111 Tagen", "Time":"2020-03-20 15:35:45" }, "t_028_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_028_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_028_edate": { "Value":"09.07.2020", "Time":"2020-03-20 15:35:45" }, "t_028_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_028_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_028_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_028_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_028_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_028_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_028_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_028_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_028_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_029_bdate": { "Value":"15.07.2020", "Time":"2020-03-20 15:35:45" }, "t_029_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_029_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_029_daysleft": { "Value":"117", "Time":"2020-03-20 15:35:45" }, "t_029_daysleftLong": { "Value":"in 117 Tagen", "Time":"2020-03-20 15:35:45" }, "t_029_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_029_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_029_edate": { "Value":"15.07.2020", "Time":"2020-03-20 15:35:45" }, "t_029_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_029_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_029_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_029_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_029_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_029_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_029_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_029_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_029_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_030_bdate": { "Value":"20.07.2020", "Time":"2020-03-20 15:35:45" }, "t_030_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_030_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_030_daysleft": { "Value":"122", "Time":"2020-03-20 15:35:45" }, "t_030_daysleftLong": { "Value":"in 122 Tagen", "Time":"2020-03-20 15:35:45" }, "t_030_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_030_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_030_edate": { "Value":"20.07.2020", "Time":"2020-03-20 15:35:45" }, "t_030_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_030_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_030_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_030_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_030_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_030_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_030_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_030_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_030_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_031_bdate": { "Value":"22.07.2020", "Time":"2020-03-20 15:35:45" }, "t_031_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_031_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_031_daysleft": { "Value":"124", "Time":"2020-03-20 15:35:45" }, "t_031_daysleftLong": { "Value":"in 124 Tagen", "Time":"2020-03-20 15:35:45" }, "t_031_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_031_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_031_edate": { "Value":"22.07.2020", "Time":"2020-03-20 15:35:45" }, "t_031_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_031_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_031_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_031_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_031_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_031_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_031_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_031_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_031_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_032_bdate": { "Value":"29.07.2020", "Time":"2020-03-20 15:35:45" }, "t_032_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_032_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_032_daysleft": { "Value":"131", "Time":"2020-03-20 15:35:45" }, "t_032_daysleftLong": { "Value":"in 131 Tagen", "Time":"2020-03-20 15:35:45" }, "t_032_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_032_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_032_edate": { "Value":"29.07.2020", "Time":"2020-03-20 15:35:45" }, "t_032_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_032_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_032_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_032_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_032_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_032_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_032_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_032_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_032_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_033_bdate": { "Value":"03.08.2020", "Time":"2020-03-20 15:35:45" }, "t_033_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_033_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_033_daysleft": { "Value":"136", "Time":"2020-03-20 15:35:45" }, "t_033_daysleftLong": { "Value":"in 136 Tagen", "Time":"2020-03-20 15:35:45" }, "t_033_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_033_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_033_edate": { "Value":"03.08.2020", "Time":"2020-03-20 15:35:45" }, "t_033_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_033_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_033_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_033_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_033_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_033_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_033_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_033_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_033_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_034_bdate": { "Value":"05.08.2020", "Time":"2020-03-20 15:35:45" }, "t_034_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_034_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_034_daysleft": { "Value":"138", "Time":"2020-03-20 15:35:45" }, "t_034_daysleftLong": { "Value":"in 138 Tagen", "Time":"2020-03-20 15:35:45" }, "t_034_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_034_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_034_edate": { "Value":"05.08.2020", "Time":"2020-03-20 15:35:45" }, "t_034_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_034_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_034_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_034_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_034_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_034_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_034_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_034_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_034_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_035_bdate": { "Value":"06.08.2020", "Time":"2020-03-20 15:35:45" }, "t_035_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_035_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_035_daysleft": { "Value":"139", "Time":"2020-03-20 15:35:45" }, "t_035_daysleftLong": { "Value":"in 139 Tagen", "Time":"2020-03-20 15:35:45" }, "t_035_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_035_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_035_edate": { "Value":"06.08.2020", "Time":"2020-03-20 15:35:45" }, "t_035_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_035_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_035_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_035_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_035_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_035_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_035_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_035_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_035_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_036_bdate": { "Value":"12.08.2020", "Time":"2020-03-20 15:35:45" }, "t_036_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_036_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_036_daysleft": { "Value":"145", "Time":"2020-03-20 15:35:45" }, "t_036_daysleftLong": { "Value":"in 145 Tagen", "Time":"2020-03-20 15:35:45" }, "t_036_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_036_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_036_edate": { "Value":"12.08.2020", "Time":"2020-03-20 15:35:45" }, "t_036_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_036_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_036_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_036_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_036_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_036_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_036_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_036_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_036_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_037_bdate": { "Value":"17.08.2020", "Time":"2020-03-20 15:35:45" }, "t_037_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_037_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_037_daysleft": { "Value":"150", "Time":"2020-03-20 15:35:45" }, "t_037_daysleftLong": { "Value":"in 150 Tagen", "Time":"2020-03-20 15:35:45" }, "t_037_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_037_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_037_edate": { "Value":"17.08.2020", "Time":"2020-03-20 15:35:45" }, "t_037_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_037_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_037_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_037_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_037_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_037_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_037_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_037_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_037_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_038_bdate": { "Value":"19.08.2020", "Time":"2020-03-20 15:35:45" }, "t_038_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_038_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_038_daysleft": { "Value":"152", "Time":"2020-03-20 15:35:45" }, "t_038_daysleftLong": { "Value":"in 152 Tagen", "Time":"2020-03-20 15:35:45" }, "t_038_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_038_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_038_edate": { "Value":"19.08.2020", "Time":"2020-03-20 15:35:45" }, "t_038_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_038_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_038_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_038_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_038_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_038_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_038_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_038_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_038_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_039_bdate": { "Value":"26.08.2020", "Time":"2020-03-20 15:35:45" }, "t_039_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_039_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_039_daysleft": { "Value":"159", "Time":"2020-03-20 15:35:45" }, "t_039_daysleftLong": { "Value":"in 159 Tagen", "Time":"2020-03-20 15:35:45" }, "t_039_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_039_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_039_edate": { "Value":"26.08.2020", "Time":"2020-03-20 15:35:45" }, "t_039_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_039_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_039_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_039_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_039_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_039_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_039_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_039_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_039_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_040_bdate": { "Value":"31.08.2020", "Time":"2020-03-20 15:35:45" }, "t_040_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_040_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_040_daysleft": { "Value":"164", "Time":"2020-03-20 15:35:45" }, "t_040_daysleftLong": { "Value":"in 164 Tagen", "Time":"2020-03-20 15:35:45" }, "t_040_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_040_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_040_edate": { "Value":"31.08.2020", "Time":"2020-03-20 15:35:45" }, "t_040_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_040_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_040_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_040_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_040_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_040_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_040_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_040_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_040_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_041_bdate": { "Value":"02.09.2020", "Time":"2020-03-20 15:35:45" }, "t_041_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_041_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_041_daysleft": { "Value":"166", "Time":"2020-03-20 15:35:45" }, "t_041_daysleftLong": { "Value":"in 166 Tagen", "Time":"2020-03-20 15:35:45" }, "t_041_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_041_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_041_edate": { "Value":"02.09.2020", "Time":"2020-03-20 15:35:45" }, "t_041_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_041_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_041_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_041_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_041_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_041_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_041_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_041_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_041_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_042_bdate": { "Value":"03.09.2020", "Time":"2020-03-20 15:35:45" }, "t_042_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_042_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_042_daysleft": { "Value":"167", "Time":"2020-03-20 15:35:45" }, "t_042_daysleftLong": { "Value":"in 167 Tagen", "Time":"2020-03-20 15:35:45" }, "t_042_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_042_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_042_edate": { "Value":"03.09.2020", "Time":"2020-03-20 15:35:45" }, "t_042_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_042_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_042_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_042_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_042_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_042_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_042_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_042_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_042_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_043_bdate": { "Value":"09.09.2020", "Time":"2020-03-20 15:35:45" }, "t_043_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_043_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_043_daysleft": { "Value":"173", "Time":"2020-03-20 15:35:45" }, "t_043_daysleftLong": { "Value":"in 173 Tagen", "Time":"2020-03-20 15:35:45" }, "t_043_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_043_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_043_edate": { "Value":"09.09.2020", "Time":"2020-03-20 15:35:45" }, "t_043_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_043_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_043_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_043_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_043_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_043_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_043_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_043_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_043_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_044_bdate": { "Value":"14.09.2020", "Time":"2020-03-20 15:35:45" }, "t_044_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_044_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_044_daysleft": { "Value":"178", "Time":"2020-03-20 15:35:45" }, "t_044_daysleftLong": { "Value":"in 178 Tagen", "Time":"2020-03-20 15:35:45" }, "t_044_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_044_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_044_edate": { "Value":"14.09.2020", "Time":"2020-03-20 15:35:45" }, "t_044_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_044_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_044_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_044_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_044_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_044_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_044_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_044_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_044_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_045_bdate": { "Value":"16.09.2020", "Time":"2020-03-20 15:35:45" }, "t_045_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_045_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_045_daysleft": { "Value":"180", "Time":"2020-03-20 15:35:45" }, "t_045_daysleftLong": { "Value":"in 180 Tagen", "Time":"2020-03-20 15:35:45" }, "t_045_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_045_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_045_edate": { "Value":"16.09.2020", "Time":"2020-03-20 15:35:45" }, "t_045_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_045_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_045_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_045_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_045_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_045_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_045_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_045_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_045_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_046_bdate": { "Value":"23.09.2020", "Time":"2020-03-20 15:35:45" }, "t_046_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_046_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_046_daysleft": { "Value":"187", "Time":"2020-03-20 15:35:45" }, "t_046_daysleftLong": { "Value":"in 187 Tagen", "Time":"2020-03-20 15:35:45" }, "t_046_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_046_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_046_edate": { "Value":"23.09.2020", "Time":"2020-03-20 15:35:45" }, "t_046_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_046_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_046_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_046_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_046_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_046_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_046_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_046_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_046_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_047_bdate": { "Value":"28.09.2020", "Time":"2020-03-20 15:35:45" }, "t_047_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_047_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_047_daysleft": { "Value":"192", "Time":"2020-03-20 15:35:45" }, "t_047_daysleftLong": { "Value":"in 192 Tagen", "Time":"2020-03-20 15:35:45" }, "t_047_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_047_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_047_edate": { "Value":"28.09.2020", "Time":"2020-03-20 15:35:45" }, "t_047_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_047_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_047_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_047_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_047_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_047_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_047_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_047_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_047_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_048_bdate": { "Value":"30.09.2020", "Time":"2020-03-20 15:35:45" }, "t_048_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_048_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_048_daysleft": { "Value":"194", "Time":"2020-03-20 15:35:45" }, "t_048_daysleftLong": { "Value":"in 194 Tagen", "Time":"2020-03-20 15:35:45" }, "t_048_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_048_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_048_edate": { "Value":"30.09.2020", "Time":"2020-03-20 15:35:45" }, "t_048_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_048_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_048_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_048_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_048_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_048_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_048_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_048_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_048_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_049_bdate": { "Value":"01.10.2020", "Time":"2020-03-20 15:35:45" }, "t_049_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_049_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_049_daysleft": { "Value":"195", "Time":"2020-03-20 15:35:45" }, "t_049_daysleftLong": { "Value":"in 195 Tagen", "Time":"2020-03-20 15:35:45" }, "t_049_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_049_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_049_edate": { "Value":"01.10.2020", "Time":"2020-03-20 15:35:45" }, "t_049_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_049_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_049_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_049_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_049_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_049_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_049_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_049_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_049_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_050_bdate": { "Value":"07.10.2020", "Time":"2020-03-20 15:35:45" }, "t_050_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_050_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_050_daysleft": { "Value":"201", "Time":"2020-03-20 15:35:45" }, "t_050_daysleftLong": { "Value":"in 201 Tagen", "Time":"2020-03-20 15:35:45" }, "t_050_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_050_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_050_edate": { "Value":"07.10.2020", "Time":"2020-03-20 15:35:45" }, "t_050_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_050_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_050_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_050_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_050_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_050_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_050_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_050_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_050_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_051_bdate": { "Value":"12.10.2020", "Time":"2020-03-20 15:35:45" }, "t_051_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_051_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_051_daysleft": { "Value":"206", "Time":"2020-03-20 15:35:45" }, "t_051_daysleftLong": { "Value":"in 206 Tagen", "Time":"2020-03-20 15:35:45" }, "t_051_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_051_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_051_edate": { "Value":"12.10.2020", "Time":"2020-03-20 15:35:45" }, "t_051_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_051_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_051_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_051_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_051_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_051_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_051_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_051_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_051_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_052_bdate": { "Value":"14.10.2020", "Time":"2020-03-20 15:35:45" }, "t_052_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_052_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_052_daysleft": { "Value":"208", "Time":"2020-03-20 15:35:45" }, "t_052_daysleftLong": { "Value":"in 208 Tagen", "Time":"2020-03-20 15:35:45" }, "t_052_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_052_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_052_edate": { "Value":"14.10.2020", "Time":"2020-03-20 15:35:45" }, "t_052_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_052_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_052_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_052_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_052_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_052_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_052_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_052_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_052_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_053_bdate": { "Value":"21.10.2020", "Time":"2020-03-20 15:35:45" }, "t_053_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_053_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_053_daysleft": { "Value":"215", "Time":"2020-03-20 15:35:45" }, "t_053_daysleftLong": { "Value":"in 215 Tagen", "Time":"2020-03-20 15:35:45" }, "t_053_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_053_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_053_edate": { "Value":"21.10.2020", "Time":"2020-03-20 15:35:45" }, "t_053_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_053_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_053_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_053_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_053_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_053_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_053_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_053_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_053_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_054_bdate": { "Value":"26.10.2020", "Time":"2020-03-20 15:35:45" }, "t_054_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_054_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_054_daysleft": { "Value":"220", "Time":"2020-03-20 15:35:45" }, "t_054_daysleftLong": { "Value":"in 220 Tagen", "Time":"2020-03-20 15:35:45" }, "t_054_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_054_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_054_edate": { "Value":"26.10.2020", "Time":"2020-03-20 15:35:45" }, "t_054_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_054_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_054_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_054_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_054_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_054_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_054_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_054_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_054_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_055_bdate": { "Value":"28.10.2020", "Time":"2020-03-20 15:35:45" }, "t_055_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_055_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_055_daysleft": { "Value":"222", "Time":"2020-03-20 15:35:45" }, "t_055_daysleftLong": { "Value":"in 222 Tagen", "Time":"2020-03-20 15:35:45" }, "t_055_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_055_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_055_edate": { "Value":"28.10.2020", "Time":"2020-03-20 15:35:45" }, "t_055_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_055_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_055_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_055_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_055_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_055_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_055_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_055_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_055_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_056_bdate": { "Value":"29.10.2020", "Time":"2020-03-20 15:35:45" }, "t_056_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_056_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_056_daysleft": { "Value":"223", "Time":"2020-03-20 15:35:45" }, "t_056_daysleftLong": { "Value":"in 223 Tagen", "Time":"2020-03-20 15:35:45" }, "t_056_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_056_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_056_edate": { "Value":"29.10.2020", "Time":"2020-03-20 15:35:45" }, "t_056_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_056_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_056_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_056_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_056_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_056_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_056_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_056_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_056_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_057_bdate": { "Value":"04.11.2020", "Time":"2020-03-20 15:35:45" }, "t_057_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_057_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_057_daysleft": { "Value":"229", "Time":"2020-03-20 15:35:45" }, "t_057_daysleftLong": { "Value":"in 229 Tagen", "Time":"2020-03-20 15:35:45" }, "t_057_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_057_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_057_edate": { "Value":"04.11.2020", "Time":"2020-03-20 15:35:45" }, "t_057_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_057_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_057_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_057_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_057_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_057_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_057_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_057_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_057_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_058_bdate": { "Value":"09.11.2020", "Time":"2020-03-20 15:35:45" }, "t_058_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_058_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_058_daysleft": { "Value":"234", "Time":"2020-03-20 15:35:45" }, "t_058_daysleftLong": { "Value":"in 234 Tagen", "Time":"2020-03-20 15:35:45" }, "t_058_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_058_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_058_edate": { "Value":"09.11.2020", "Time":"2020-03-20 15:35:45" }, "t_058_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_058_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_058_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_058_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_058_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_058_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_058_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_058_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_058_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_059_bdate": { "Value":"11.11.2020", "Time":"2020-03-20 15:35:45" }, "t_059_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_059_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_059_daysleft": { "Value":"236", "Time":"2020-03-20 15:35:45" }, "t_059_daysleftLong": { "Value":"in 236 Tagen", "Time":"2020-03-20 15:35:45" }, "t_059_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_059_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_059_edate": { "Value":"11.11.2020", "Time":"2020-03-20 15:35:45" }, "t_059_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_059_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_059_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_059_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_059_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_059_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_059_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_059_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_059_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_060_bdate": { "Value":"18.11.2020", "Time":"2020-03-20 15:35:45" }, "t_060_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_060_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_060_daysleft": { "Value":"243", "Time":"2020-03-20 15:35:45" }, "t_060_daysleftLong": { "Value":"in 243 Tagen", "Time":"2020-03-20 15:35:45" }, "t_060_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_060_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_060_edate": { "Value":"18.11.2020", "Time":"2020-03-20 15:35:45" }, "t_060_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_060_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_060_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_060_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_060_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_060_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_060_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_060_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_060_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_061_bdate": { "Value":"23.11.2020", "Time":"2020-03-20 15:35:45" }, "t_061_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_061_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_061_daysleft": { "Value":"248", "Time":"2020-03-20 15:35:45" }, "t_061_daysleftLong": { "Value":"in 248 Tagen", "Time":"2020-03-20 15:35:45" }, "t_061_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_061_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_061_edate": { "Value":"23.11.2020", "Time":"2020-03-20 15:35:45" }, "t_061_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_061_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_061_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_061_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_061_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_061_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_061_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_061_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_061_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_062_bdate": { "Value":"25.11.2020", "Time":"2020-03-20 15:35:45" }, "t_062_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_062_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_062_daysleft": { "Value":"250", "Time":"2020-03-20 15:35:45" }, "t_062_daysleftLong": { "Value":"in 250 Tagen", "Time":"2020-03-20 15:35:45" }, "t_062_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_062_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_062_edate": { "Value":"25.11.2020", "Time":"2020-03-20 15:35:45" }, "t_062_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_062_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_062_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_062_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_062_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_062_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_062_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_062_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_062_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_063_bdate": { "Value":"26.11.2020", "Time":"2020-03-20 15:35:45" }, "t_063_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_063_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_063_daysleft": { "Value":"251", "Time":"2020-03-20 15:35:45" }, "t_063_daysleftLong": { "Value":"in 251 Tagen", "Time":"2020-03-20 15:35:45" }, "t_063_description": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_063_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_063_edate": { "Value":"26.11.2020", "Time":"2020-03-20 15:35:45" }, "t_063_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_063_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_063_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_063_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_063_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_063_summary": { "Value":"Papiertonne", "Time":"2020-03-20 15:35:45" }, "t_063_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_063_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_063_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" }, "t_064_bdate": { "Value":"02.12.2020", "Time":"2020-03-20 15:35:45" }, "t_064_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_064_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_064_daysleft": { "Value":"257", "Time":"2020-03-20 15:35:45" }, "t_064_daysleftLong": { "Value":"in 257 Tagen", "Time":"2020-03-20 15:35:45" }, "t_064_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_064_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_064_edate": { "Value":"02.12.2020", "Time":"2020-03-20 15:35:45" }, "t_064_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_064_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_064_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_064_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_064_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_064_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_064_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_064_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_064_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_065_bdate": { "Value":"07.12.2020", "Time":"2020-03-20 15:35:45" }, "t_065_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_065_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_065_daysleft": { "Value":"262", "Time":"2020-03-20 15:35:45" }, "t_065_daysleftLong": { "Value":"in 262 Tagen", "Time":"2020-03-20 15:35:45" }, "t_065_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_065_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_065_edate": { "Value":"07.12.2020", "Time":"2020-03-20 15:35:45" }, "t_065_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_065_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_065_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_065_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_065_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_065_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_065_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_065_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_065_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_066_bdate": { "Value":"09.12.2020", "Time":"2020-03-20 15:35:45" }, "t_066_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_066_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_066_daysleft": { "Value":"264", "Time":"2020-03-20 15:35:45" }, "t_066_daysleftLong": { "Value":"in 264 Tagen", "Time":"2020-03-20 15:35:45" }, "t_066_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_066_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_066_edate": { "Value":"09.12.2020", "Time":"2020-03-20 15:35:45" }, "t_066_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_066_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_066_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_066_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_066_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_066_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_066_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_066_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_066_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_067_bdate": { "Value":"16.12.2020", "Time":"2020-03-20 15:35:45" }, "t_067_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_067_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_067_daysleft": { "Value":"271", "Time":"2020-03-20 15:35:45" }, "t_067_daysleftLong": { "Value":"in 271 Tagen", "Time":"2020-03-20 15:35:45" }, "t_067_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_067_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_067_edate": { "Value":"16.12.2020", "Time":"2020-03-20 15:35:45" }, "t_067_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_067_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_067_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_067_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_067_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_067_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_067_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_067_weekday": { "Value":"3", "Time":"2020-03-20 15:35:45" }, "t_067_weekdayname": { "Value":"Mittwoch", "Time":"2020-03-20 15:35:45" }, "t_068_bdate": { "Value":"21.12.2020", "Time":"2020-03-20 15:35:45" }, "t_068_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_068_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_068_daysleft": { "Value":"276", "Time":"2020-03-20 15:35:45" }, "t_068_daysleftLong": { "Value":"in 276 Tagen", "Time":"2020-03-20 15:35:45" }, "t_068_description": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_068_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_068_edate": { "Value":"21.12.2020", "Time":"2020-03-20 15:35:45" }, "t_068_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_068_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_068_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_068_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_068_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_068_summary": { "Value":"Gelbe Tonne", "Time":"2020-03-20 15:35:45" }, "t_068_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_068_weekday": { "Value":"1", "Time":"2020-03-20 15:35:45" }, "t_068_weekdayname": { "Value":"Montag", "Time":"2020-03-20 15:35:45" }, "t_069_bdate": { "Value":"22.12.2020", "Time":"2020-03-20 15:35:45" }, "t_069_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_069_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_069_daysleft": { "Value":"277", "Time":"2020-03-20 15:35:45" }, "t_069_daysleftLong": { "Value":"in 277 Tagen", "Time":"2020-03-20 15:35:45" }, "t_069_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_069_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_069_edate": { "Value":"22.12.2020", "Time":"2020-03-20 15:35:45" }, "t_069_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_069_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_069_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_069_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_069_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_069_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_069_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_069_weekday": { "Value":"2", "Time":"2020-03-20 15:35:45" }, "t_069_weekdayname": { "Value":"Dienstag", "Time":"2020-03-20 15:35:45" }, "t_070_bdate": { "Value":"31.12.2020", "Time":"2020-03-20 15:35:45" }, "t_070_btime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_070_categories": { "Value":"", "Time":"2020-03-20 15:35:45" }, "t_070_daysleft": { "Value":"286", "Time":"2020-03-20 15:35:45" }, "t_070_daysleftLong": { "Value":"in 286 Tagen", "Time":"2020-03-20 15:35:45" }, "t_070_description": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_070_duration": { "Value":"0", "Time":"2020-03-20 15:35:45" }, "t_070_edate": { "Value":"31.12.2020", "Time":"2020-03-20 15:35:45" }, "t_070_etime": { "Value":"07:00", "Time":"2020-03-20 15:35:45" }, "t_070_location": { "Value":"MEINE_PRIVATADRESSE", "Time":"2020-03-20 15:35:45" }, "t_070_mode": { "Value":"next", "Time":"2020-03-20 15:35:45" }, "t_070_source": { "Value":"KalenderNuernbergAbfall", "Time":"2020-03-20 15:35:45" }, "t_070_sourcecolor": { "Value":"white", "Time":"2020-03-20 15:35:45" }, "t_070_summary": { "Value":"Restabfall", "Time":"2020-03-20 15:35:45" }, "t_070_timeshort": { "Value":"07:00 - 07:00", "Time":"2020-03-20 15:35:45" }, "t_070_weekday": { "Value":"4", "Time":"2020-03-20 15:35:45" }, "t_070_weekdayname": { "Value":"Donnerstag", "Time":"2020-03-20 15:35:45" } }, "Attributes": { "DbLogExclude": ".*", "event-on-update-reading": "t_001_daysleft", "modes": "next", "room": "Kalender" } } ], "totalResultsReturned":1 } ```
sepia-assistant commented 4 years ago

GZIP habe ich auch gerade auf dem Schirm :male_detective: Postman ist irgendwie immer super tolerant, ich glaube der macht intern diverse Fehlerkorrekturen.

Kannst du CURL mal mit dem gzip Header nutzen: curl -H "Accept-Encoding: gzip" ...

xyzaxyz commented 4 years ago

Öhhh...

curl -k -X GET -H "Accept-Encoding: gzip" -H 'Authorization: Basic ASD==' "https://home.vx/fhem?cmd=jsonlist2" > 5.json

image

image

sepia-assistant commented 4 years ago

uups :sweat_smile: ... das sind scheinbar die komprimierten Daten, bin mir gerade nicht sicher wie man das richtig nutzt :see_no_evil:

xyzaxyz commented 4 years ago

Sorry, ich hab &XHR=1 vergessen, aber auch dann tuts nicht.. :|

curl -k -X GET -H "Accept-Encoding: gzip" -H 'Authorization: Basic asd==' "https://home.vx/fhem?cmd=jsonlist2&XHR=1" > 7.json

verdächtig klein: image

xyzaxyz commented 4 years ago

Alles gut, solang wir beide was lernen und Spaß haben ^^

sepia-assistant commented 4 years ago

Man munkelt so müsste es automatisch GZIP anfordern und decompressen: curl --compressed http://example.com

xyzaxyz commented 4 years ago

Ooh: mit --compressed kommt ein absolut valides JSON mit Umlauten 😍

curl -k -X GET --compressed -H 'Authorization: Basic Asd==' "https://home.vx/fhem?cmd=jsonlist2&XHR=1" > 8.json

image

image

sepia-assistant commented 4 years ago

:dart: :sunglasses: ... jetzt muss ich nur noch rausfinden was ich in Java daraus mache :grin:

[EDIT] abgesehen davon scheint mir das aber doch ein genereller FHEM Bug zu sein

xyzaxyz commented 4 years ago

Hehe, ja, das dachte ich mir leider auch am Ende... Jetzt stehen wir ungefähr am Anfang, haben aber bisschen was gesehen :D Kann ich irgendwie unterstützen, gewisse Java Snippets ausführen? Meld dich jederzeit, gib mir Aufgaben ^^

[EDIT] abgesehen davon scheint mir das aber doch ein genereller FHEM Bug zu sein

Hmm, oder halt doch was mit meinem System, idk :| Bei vielen anderen gehts ja wunderbar, weiß nur nicht ob das dann so ein verschachteltes Etwas wie bei mir ist, oder direkt mit nem apache/nginx auf dem RPi läuft..

sepia-assistant commented 4 years ago

Hmm, oder halt doch was mit meinem System

Vielleicht doch weder System noch FHEM, sondern ich muss in JAVA den Response Header auslesen und irgendwie darauf reagieren :thinking:

Ich vermute bisher ist das nie aufgetreten, weil die meisten Leute nicht so viele Daten haben ^^ [EDIT] Bleibt die Frage warum er nicht konsequent die gleichen Fehler ausspuckt

xyzaxyz commented 4 years ago

Klingt plausibel - dann aber trotzdem komisch, dass es nur an den bestimmten Stellen oben im ganzen Array bricht :/

sepia-assistant commented 4 years ago

Ja irgendwie komisch. Ich muss ja dann beim Request explizit sagen, dass ich "Gzip" will sonst geht es nicht und das kann ich nicht einfach allgemein annehmen. Offensichtlich ist die Antwort ohne "GZIP" im Request Header ja nicht komprimiert sondern einfach nur kaputt :-| ... Postman rafft es aber irgendwie ...

[EDIT] Kannst du in Postman sehen ob der GZIP Header automatisch gesetzt wurde?

xyzaxyz commented 4 years ago

Postman zeigt folgende Request Header - über Fiddler gelauscht:

image

Bei Chrome sind es folgende Header:

image

xyzaxyz commented 4 years ago

Curl kann ich nun auch belauschen, da muss man mit -x 127.0.0.1:8888 den Request durch Fiddler proxyen:

Ohne --compressed - invalid wie wir es kennen image

Mit --compressed - valides JSON: image

sepia-assistant commented 4 years ago

Ok das erklärt scheinbar warum der Fehler im Browser und in Postman nicht auftritt :+1: Ich verstehe zwar immer noch nicht warum das Ergebnis ohne expliziten GZIP Request Header kaputt ist aber eventuell ergibt sich wenigstens ein Weg den Fehler zu unterdrücken ^^.

Kannst du mal CURL machen mit dem Header -H "Accept-Encoding: identity" in der Hoffnung dass GZIP dann deaktiviert ist und vielleicht auch der Fehler ^^

xyzaxyz commented 4 years ago

Mit der gunzip Pipe erhalte ich durch manuelles setzen des Accept-Encoding auch wieder valides JSON. curl -k -X GET -H 'Accept-Encoding: gzip' -H 'Authorization: Basic ...==' "https://home.vx/fhem?cmd=jsonlist2&XHR=1" | gunzip - > 16.json

Source

xyzaxyz commented 4 years ago

Leider wieder das Ergebnis, wie ohne Header: curl -k -X GET -H 'Accept-Encoding: identity' -H 'Authorization: Basic ...==' "https://home.vx/fhem?cmd=jsonlist2&XHR=1" > 17.json image

Allerdings sendet der Server keinen gzip Header mehr und der Content-Type ist anders: Vorher image

Nachher image

sepia-assistant commented 4 years ago

Ah vielleicht muss man noch explizit content-type "application/json" anfordern?

xyzaxyz commented 4 years ago

curl -x 127.0.0.1:8888 -k -X GET -H "Accept-Encoding: identity" -H 'Accept: application/json' -H 'Authorization: Basic ==' "https://home.vx/fhem?cmd=jsonlist2&XHR=1" > 19.json

Leider nicht :/

JSON kommt, aber kein valides 😢

image

image

sepia-assistant commented 4 years ago

Schade, wäre ja auch zu schön gewesen ^^. Ich guck mal ob ich das Problem reproduzieren kann bei mir mit FHEM und nem Proxy der GZIP unterstützt. Falls nicht teste ich mal was passiert wenn ich generell GZIP als accepted encoding einbaue in die Java Klasse. Ist vielleicht eh ganz nützlich :grin:

[EDIT] Bleibt die Frage an welcher Stelle jetzt eigentlich das JSON kaputt geht.

xyzaxyz commented 4 years ago

Man muss probieren ^^ Cool, ich danke Dir schon jetzt vielmals! Wie gesagt, wenn ich lokal was nachstellen kann - melde dich, ich kann gern Java Snippets ausführen und bisschen mit debuggen und testen 😸 Sicher nicht verkehrt, wenns drin ist :D

xyzaxyz commented 4 years ago

Hab mal bisschen an der httpGet aus https://github.com/SEPIA-Framework/sepia-core-tools-java/blob/557cc037514a14ce262990486d619bd37d05f65f/src/main/java/net/b07z/sepia/server/core/tools/Connectors.java#L322-L380 rumgeschnipselt, bei mir kommt der content schon verkehrt wie zuvor, also muss es beim Call irgendwo auftreten:

Screenshot ![image](https://user-images.githubusercontent.com/27498403/77185635-06eb9400-6ad2-11ea-86b4-11e9ee9ec5d5.png)
xyzaxyz commented 4 years ago

Ich hab eine vermeintlich nicht weiter invasive, absolut funktionierende Möglichkeit gefunden 😍

Ich habe es nicht gegen einen nicht-gzip Server getestet - was ich gesehen habe war aber wie in unserem Verlauf der curl-Requests: Der Server schickt den Header Content-Encoding nur mit, wenn man ihn mittels Request-Header Accept-Encoding: gzip anfordert - andernfalls erhalte ich das immer wieder gesehene invalide JSON.

Es wäre zu prüfen, um bestehende Funktionen nicht einzuschränken/Bugs zu produzieren, ob beim Call gegen einen nicht-gzip Server der Header eben nicht kommt und in dem unten gezeigten Code dann dementsprechend der Weg ohne GZIPInputStream eingeschlagen wird.

Code-Änderungen (am Screenshot auch markiert: ```java con.setRequestProperty("Accept-Encoding", "gzip"); // ... Reader reader = null; if ("gzip".equals(con.getContentEncoding())) { reader = new InputStreamReader(new GZIPInputStream(con.getInputStream())); } else { reader = new InputStreamReader(con.getInputStream()); } String content = CharStreams.toString(reader); ``` ![image](https://user-images.githubusercontent.com/27498403/77188847-ec67e980-6ad6-11ea-803b-7b511673343f.png) EDIT: Code wurde von hier abgeschaut: https://www.rgagnon.com/javadetails/java-HttpUrlConnection-with-GZIP-encoding.html
sepia-assistant commented 4 years ago

Ich teste gerade eine ähnliche Anpassung :grin: , der request header würde allerdings vorläufig in der Fhem.java Klasse landen, da ich nicht weiß wie viel Auswirkungen es hat auf alle anderen Klassen die den selben Call nutzen ^^

String content = getStreamContentAsString(con, con.getInputStream());
JSONObject result = build(content, success_str);
return result;

Und weiter unten die neuen Funktionen:

private static boolean isGzipResponse(HttpURLConnection con){
    String encodingHeader = con.getHeaderField("Content-Encoding");
    return (encodingHeader != null && encodingHeader.toLowerCase().contains("gzip"));
}

private static String getStreamContentAsString(HttpURLConnection con, InputStream is) throws IOException{
    if (isGzipResponse(con)){
        InputStreamReader isr = new InputStreamReader(new GZIPInputStream(is), Charsets.UTF_8);
        return CharStreams.toString(isr);
    }else{
        InputStreamReader isr = new InputStreamReader(is, Charsets.UTF_8);
        return CharStreams.toString(isr);
    }
}

[EDIT] Ich versuche gleich eine komplette Test-Version zu bauen. Allerdings basiert die dann auf dem Dev Branch ... da könntest du gleich noch mehr neue Funktionen für FHEM testen ^^

[EDIT 2] Es wäre auf jeden Fall spannend zu sehen, wie die sich verhalten bei deiner großen Menge an Items :-)

xyzaxyz commented 4 years ago

Ach, der Austausch hier mit Dir ist besser als Weihnachten 🏆😄 Wie geil!

Auf jeden Fall sinnvoll, das so vorsichtig wie möglich einzubinden, ich sehe, du weißt auf jeden Fall gut, wo du hinzugreifen hast :)

Scheint so als wäre das fast schon am Weg auf den dev-Branch ^-^ Gern teste ich gleich neue Features! :) Ich muss mir allerdings auch allgemein erst mal noch einen Überblick verschaffen - ich guck mir das System immer erst an, binde vllt ein Licht an und nach und nach zieht es sich auf, da werden dann im Laufe auch viel die docs gecrawled :3 Aber sehr gern test ich die mit! 😄

Musst mich dann instruieren, wenn es soweit ist, wie ich den Codestand vom dev-Branch auf meinem RPi4-Setup ausführbar mache (Kein Docker, da hast du leider kein arm-image für den Pi (Nur für linux/amd64 unter https://hub.docker.com/r/sepia/home/tags) - Früher oder später wird das aber eh auf eine potentere Maschine bei mir wandern, zumindest das Brain - schöne verteilte Softwarearchitektur 😄 ❤️

EDIT: Wie manchen log.out's von mir schon zu entnehmen war, hab ich momentan noch Snips angebunden - das hat lange ganz ok seinen Dienst getan, da aber das Ende von Snips für die Maker-Welt eingetreten ist, suche ich nach einer guten Alternative - da soll dann auf jeden Fall in jedem Raum ein Smart-Speaker/Satellit für das Voice-System sein 👍

sepia-assistant commented 4 years ago

Haha ja das war ne spaßige und effektive Session, danke auch für die schnellen Infos und Tests :sunglasses: :+1:

Die Änderungen sind im Dev-Branch und ich baue gerade eine Test-Version. Mit meinem normalen FHEM (ohne Gzip) läuft es wie immer und mit meinem Gzip Test-Setup auch, allerdings hab ich da ein komisches Problem, ich kann immer nur einen erfolgreichen Call machen gefolgt von einem mit Timeout oO. Ich denke das liegt an meinem hastig zusammengebauten Nginx GZIP Proxy :sweat_smile: aber das sehen wir dann hoffentlich bei deinem Test ^^.

Musst mich dann instruieren, wenn es soweit ist, wie ich den Codestand vom dev-Branch auf meinem RPi4-Setup ausführbar mache

Theoretisch ist der build Prozess super einfach: mini doc ... allerdings hab ich das Script noch nicht auf einem RPi4 getestet.

Damit es schneller geht schicke ich gleich nen Download Link :-)

EDIT: Wie manchen log.out's von mir schon zu entnehmen war, hab ich momentan noch Snips angebunden - das hat lange ganz ok seinen Dienst getan, da aber das Ende von Snips für die Maker-Welt eingetreten ist, suche ich nach einer guten Alternative - da soll dann auf jeden Fall in jedem Raum ein Smart-Speaker/Satellit für das Voice-System sein +1

Das mit den Smart-Speaker/Satellit Geräten klappt schon ganz gut :-) Die Snips Leute scheinen viel mit MQTT zu machen, da erweitere ich gerade noch die Funktionen ^^. Schade eigentlich, dass die so einen harten Schnitt gemacht haben.

sepia-assistant commented 4 years ago

So, hier die Test-Version: SEPIA-Home v2.5.0 alpha01.

Ich empfehle den alten Ordner ~/SEPIA umzubenennen und dann die neue Zip einfach nach ~/SEPIA zu entpacken. Danach noch einmal setup.sh und einen neuen User anlegen. Alternativ ein Backup erstellen aus dem aktuellen SEPIA Ordner raus (backup-sepia.sh) und dann die Backup ZIP in den neuen Ordner entpacken dann sparst du dir das Setup ;-)

Achtung: diese Version ist ziemlich ungetestet =)

xyzaxyz commented 4 years ago

Hey, ja, bei dem schnellen Zyklus macht es echt Spaß ^^

Ich hab die Version ausprobiert:

  1. backup-sepia.sh ausgeführt
  2. ~/SEPIA -> ~/SEPIA-old
  3. Contents von SEPIA-Home_v2.5.0_b01a.zip nach ~/SEPIA
  4. Backup drüber entpackt
  5. restart-sepia.sh

Leider gibt es dieses mal gar keine Logs in der sepia-assist-server/log.out:

Log file - first entry officially left blank ;-)
Screenshot ![image](https://user-images.githubusercontent.com/27498403/77197894-445a1c80-6ae6-11ea-8d09-b778407c71b0.png)
xyzaxyz commented 4 years ago

Ich hab den assist-server mal abgeschossen und manuell gestartet, weiß nicht ob dieser Test was bringt: java -jar -Xms200m -Xmx200m ~/SEPIA/sepia-assist-server/sepia-assist-v2.4.2.jar

![image](https://user-images.githubusercontent.com/27498403/77199004-6359ae00-6ae8-11ea-8f66-b0060fadf9ce.png)
xyzaxyz commented 4 years ago

Innerhalb loadSettings.. ich mach mal ein blankes Setup anstatt über das eingespielte Backup

image

sepia-assistant commented 4 years ago

Hm komisch :sweat_smile: . ja sieht so aus als wäre irgendwas mit den .properties files aus dem Backup nicht ok. Vielleicht wurden die beim Entpacken des Backups nicht überschrieben?

xyzaxyz commented 4 years ago

Sollte größtenteils gepasst haben, oder? Settings waren zumindest die mir bekannten weiterhin drin:

image

sepia-assistant commented 4 years ago

Wenn die Daten da sind müsste der Rest eigentlich auch da sein, ja :thinking:

Ich hatte die Version einmal frisch auf meinem Windows PC getestet, da gingen zumindest die Basics ... vielleicht ist aber irgendwo anders der Wurm drin.

xyzaxyz commented 4 years ago

Scheinbar hat das mit dem Backup nicht ganz geklappt, jo.. das können wir gesondert mal betrachten...

Es hat funktioniert, yeey!! 🚀 Tausend Dank bis hierhin! Jetzt muss ich erst mal bisschen damit rumspielen ^^ Wir hören uns noch! :)

image

sepia-assistant commented 4 years ago

Sehr gut :+1: dann schon mal viel Erfolg beim Rumspielen :-D Was mich bei deiner Konfiguration vor allem interessieren würde ist wie das ganze performed bei so vielen Geräten :-) cu und schönen Abend noch ;-)

xyzaxyz commented 4 years ago

Genau, das werden wir mal beobachten, ich berichte bald 👍 Danke, dir auch noch einen schönen Abend! 😄

fquirin commented 4 years ago

Die GZIP Änderungen und weiter Fixes sind nun online :-)