{"panels":[{"id":"P1","mode":"active","sleep":null,"source":"ml","reading":{"panel_id":"P1","voltage_v":18.31,"current_a":1.05,"ldr_lux":21863,"ldr_corners_lux":[12488,31232,12493,31241],"temps_c":[[23.4,23.8,23.7,24.3],[23.9,23.5,23.9,24.3]],"tank_level_pct":54,"clean_state":1,"tap_open":0,"rain":0,"node_mw":5086,"node_wh":36.5643,"tap_s":221,"spray_s":196,"sim_clock":"Day 15 07:46","ts":"2026-10-31T16:53:16Z"},"decision":{"ts":"2026-10-31T16:53:14.033124Z","panel_id":"P1","heatmap":[[0,0,0,0.67],[0.17,0,0.33,1]],"clean_cost_inr":2,"forecast_kwh_7d":[3.74,4.62,4.49,4.49,4.49,4.69,4.35],"forecast_clean_kwh_7d":[5.1,6.53,6.32,6.32,6.19,6.66,6.05],"loss_inr_per_day":14.06,"clean_now":false,"state":"shading","efficiency_loss_pct":29.32,"light_spread_pct":85.8,"model_score_pct":95.13,"diagnosis_stage":"before_cleaning","reason":"Cleaning in progress.","trace":[{"step":"Light","ok":false,"text":"The four corner light sensors differ by 86%: a shadow or passing cloud, not dirt."},{"step":"Diagnosis","ok":null,"text":"Shaded, 95% sure (before-wash model)."},{"step":"Washing","ok":false,"text":"Shade is not dirt, so washing will not help."},{"step":"Decision","ok":false,"text":"Cleaning in progress."}],"model_ms":26},"history":[{"p":22,"c":false},{"p":17.6,"c":false},{"p":61.1,"c":false},{"p":71.5,"c":false},{"p":71.4,"c":false},{"p":68.7,"c":false},{"p":70.8,"c":false},{"p":77.5,"c":false},{"p":76.7,"c":true},{"p":73.5,"c":false},{"p":68.4,"c":false},{"p":65.4,"c":false},{"p":64.4,"c":false},{"p":64,"c":false},{"p":64.8,"c":false},{"p":63.5,"c":false},{"p":60.8,"c":false},{"p":54.7,"c":false},{"p":63.7,"c":false},{"p":67.3,"c":false},{"p":69,"c":false},{"p":69,"c":false},{"p":65.9,"c":false},{"p":62,"c":true},{"p":66.6,"c":false},{"p":61.5,"c":false},{"p":58.7,"c":false},{"p":57.3,"c":false},{"p":59.8,"c":false},{"p":63.2,"c":false},{"p":64.8,"c":false},{"p":64.6,"c":false},{"p":63.2,"c":false},{"p":64,"c":false},{"p":62.5,"c":false},{"p":59,"c":false},{"p":57.1,"c":false},{"p":57.5,"c":false},{"p":55.9,"c":false},{"p":56.1,"c":false},{"p":55.3,"c":false},{"p":56.7,"c":false},{"p":54.5,"c":false},{"p":53.3,"c":false},{"p":52.8,"c":false},{"p":51.3,"c":false},{"p":53.3,"c":false},{"p":48.9,"c":false},{"p":46.6,"c":false},{"p":45.5,"c":false},{"p":43.4,"c":false},{"p":45.8,"c":false},{"p":44,"c":false},{"p":44,"c":false},{"p":45.9,"c":false},{"p":44.2,"c":false},{"p":43.2,"c":false},{"p":44.2,"c":false},{"p":43,"c":false},{"p":41.8,"c":false},{"p":43.9,"c":false},{"p":44.6,"c":false},{"p":42.3,"c":false},{"p":41.7,"c":false},{"p":38.3,"c":false},{"p":36.2,"c":false},{"p":35.8,"c":true},{"p":31.7,"c":false},{"p":30.3,"c":false},{"p":28.7,"c":false},{"p":26,"c":false},{"p":25.1,"c":false},{"p":23.1,"c":false},{"p":22.8,"c":false},{"p":21.8,"c":false},{"p":20.4,"c":false},{"p":41.7,"c":false},{"p":67.3,"c":false},{"p":77.9,"c":false},{"p":77.9,"c":false},{"p":52.9,"c":false},{"p":0,"c":false},{"p":0,"c":false},{"p":14.5,"c":true},{"p":16,"c":false},{"p":15.8,"c":false},{"p":17,"c":false},{"p":17.9,"c":false},{"p":15.8,"c":false},{"p":19.2,"c":false}],"age_s":0.4,"ml_age_s":2.4},{"id":"P2","mode":"active","sleep":null,"source":"ml","reading":{"panel_id":"P2","voltage_v":18.31,"current_a":1.67,"ldr_lux":31673,"ldr_corners_lux":[31678,31669,31669,31677],"temps_c":[[23.8,24.2,23.4,23.7],[23.3,24.3,23.3,23.8]],"tank_level_pct":24,"clean_state":1,"tap_open":1,"rain":0,"node_mw":9638,"node_wh":36.8582,"tap_s":226,"spray_s":228,"sim_clock":"Day 15 07:46","ts":"2026-10-31T16:53:16Z"},"decision":{"ts":"2026-10-31T16:53:14.059284Z","panel_id":"P2","heatmap":[[0.17,1,0,0],[0,1,0,0.17]],"clean_cost_inr":2,"forecast_kwh_7d":[4.01,5.1,4.83,4.83,4.83,5.17,4.76],"forecast_clean_kwh_7d":[5.1,6.53,6.32,6.32,6.19,6.66,6.05],"loss_inr_per_day":11.02,"clean_now":false,"state":"dust","efficiency_loss_pct":22.5,"light_spread_pct":0,"model_score_pct":64.88,"diagnosis_stage":"before_cleaning","reason":"Cleaning in progress.","trace":[{"step":"Light","ok":true,"text":"The four corner light sensors agree (they differ by 0%), so it is not a shadow."},{"step":"Diagnosis","ok":null,"text":"Dusty, 65% sure (before-wash model)."},{"step":"Rain","ok":true,"text":"No rain is forecast in the next 48 hours."},{"step":"Water","ok":true,"text":"The tank is at 28% (a wash needs 20% or more)."},{"step":"Money","ok":true,"text":"Dust costs Rs 11 a day. One wash costs Rs 2."},{"step":"Decision","ok":false,"text":"Cleaning in progress."}],"model_ms":23},"history":[{"p":21.2,"c":false},{"p":16.1,"c":false},{"p":60,"c":false},{"p":70.8,"c":false},{"p":70.1,"c":false},{"p":67.7,"c":false},{"p":70.2,"c":false},{"p":75.6,"c":false},{"p":75.2,"c":true},{"p":72.8,"c":false},{"p":68.2,"c":false},{"p":63.7,"c":false},{"p":63.6,"c":false},{"p":63.2,"c":false},{"p":63.8,"c":false},{"p":62.5,"c":false},{"p":62.2,"c":false},{"p":64.3,"c":false},{"p":69.2,"c":false},{"p":67.3,"c":false},{"p":67.9,"c":false},{"p":68.7,"c":false},{"p":65.7,"c":false},{"p":61,"c":true},{"p":66.2,"c":false},{"p":60.1,"c":false},{"p":57.5,"c":false},{"p":55.6,"c":false},{"p":57.5,"c":false},{"p":61.3,"c":false},{"p":63.7,"c":false},{"p":62.4,"c":false},{"p":62.3,"c":false},{"p":63.1,"c":false},{"p":60.7,"c":false},{"p":57.9,"c":false},{"p":55.3,"c":false},{"p":56.3,"c":false},{"p":54.3,"c":false},{"p":55.3,"c":false},{"p":54,"c":false},{"p":55.8,"c":false},{"p":53.4,"c":false},{"p":53.1,"c":false},{"p":52.7,"c":false},{"p":52.5,"c":false},{"p":54.4,"c":false},{"p":52.1,"c":false},{"p":50.7,"c":false},{"p":50.1,"c":false},{"p":46.9,"c":false},{"p":49.8,"c":false},{"p":47,"c":false},{"p":47.2,"c":true},{"p":48.8,"c":false},{"p":46.4,"c":false},{"p":45.5,"c":false},{"p":46.4,"c":false},{"p":45.3,"c":false},{"p":44.2,"c":false},{"p":43.5,"c":false},{"p":42.4,"c":false},{"p":40.1,"c":false},{"p":39.9,"c":false},{"p":36.2,"c":false},{"p":34.4,"c":false},{"p":34.6,"c":false},{"p":30.6,"c":false},{"p":28.8,"c":false},{"p":28.1,"c":false},{"p":24.9,"c":false},{"p":24.2,"c":false},{"p":22.3,"c":false},{"p":22.2,"c":false},{"p":20.9,"c":false},{"p":19.6,"c":false},{"p":37,"c":false},{"p":66.7,"c":false},{"p":77.9,"c":false},{"p":78,"c":false},{"p":53,"c":false},{"p":0,"c":false},{"p":0,"c":false},{"p":14.7,"c":true},{"p":16,"c":false},{"p":16,"c":false},{"p":17,"c":false},{"p":18.1,"c":false},{"p":24.7,"c":false},{"p":30.6,"c":false}],"age_s":0.4,"ml_age_s":2.4},{"id":"P3","mode":"active","sleep":null,"source":"ml","reading":{"panel_id":"P3","voltage_v":18.3,"current_a":1.69,"ldr_lux":31859,"ldr_corners_lux":[31857,31855,31857,31867],"temps_c":[[23.7,23.9,23.8,24.3],[23.9,23.3,24.4,23.3]],"tank_level_pct":42,"clean_state":1,"tap_open":0,"rain":0,"node_mw":5243,"node_wh":36.2409,"tap_s":143,"spray_s":144,"sim_clock":"Day 15 07:46","ts":"2026-10-31T16:53:16Z"},"decision":{"ts":"2026-10-31T16:53:14.082010Z","panel_id":"P3","heatmap":[[0,0.17,0,0.83],[0,0,1,0]],"clean_cost_inr":2,"forecast_kwh_7d":[4.08,5.17,4.9,4.9,4.83,5.17,4.76],"forecast_clean_kwh_7d":[5.1,6.53,6.32,6.32,6.19,6.66,6.05],"loss_inr_per_day":10.7,"clean_now":false,"state":"dust","efficiency_loss_pct":21.49,"light_spread_pct":0,"model_score_pct":65.58,"diagnosis_stage":"before_cleaning","reason":"Cleaning in progress.","trace":[{"step":"Light","ok":true,"text":"The four corner light sensors agree (they differ by 0%), so it is not a shadow."},{"step":"Diagnosis","ok":null,"text":"Dusty, 66% sure (before-wash model)."},{"step":"Rain","ok":true,"text":"No rain is forecast in the next 48 hours."},{"step":"Water","ok":true,"text":"The tank is at 44% (a wash needs 20% or more)."},{"step":"Money","ok":true,"text":"Dust costs Rs 11 a day. One wash costs Rs 2."},{"step":"Decision","ok":false,"text":"Cleaning in progress."}],"model_ms":22},"history":[{"p":21.4,"c":false},{"p":18,"c":false},{"p":62.9,"c":false},{"p":71.8,"c":false},{"p":72.2,"c":false},{"p":69,"c":false},{"p":71.2,"c":false},{"p":77.1,"c":false},{"p":76.6,"c":true},{"p":73.4,"c":false},{"p":68.5,"c":false},{"p":66.8,"c":false},{"p":65.5,"c":false},{"p":66.9,"c":false},{"p":67.2,"c":false},{"p":64.9,"c":false},{"p":62.3,"c":false},{"p":60.7,"c":false},{"p":62.5,"c":false},{"p":62.5,"c":false},{"p":64,"c":false},{"p":64.2,"c":false},{"p":61.4,"c":false},{"p":57.4,"c":false},{"p":64.6,"c":false},{"p":63.6,"c":false},{"p":62.2,"c":false},{"p":60.1,"c":false},{"p":62.6,"c":false},{"p":64.1,"c":false},{"p":67.4,"c":false},{"p":67.1,"c":true},{"p":63.8,"c":false},{"p":63.9,"c":false},{"p":62.4,"c":false},{"p":59.6,"c":false},{"p":58.1,"c":false},{"p":58.9,"c":false},{"p":58.2,"c":false},{"p":57.3,"c":false},{"p":56.3,"c":false},{"p":57.3,"c":false},{"p":56.8,"c":false},{"p":55.6,"c":false},{"p":55.8,"c":false},{"p":53.6,"c":false},{"p":56,"c":false},{"p":52,"c":false},{"p":48.2,"c":false},{"p":46.9,"c":false},{"p":45.4,"c":false},{"p":47.3,"c":false},{"p":45.8,"c":false},{"p":45.4,"c":false},{"p":47,"c":false},{"p":46,"c":false},{"p":44.5,"c":false},{"p":45,"c":false},{"p":44,"c":false},{"p":42.3,"c":false},{"p":42,"c":false},{"p":41,"c":false},{"p":39.4,"c":false},{"p":38.5,"c":false},{"p":36,"c":false},{"p":34,"c":false},{"p":34,"c":false},{"p":30.6,"c":false},{"p":29.2,"c":false},{"p":28.1,"c":false},{"p":25.1,"c":false},{"p":24.1,"c":false},{"p":22.1,"c":false},{"p":21.8,"c":false},{"p":20.9,"c":false},{"p":19.6,"c":false},{"p":43.1,"c":false},{"p":68.9,"c":false},{"p":78.4,"c":false},{"p":77,"c":false},{"p":55.1,"c":false},{"p":0,"c":false},{"p":0,"c":false},{"p":15,"c":true},{"p":16.4,"c":false},{"p":16.4,"c":false},{"p":17.7,"c":false},{"p":18.4,"c":false},{"p":25.1,"c":false},{"p":30.9,"c":false}],"age_s":0.4,"ml_age_s":2.4}],"site":{"power_w":80.7,"node_mw":19967,"asleep":0,"node_wh":109.663,"tap_l":100.3,"spray_l":113.6,"tap_open":1,"loss_inr_per_day":35.8,"history":[{"p":66.5,"c":false},{"p":60.2,"c":false},{"p":95.2,"c":false},{"p":194.4,"c":false},{"p":214,"c":false},{"p":211,"c":false},{"p":207.5,"c":false},{"p":218.9,"c":false},{"p":229.4,"c":true},{"p":225.3,"c":true},{"p":214.6,"c":false},{"p":202.1,"c":false},{"p":194.9,"c":false},{"p":193.1,"c":false},{"p":194.9,"c":false},{"p":194.5,"c":false},{"p":188.2,"c":false},{"p":179.2,"c":false},{"p":188.7,"c":false},{"p":199,"c":false},{"p":198.8,"c":false},{"p":200.9,"c":false},{"p":198.8,"c":false},{"p":189.1,"c":true},{"p":185,"c":true},{"p":192.3,"c":false},{"p":182.4,"c":false},{"p":177,"c":false},{"p":175.5,"c":false},{"p":183.3,"c":false},{"p":190.2,"c":false},{"p":195.7,"c":false},{"p":192.7,"c":true},{"p":190.1,"c":false},{"p":189.5,"c":false},{"p":182.1,"c":false},{"p":174.6,"c":false},{"p":170.9,"c":false},{"p":171.1,"c":false},{"p":168.6,"c":false},{"p":167.9,"c":false},{"p":167,"c":false},{"p":167.6,"c":false},{"p":163.5,"c":false},{"p":161.5,"c":false},{"p":159.8,"c":false},{"p":159.4,"c":false},{"p":159.3,"c":false},{"p":150.7,"c":false},{"p":144.4,"c":false},{"p":140.4,"c":false},{"p":138.1,"c":false},{"p":141.1,"c":false},{"p":136.8,"c":false},{"p":138.5,"c":true},{"p":140,"c":false},{"p":135.6,"c":false},{"p":134.2,"c":false},{"p":134.4,"c":false},{"p":131.1,"c":false},{"p":130.4,"c":false},{"p":130.1,"c":false},{"p":125.7,"c":false},{"p":121.2,"c":false},{"p":116.7,"c":false},{"p":108.4,"c":false},{"p":104.2,"c":true},{"p":100.3,"c":false},{"p":91.5,"c":false},{"p":86.7,"c":false},{"p":82.2,"c":false},{"p":75.1,"c":false},{"p":71.4,"c":false},{"p":67.2,"c":false},{"p":65.8,"c":false},{"p":62.2,"c":false},{"p":80.9,"c":false},{"p":147.4,"c":false},{"p":213.5,"c":false},{"p":234.2,"c":false},{"p":207.9,"c":false},{"p":108.1,"c":false},{"p":0,"c":false},{"p":14.5,"c":true},{"p":45.7,"c":true},{"p":48.2,"c":false},{"p":49.4,"c":false},{"p":52.6,"c":false},{"p":52.3,"c":false},{"p":69,"c":false}],"forecast_kwh_7d":[11.8,14.9,14.2,14.2,14.2,15,13.9],"forecast_clean_kwh_7d":[15.3,19.6,19,19,18.6,20,18.2]},"weather":{"rain_48h":false,"day_factor":[0.72,0.91,0.89,0.89,0.87,0.93,0.85],"ambient_c":24.6,"raining":false},"log":[{"t":"22:22:41","ts":1793465561.5,"msg":"P1: ML program not answering, using built-in rules."},{"t":"22:22:41","ts":1793465561.5,"msg":"P1: clean command sent (AI decision: Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.)"},{"t":"22:22:41","ts":1793465561.5,"msg":"P2: woke up (daylight and dry)."},{"t":"22:22:41","ts":1793465561.5,"msg":"P2: ML program not answering, using built-in rules."},{"t":"22:22:41","ts":1793465561.5,"msg":"P2: clean command sent (AI decision: Dust is costing Rs 22/day, more than the Rs 2 wash. Cleaning now.)"},{"t":"22:22:41","ts":1793465561.5,"msg":"P3: woke up (daylight and dry)."},{"t":"22:22:41","ts":1793465561.5,"msg":"P3: ML program not answering, using built-in rules."},{"t":"22:22:41","ts":1793465561.5,"msg":"P3: clean command sent (AI decision: Dust is costing Rs 18/day, more than the Rs 2 wash. Cleaning now.)"},{"t":"22:22:41","ts":1793465561.9,"msg":"P1: decisions now come from the ML program."},{"t":"22:22:41","ts":1793465561.9,"msg":"P2: decisions now come from the ML program."},{"t":"22:22:41","ts":1793465561.9,"msg":"P3: decisions now come from the ML program."},{"t":"22:22:43","ts":1793465563.5,"msg":"P1: water flush"},{"t":"22:22:43","ts":1793465563.5,"msg":"P2: water flush"},{"t":"22:22:43","ts":1793465563.5,"msg":"P3: water flush"},{"t":"22:22:46","ts":1793465566.9,"msg":"Demo control: skip"},{"t":"22:22:47","ts":1793465567.5,"msg":"P1: air dry"},{"t":"22:22:47","ts":1793465567.5,"msg":"P2: air dry"},{"t":"22:22:47","ts":1793465567.5,"msg":"P3: air dry"},{"t":"22:22:54","ts":1793465574.9,"msg":"P1: going to sleep because it is dark or heavily overcast. Radio and sensors off; it looks at the sun every 20 min."},{"t":"22:22:54","ts":1793465574.9,"msg":"P2: going to sleep because it is dark or heavily overcast. Radio and sensors off; it looks at the sun every 20 min."},{"t":"22:22:54","ts":1793465574.9,"msg":"P3: going to sleep because it is dark or heavily overcast. Radio and sensors off; it looks at the sun every 20 min."},{"t":"22:23:03","ts":1793465583.9,"msg":"P1: woke up (daylight and dry)."},{"t":"22:23:03","ts":1793465583.9,"msg":"P1: cleaning finished."},{"t":"22:23:03","ts":1793465583.9,"msg":"P1: ML program not answering, using built-in rules."},{"t":"22:23:03","ts":1793465583.9,"msg":"P2: woke up (daylight and dry)."},{"t":"22:23:03","ts":1793465583.9,"msg":"P2: cleaning finished."},{"t":"22:23:03","ts":1793465583.9,"msg":"P2: ML program not answering, using built-in rules."},{"t":"22:23:03","ts":1793465583.9,"msg":"P3: woke up (daylight and dry)."},{"t":"22:23:03","ts":1793465583.9,"msg":"P3: cleaning finished."},{"t":"22:23:03","ts":1793465583.9,"msg":"P3: ML program not answering, using built-in rules."},{"t":"22:23:04","ts":1793465584.3,"msg":"P1: decisions now come from the ML program."},{"t":"22:23:04","ts":1793465584.3,"msg":"P2: decisions now come from the ML program."},{"t":"22:23:04","ts":1793465584.3,"msg":"P3: decisions now come from the ML program."},{"t":"22:23:11","ts":1793465591.4,"msg":"Demo control: shade on panel 1"},{"t":"22:23:12","ts":1793465592.5,"msg":"P1: clean command sent (AI decision: Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.)"},{"t":"22:23:12","ts":1793465592.5,"msg":"P2: clean command sent (AI decision: Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.)"},{"t":"22:23:12","ts":1793465592.5,"msg":"P3: clean command sent (AI decision: Dust is costing Rs 18/day, more than the Rs 2 wash. Cleaning now.)"},{"t":"22:23:13","ts":1793465593.9,"msg":"P1: water flush"},{"t":"22:23:13","ts":1793465593.9,"msg":"P2: water flush"},{"t":"22:23:13","ts":1793465593.9,"msg":"P3: water flush"}],"feed":[{"ts":1793465561.5,"panel":"P1","state":"dust","clean_now":true,"loss":33.4,"inr":19.2,"reason":"Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.","source":"rules"},{"ts":1793465561.5,"panel":"P2","state":"dust","clean_now":true,"loss":38,"inr":21.9,"reason":"Dust is costing Rs 22/day, more than the Rs 2 wash. Cleaning now.","source":"rules"},{"ts":1793465561.5,"panel":"P3","state":"dust","clean_now":true,"loss":30.4,"inr":17.5,"reason":"Dust is costing Rs 18/day, more than the Rs 2 wash. Cleaning now.","source":"rules"},{"ts":1793465563.9,"panel":"P1","state":"dust","clean_now":false,"loss":14.91,"inr":7.21,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465563.9,"panel":"P2","state":"dust","clean_now":false,"loss":16.59,"inr":7.69,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465563.9,"panel":"P3","state":"dust","clean_now":false,"loss":13.12,"inr":5.59,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465566.6,"panel":"P1","state":"shading","clean_now":false,"loss":4.14,"inr":1.63,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465566.6,"panel":"P2","state":"shading","clean_now":false,"loss":4.43,"inr":1.77,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465566.6,"panel":"P3","state":"shading","clean_now":false,"loss":3.68,"inr":1.47,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465567.9,"panel":"P1","state":"ok","clean_now":false,"loss":4.03,"inr":1.62,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465567.9,"panel":"P2","state":"ok","clean_now":false,"loss":4.67,"inr":1.94,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465567.9,"panel":"P3","state":"ok","clean_now":false,"loss":3.67,"inr":1.38,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465570.2,"panel":"P1","state":"dust","clean_now":false,"loss":9.99,"inr":4.42,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465570.2,"panel":"P2","state":"dust","clean_now":false,"loss":12.75,"inr":5.28,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465570.2,"panel":"P3","state":"dust","clean_now":false,"loss":8.57,"inr":3.36,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465572.2,"panel":"P1","state":"ok","clean_now":false,"loss":0,"inr":0,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465572.2,"panel":"P2","state":"ok","clean_now":false,"loss":0,"inr":0,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465572.2,"panel":"P3","state":"ok","clean_now":false,"loss":0,"inr":0,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465583.9,"panel":"P1","state":"dust","clean_now":true,"loss":35.7,"inr":20.6,"reason":"Dust is costing Rs 21/day, more than the Rs 2 wash. Cleaning now.","source":"rules"},{"ts":1793465583.9,"panel":"P2","state":"dust","clean_now":true,"loss":35.6,"inr":20.5,"reason":"Dust is costing Rs 21/day, more than the Rs 2 wash. Cleaning now.","source":"rules"},{"ts":1793465583.9,"panel":"P3","state":"dust","clean_now":true,"loss":33.4,"inr":19.2,"reason":"Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.","source":"rules"},{"ts":1793465584.3,"panel":"P1","state":"dust","clean_now":false,"loss":36.81,"inr":18.18,"reason":"Washed. Waiting for the panel to cool, then checking again.","source":"ml"},{"ts":1793465584.3,"panel":"P2","state":"dust","clean_now":false,"loss":36.68,"inr":18.18,"reason":"Washed. Waiting for the panel to cool, then checking again.","source":"ml"},{"ts":1793465584.3,"panel":"P3","state":"dust","clean_now":false,"loss":34.59,"inr":16.87,"reason":"Washed. Waiting for the panel to cool, then checking again.","source":"ml"},{"ts":1793465592.5,"panel":"P1","state":"dust","clean_now":true,"loss":38.12,"inr":19.43,"reason":"Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.","source":"ml"},{"ts":1793465592.5,"panel":"P2","state":"dust","clean_now":true,"loss":37.59,"inr":19.2,"reason":"Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.","source":"ml"},{"ts":1793465592.5,"panel":"P3","state":"dust","clean_now":true,"loss":35.69,"inr":18.1,"reason":"Dust is costing Rs 18/day, more than the Rs 2 wash. Cleaning now.","source":"ml"},{"ts":1793465594.3,"panel":"P1","state":"shading","clean_now":false,"loss":29.32,"inr":14.06,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465594.3,"panel":"P2","state":"dust","clean_now":false,"loss":22.5,"inr":11.02,"reason":"Cleaning in progress.","source":"ml"},{"ts":1793465594.3,"panel":"P3","state":"dust","clean_now":false,"loss":21.49,"inr":10.7,"reason":"Cleaning in progress.","source":"ml"}],"ml":"ML model","ml_connected":true,"sim":{"clock":"Day 15 07:46","speed":120,"skipping":false,"link":true,"api":"https://solarsentinel-api.pages.dev","link_error":"","sun_wm2":312,"ambient_c":24.8,"cloud":0.44,"raining":false,"forecast_rain":false,"storm":false,"timer":false,"sel":0,"now":1793465595.660002,"activity":{"poll":1793465595.65947,"report":1793465595.65947,"weather":1793465592.645911},"ago":{"poll":0,"report":2.01,"weather":3.01},"today":{"node_wh":0.342,"always_on_wh":5.794,"recovered_wh":5.001,"lost_wh":30.097,"yield_wh":51.1,"tap_l":0.088,"rain_l":0,"spray_l":1.62},"cfg":{"auto_s":7200,"volt_div":6.6,"zero":2.5,"vpa":0.1,"mvc":10,"tank_l":20,"spray_l_s":0.2,"tap_l_s":0.17,"p_active_mw":250,"p_sleep_mw":1.3},"panels":[{"id":"P1","soil_pct":6.7,"tank":53,"faults":{"crack":false,"hotspot":false,"shade":true},"node_state":"WATER","mode":"active","sleep_reason":"dark","wake_in_s":0,"spray":true,"blower":false,"tap":false,"tap_hold":false,"raining":false,"temps":[24.9,25,25.2,25.2,24.9,25,25.2,25.2],"sensors":[23.8,23.8,24.1,24.1,23.8,23.8,24.1,24.1],"cloud_x":null,"soil":[0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07],"stuck":[0,0,0,0,0,0,0,0],"node":{"cs":"WATER","elapsed_ms":2673,"total_ms":4000,"timer_on":false,"timer_in_s":6876,"adc":{"volt":[22196.5,2774.56],"curr":[20843.5,2605.44],"ldr":[[3296.8,412.09],[8245.2,1030.66],[3298.2,412.28],[8247.5,1030.94]],"temp":[[3750,234.38],[3800.2,237.52],[3791.5,236.97],[3880.2,242.52],[3827.8,239.23],[3761.8,235.11],[3826,239.12],[3895.8,243.48]]},"last":{"v":18.31,"a":1.05,"lux":21863,"corners":[12488,31232,12493,31241],"mw":5086},"tank":53,"tank_sensor":54,"mw":5050,"node_wh":36.564,"always_on_wh":84.338,"actuator_wh":0.8299,"tap_s":221,"spray_s":196,"sleeps":14}},{"id":"P2","soil_pct":6.7,"tank":25,"faults":{"crack":false,"hotspot":false,"shade":false},"node_state":"WATER","mode":"active","sleep_reason":"dark","wake_in_s":0,"spray":true,"blower":false,"tap":true,"tap_hold":false,"raining":false,"temps":[25.2,25.2,25.2,25.2,25.2,25.2,25.2,25.2],"sensors":[23.8,23.8,23.8,23.8,23.8,23.8,23.8,23.8],"cloud_x":null,"soil":[0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07],"stuck":[0,0,0,0,0,0,0,0],"node":{"cs":"WATER","elapsed_ms":2673,"total_ms":4000,"timer_on":false,"timer_in_s":6876,"adc":{"volt":[22190.5,2773.81],"curr":[21338.2,2667.28],"ldr":[[8363,1045.38],[8360.5,1045.06],[8360.5,1045.06],[8362.8,1045.34]],"temp":[[3802.5,237.66],[3877.8,242.36],[3750.8,234.42],[3786.2,236.64],[3734.8,233.42],[3882.2,242.64],[3732,233.25],[3810.8,238.17]]},"last":{"v":18.31,"a":1.67,"lux":31673,"corners":[31678,31669,31669,31677],"mw":9638},"tank":25,"tank_sensor":24,"mw":9850,"node_wh":36.858,"always_on_wh":84.432,"actuator_wh":0.9235,"tap_s":226,"spray_s":228,"sleeps":14}},{"id":"P3","soil_pct":6.3,"tank":41,"faults":{"crack":false,"hotspot":false,"shade":false},"node_state":"WATER","mode":"active","sleep_reason":"dark","wake_in_s":0,"spray":true,"blower":false,"tap":false,"tap_hold":false,"raining":false,"temps":[25.2,25.2,25.2,25.2,25.2,25.2,25.2,25.2],"sensors":[23.9,23.9,23.9,23.9,23.9,23.9,23.9,23.9],"cloud_x":null,"soil":[0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06],"stuck":[0,0,0,0,0,0,0,0],"node":{"cs":"WATER","elapsed_ms":2673,"total_ms":4000,"timer_on":false,"timer_in_s":6876,"adc":{"volt":[22185,2773.12],"curr":[21354.8,2669.34],"ldr":[[8410.2,1051.28],[8409.8,1051.22],[8410.2,1051.28],[8413,1051.62]],"temp":[[3799.2,237.45],[3818.8,238.67],[3807.2,237.95],[3894.8,243.42],[3817.5,238.59],[3735.5,233.47],[3906.2,244.14],[3735.5,233.47]]},"last":{"v":18.3,"a":1.69,"lux":31859,"corners":[31857,31855,31857,31867],"mw":5243},"tank":41,"tank_sensor":42,"mw":5050,"node_wh":36.241,"always_on_wh":84.092,"actuator_wh":0.5842,"tap_s":143,"spray_s":144,"sleeps":14}}],"events":["P1 22:23:03  waking up: daylight and dry","P1 22:23:12  clean start (AI decision: Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.) water=4000ms air=8000ms","P2 22:22:41  clean start (AI decision: Dust is costing Rs 22/day, more than the Rs 2 wash. Cleaning now.) water=4000ms air=8000ms","P2 22:22:53  clean done","P2 22:22:53  sleeping (dark): sensors off, radio off, wakes every 20 min to look at the sun","P2 22:23:03  waking up: daylight and dry","P2 22:23:12  clean start (AI decision: Dust is costing Rs 19/day, more than the Rs 2 wash. Cleaning now.) water=4000ms air=8000ms","P2 22:23:15  tap refill start (tank 24%)","P3 22:22:39  waking up: daylight and dry","P3 22:22:41  clean start (AI decision: Dust is costing Rs 18/day, more than the Rs 2 wash. Cleaning now.) water=4000ms air=8000ms","P3 22:22:53  clean done","P3 22:22:53  sleeping (dark): sensors off, radio off, wakes every 20 min to look at the sun","P3 22:23:03  waking up: daylight and dry","P3 22:23:12  clean start (AI decision: Dust is costing Rs 18/day, more than the Rs 2 wash. Cleaning now.) water=4000ms air=8000ms"]},"now":1793465596.7,"econ":{"panel_kw":1.5,"tariff":8,"clean_cost":2,"tank_l":20,"tap_l_s":0.17,"spray_l_s":0.2}}