{"input": {"updated_at": "29 Haziran 2026, 00:32", "summary": {"active_zones": 4, "alerts": 1, "automation_score": 80, "water_saving": 18, "active_actuators": 10}, "sensors": [{"key": "temperature", "label": "Hava S\u0131cakl\u0131\u011f\u0131", "value": 24.5, "unit": "\u00b0C", "target": "23-26 \u00b0C", "status": "normal"}, {"key": "humidity", "label": "Nem", "value": 64, "unit": "%", "target": "65-75%", "status": "normal"}, {"key": "soil_moisture", "label": "Toprak Nemi", "value": 35, "unit": "%", "target": "45-55%", "status": "critical"}, {"key": "co2", "label": "CO2", "value": 780, "unit": "ppm", "target": "700-900 ppm", "status": "normal"}, {"key": "light", "label": "I\u015f\u0131k", "value": 73, "unit": "%", "target": "60-80%", "status": "normal"}, {"key": "ph", "label": "Besin pH", "value": 6.36, "unit": "", "target": "5.8-6.5", "status": "normal"}], "sensor_scope": "Sens\u00f6rler panelde g\u00f6sterilen sera geneli mock/sim\u00fclasyon sens\u00f6rleridir; b\u00f6lge bazl\u0131 sens\u00f6r yoktur.", "actuators": [{"id": "climate_cooling", "label": "Klima so\u011futma", "group": "climate", "zone": "T\u00fcm sera", "active": false}, {"id": "climate_fan", "label": "Sirk\u00fclasyon fan\u0131", "group": "climate", "zone": "T\u00fcm sera", "active": true}, {"id": "climate_roof_vent", "label": "\u00c7at\u0131 havaland\u0131rma", "group": "climate", "zone": "T\u00fcm sera", "active": true}, {"id": "heating_boiler", "label": "Kazan \u0131s\u0131tma", "group": "heating", "zone": "T\u00fcm sera", "active": false}, {"id": "heating_root_zone", "label": "K\u00f6k b\u00f6lgesi \u0131s\u0131tma", "group": "heating", "zone": "K\u00f6k b\u00f6lgesi", "active": true}, {"id": "irrigation_channel_1", "label": "Sulama Kanal 1", "group": "irrigation", "zone": "Sulama hatt\u0131 1", "active": true}, {"id": "irrigation_channel_2", "label": "Sulama Kanal 2", "group": "irrigation", "zone": "Sulama hatt\u0131 2", "active": true}, {"id": "irrigation_channel_3", "label": "Sulama Kanal 3", "group": "irrigation", "zone": "Sulama hatt\u0131 3", "active": true}, {"id": "irrigation_channel_4", "label": "Sulama Kanal 4", "group": "irrigation", "zone": "Sulama hatt\u0131 4", "active": true}, {"id": "spray_fungicide", "label": "Fungisit sisleme", "group": "spraying", "zone": "T\u00fcm sera", "active": false}, {"id": "spray_insecticide", "label": "\u0130nsektisit sisleme", "group": "spraying", "zone": "T\u00fcm sera", "active": false}, {"id": "spray_mite_control", "label": "Akar kontrol sisleme", "group": "spraying", "zone": "\u0130la\u00e7lama hatt\u0131 3", "active": false}, {"id": "spray_foliar_support", "label": "Yaprak uygulama hatt\u0131", "group": "spraying", "zone": "T\u00fcm sera", "active": false}, {"id": "fertigation_nitrogen", "label": "Azot g\u00fcbreleme", "group": "fertilization", "zone": "T\u00fcm sera", "active": false}, {"id": "fertigation_potassium", "label": "Potasyum g\u00fcbreleme", "group": "fertilization", "zone": "G\u00fcbreleme hatt\u0131 2", "active": true}, {"id": "fertigation_calcium", "label": "Kalsiyum g\u00fcbreleme", "group": "fertilization", "zone": "G\u00fcbreleme hatt\u0131 3", "active": true}, {"id": "fertigation_micro", "label": "Mikro element hatt\u0131", "group": "fertilization", "zone": "T\u00fcm sera", "active": true}]}, "state": {"updated_at": "29 Haziran 2026, 00:33", "summary": {"active_zones": 4, "alerts": 1, "automation_score": 80, "water_saving": 18, "active_actuators": 10}, "manual_mode": false, "sensors": [{"key": "temperature", "name": "Hava S\u0131cakl\u0131\u011f\u0131", "label": "Hava S\u0131cakl\u0131\u011f\u0131", "value": 24.0, "unit": "\u00b0C", "target": "23-26 \u00b0C", "status": "normal", "trend": "+0.4 \u00b0C / saat", "progress": 66.66666666666666, "manual": false}, {"key": "humidity", "name": "Nem", "label": "Nem", "value": 64, "unit": "%", "target": "65-75%", "status": "normal", "trend": "-2% / saat", "progress": 64, "manual": false}, {"key": "soil_moisture", "name": "Toprak Nemi", "label": "Toprak Nemi", "value": 35, "unit": "%", "target": "45-55%", "status": "critical", "trend": "-4% / saat", "progress": 35, "manual": false}, {"key": "co2", "name": "CO2", "label": "CO2", "value": 767, "unit": "ppm", "target": "700-900 ppm", "status": "normal", "trend": "+22 ppm / saat", "progress": 63.916666666666664, "manual": false}, {"key": "light", "name": "I\u015f\u0131k", "label": "I\u015f\u0131k", "value": 69, "unit": "%", "target": "60-80%", "status": "normal", "trend": "+6% / saat", "progress": 69, "manual": false}, {"key": "ph", "name": "Besin pH", "label": "Besin pH", "value": 6.33, "unit": "", "target": "5.8-6.5", "status": "normal", "trend": "stabil", "progress": 79.125, "manual": false}], "zones": [{"name": "B\u00f6lge 1", "crop": "\u00dcretim alan\u0131", "health": 94, "irrigation": "18 dk sonra", "status": "normal"}, {"name": "B\u00f6lge 2", "crop": "\u00dcretim alan\u0131", "health": 88, "irrigation": "42 dk sonra", "status": "normal"}, {"name": "B\u00f6lge 3", "crop": "\u00dcretim alan\u0131", "health": 83, "irrigation": "Sens\u00f6r durumuna ba\u011fl\u0131", "status": "normal"}, {"name": "B\u00f6lge 4", "crop": "\u00dcretim alan\u0131", "health": 91, "irrigation": "2 saat sonra", "status": "normal"}], "actuators": [{"id": "climate_cooling", "label": "Klima so\u011futma", "group": "climate", "group_label": "Klima", "zone": "T\u00fcm sera", "description": "S\u0131cakl\u0131k y\u00fckseldi\u011finde so\u011futma hatt\u0131.", "active": false, "last_command": "close", "last_reason": "S\u0131cakl\u0131k normal, so\u011futma gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "climate_fan", "label": "Sirk\u00fclasyon fan\u0131", "group": "climate", "group_label": "Klima", "zone": "T\u00fcm sera", "description": "Nem ve s\u0131cakl\u0131k da\u011f\u0131l\u0131m\u0131n\u0131 dengeler.", "active": true, "last_command": "open", "last_reason": "Hava sirk\u00fclasyonu i\u00e7in fan \u00e7al\u0131\u015fmal\u0131", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:16"}, {"id": "climate_roof_vent", "label": "\u00c7at\u0131 havaland\u0131rma", "group": "climate", "group_label": "Klima", "zone": "T\u00fcm sera", "description": "S\u0131cak hava ve y\u00fcksek nem tahliyesi.", "active": true, "last_command": "open", "last_reason": "Havaland\u0131rma ile s\u0131cakl\u0131k d\u00fc\u015f\u00fcr\u00fcl\u00fcyor.", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:13"}, {"id": "heating_boiler", "label": "Kazan \u0131s\u0131tma", "group": "heating", "group_label": "Is\u0131tma", "zone": "T\u00fcm sera", "description": "D\u00fc\u015f\u00fck hava s\u0131cakl\u0131\u011f\u0131nda ana \u0131s\u0131tma hatt\u0131.", "active": false, "last_command": "close", "last_reason": "Is\u0131tma gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "heating_root_zone", "label": "K\u00f6k b\u00f6lgesi \u0131s\u0131tma", "group": "heating", "group_label": "Is\u0131tma", "zone": "K\u00f6k b\u00f6lgesi", "description": "Fide ve k\u00f6k b\u00f6lgesi s\u0131cakl\u0131k deste\u011fi.", "active": true, "last_command": "open", "last_reason": "K\u00f6k b\u00f6lgesi \u0131s\u0131tmas\u0131 pasif, aktifle\u015ftirilerek denge sa\u011flans\u0131n", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:02"}, {"id": "irrigation_channel_1", "label": "Sulama Kanal 1", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 1", "description": "Damla sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_2", "label": "Sulama Kanal 2", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 2", "description": "Hassas fide sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_3", "label": "Sulama Kanal 3", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 3", "description": "Damla sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_4", "label": "Sulama Kanal 4", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 4", "description": "Mikro sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "spray_fungicide", "label": "Fungisit sisleme", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "T\u00fcm sera", "description": "Sera \u00fcretiminde s\u0131k kullan\u0131lan mantari hastal\u0131k \u00f6nleme kanal\u0131.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Nem normal, ila\u00e7lama gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "spray_insecticide", "label": "\u0130nsektisit sisleme", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "T\u00fcm sera", "description": "Zararl\u0131 b\u00f6cek bask\u0131s\u0131 i\u00e7in tercih edilen kanal.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Aktif hastal\u0131k/zararl\u0131 tespiti yok", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 22:04"}, {"id": "spray_mite_control", "label": "Akar kontrol sisleme", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "\u0130la\u00e7lama hatt\u0131 3", "description": "Akar ve trips bask\u0131s\u0131nda kullan\u0131lan kanal.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Akar kontrol\u00fc aktif de\u011fil, gerek yok", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:18"}, {"id": "spray_foliar_support", "label": "Yaprak uygulama hatt\u0131", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "T\u00fcm sera", "description": "Yaprak destek ve d\u00fc\u015f\u00fck doz uygulama kanal\u0131.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Yaprak uygulamas\u0131 \u015fu an gerekli de\u011fil", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:18"}, {"id": "fertigation_nitrogen", "label": "Azot g\u00fcbreleme", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "T\u00fcm sera", "description": "Vejetatif geli\u015fim deste\u011fi.", "active": false, "last_command": "close", "last_reason": "pH normal, azot gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "fertigation_potassium", "label": "Potasyum g\u00fcbreleme", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "G\u00fcbreleme hatt\u0131 2", "description": "Meyve kalitesi ve dayan\u0131m deste\u011fi.", "active": true, "last_command": "open", "last_reason": "Potasyum eksikli\u011fi riski", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 20:55"}, {"id": "fertigation_calcium", "label": "Kalsiyum g\u00fcbreleme", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "G\u00fcbreleme hatt\u0131 3", "description": "\u00c7i\u00e7ek burnu \u00e7\u00fcr\u00fckl\u00fc\u011f\u00fc riskini azaltma deste\u011fi.", "active": true, "last_command": "open", "last_reason": "Kalsiyum takviyesi gerekli", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 20:55"}, {"id": "fertigation_micro", "label": "Mikro element hatt\u0131", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "T\u00fcm sera", "description": "\u0130z element deste\u011fi.", "active": true, "last_command": "open", "last_reason": "Mikro element deste\u011fi i\u00e7in", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 20:56"}], "actuator_groups": [{"key": "climate", "label": "Klima", "active_count": 2, "items": [{"id": "climate_cooling", "label": "Klima so\u011futma", "group": "climate", "group_label": "Klima", "zone": "T\u00fcm sera", "description": "S\u0131cakl\u0131k y\u00fckseldi\u011finde so\u011futma hatt\u0131.", "active": false, "last_command": "close", "last_reason": "S\u0131cakl\u0131k normal, so\u011futma gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "climate_fan", "label": "Sirk\u00fclasyon fan\u0131", "group": "climate", "group_label": "Klima", "zone": "T\u00fcm sera", "description": "Nem ve s\u0131cakl\u0131k da\u011f\u0131l\u0131m\u0131n\u0131 dengeler.", "active": true, "last_command": "open", "last_reason": "Hava sirk\u00fclasyonu i\u00e7in fan \u00e7al\u0131\u015fmal\u0131", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:16"}, {"id": "climate_roof_vent", "label": "\u00c7at\u0131 havaland\u0131rma", "group": "climate", "group_label": "Klima", "zone": "T\u00fcm sera", "description": "S\u0131cak hava ve y\u00fcksek nem tahliyesi.", "active": true, "last_command": "open", "last_reason": "Havaland\u0131rma ile s\u0131cakl\u0131k d\u00fc\u015f\u00fcr\u00fcl\u00fcyor.", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:13"}]}, {"key": "heating", "label": "Is\u0131tma", "active_count": 1, "items": [{"id": "heating_boiler", "label": "Kazan \u0131s\u0131tma", "group": "heating", "group_label": "Is\u0131tma", "zone": "T\u00fcm sera", "description": "D\u00fc\u015f\u00fck hava s\u0131cakl\u0131\u011f\u0131nda ana \u0131s\u0131tma hatt\u0131.", "active": false, "last_command": "close", "last_reason": "Is\u0131tma gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "heating_root_zone", "label": "K\u00f6k b\u00f6lgesi \u0131s\u0131tma", "group": "heating", "group_label": "Is\u0131tma", "zone": "K\u00f6k b\u00f6lgesi", "description": "Fide ve k\u00f6k b\u00f6lgesi s\u0131cakl\u0131k deste\u011fi.", "active": true, "last_command": "open", "last_reason": "K\u00f6k b\u00f6lgesi \u0131s\u0131tmas\u0131 pasif, aktifle\u015ftirilerek denge sa\u011flans\u0131n", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:02"}]}, {"key": "irrigation", "label": "Sulama", "active_count": 4, "items": [{"id": "irrigation_channel_1", "label": "Sulama Kanal 1", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 1", "description": "Damla sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_2", "label": "Sulama Kanal 2", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 2", "description": "Hassas fide sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_3", "label": "Sulama Kanal 3", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 3", "description": "Damla sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_4", "label": "Sulama Kanal 4", "group": "irrigation", "group_label": "Sulama", "zone": "Sulama hatt\u0131 4", "description": "Mikro sulama kanal\u0131.", "active": true, "last_command": "open", "last_reason": "Toprak nemi kritik, sulama ba\u015flat", "last_source": "openrouter", "updated_at": "29 Haziran 2026, 00:33"}]}, {"key": "spraying", "label": "\u0130la\u00e7lama", "active_count": 0, "items": [{"id": "spray_fungicide", "label": "Fungisit sisleme", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "T\u00fcm sera", "description": "Sera \u00fcretiminde s\u0131k kullan\u0131lan mantari hastal\u0131k \u00f6nleme kanal\u0131.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Nem normal, ila\u00e7lama gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "spray_insecticide", "label": "\u0130nsektisit sisleme", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "T\u00fcm sera", "description": "Zararl\u0131 b\u00f6cek bask\u0131s\u0131 i\u00e7in tercih edilen kanal.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Aktif hastal\u0131k/zararl\u0131 tespiti yok", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 22:04"}, {"id": "spray_mite_control", "label": "Akar kontrol sisleme", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "\u0130la\u00e7lama hatt\u0131 3", "description": "Akar ve trips bask\u0131s\u0131nda kullan\u0131lan kanal.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Akar kontrol\u00fc aktif de\u011fil, gerek yok", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:18"}, {"id": "spray_foliar_support", "label": "Yaprak uygulama hatt\u0131", "group": "spraying", "group_label": "\u0130la\u00e7lama", "zone": "T\u00fcm sera", "description": "Yaprak destek ve d\u00fc\u015f\u00fck doz uygulama kanal\u0131.", "preferred": true, "active": false, "last_command": "close", "last_reason": "Yaprak uygulamas\u0131 \u015fu an gerekli de\u011fil", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 21:18"}]}, {"key": "fertilization", "label": "G\u00fcbreleme", "active_count": 3, "items": [{"id": "fertigation_nitrogen", "label": "Azot g\u00fcbreleme", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "T\u00fcm sera", "description": "Vejetatif geli\u015fim deste\u011fi.", "active": false, "last_command": "close", "last_reason": "pH normal, azot gerekmez", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 23:52"}, {"id": "fertigation_potassium", "label": "Potasyum g\u00fcbreleme", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "G\u00fcbreleme hatt\u0131 2", "description": "Meyve kalitesi ve dayan\u0131m deste\u011fi.", "active": true, "last_command": "open", "last_reason": "Potasyum eksikli\u011fi riski", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 20:55"}, {"id": "fertigation_calcium", "label": "Kalsiyum g\u00fcbreleme", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "G\u00fcbreleme hatt\u0131 3", "description": "\u00c7i\u00e7ek burnu \u00e7\u00fcr\u00fckl\u00fc\u011f\u00fc riskini azaltma deste\u011fi.", "active": true, "last_command": "open", "last_reason": "Kalsiyum takviyesi gerekli", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 20:55"}, {"id": "fertigation_micro", "label": "Mikro element hatt\u0131", "group": "fertilization", "group_label": "G\u00fcbreleme", "zone": "T\u00fcm sera", "description": "\u0130z element deste\u011fi.", "active": true, "last_command": "open", "last_reason": "Mikro element deste\u011fi i\u00e7in", "last_source": "openrouter", "updated_at": "28 Haziran 2026, 20:56"}]}], "map_points": [{"kind": "sensor", "id": "temperature", "label": "Hava S\u0131cakl\u0131\u011f\u0131", "location": "Kuzey \u00e7at\u0131", "value": 24.0, "unit": "\u00b0C", "status": "normal", "x": 24, "y": 22}, {"kind": "sensor", "id": "humidity", "label": "Nem", "location": "Orta \u00fcst hat", "value": 64, "unit": "%", "status": "normal", "x": 52, "y": 24}, {"kind": "sensor", "id": "soil_moisture", "label": "Toprak Nemi", "location": "K\u00f6k b\u00f6lgesi", "value": 35, "unit": "%", "status": "critical", "x": 50, "y": 62}, {"kind": "sensor", "id": "co2", "label": "CO2", "location": "Do\u011fu havaland\u0131rma", "value": 767, "unit": "ppm", "status": "normal", "x": 76, "y": 34}, {"kind": "sensor", "id": "light", "label": "I\u015f\u0131k", "location": "G\u00f6lgelik perdesi", "value": 69, "unit": "%", "status": "normal", "x": 36, "y": 40}, {"kind": "sensor", "id": "ph", "label": "Besin pH", "location": "Besin tank\u0131", "value": 6.33, "unit": "", "status": "normal", "x": 78, "y": 72}, {"kind": "actuator", "id": "climate_cooling", "label": "Klima so\u011futma", "location": "T\u00fcm sera", "group": "climate", "group_label": "Klima", "active": false, "status": "idle", "x": 18, "y": 14}, {"kind": "actuator", "id": "climate_fan", "label": "Sirk\u00fclasyon fan\u0131", "location": "T\u00fcm sera", "group": "climate", "group_label": "Klima", "active": true, "status": "active", "x": 52, "y": 14}, {"kind": "actuator", "id": "climate_roof_vent", "label": "\u00c7at\u0131 havaland\u0131rma", "location": "T\u00fcm sera", "group": "climate", "group_label": "Klima", "active": true, "status": "active", "x": 82, "y": 14}, {"kind": "actuator", "id": "heating_boiler", "label": "Kazan \u0131s\u0131tma", "location": "T\u00fcm sera", "group": "heating", "group_label": "Is\u0131tma", "active": false, "status": "idle", "x": 16, "y": 84}, {"kind": "actuator", "id": "heating_root_zone", "label": "K\u00f6k b\u00f6lgesi \u0131s\u0131tma", "location": "K\u00f6k b\u00f6lgesi", "group": "heating", "group_label": "Is\u0131tma", "active": true, "status": "active", "x": 47, "y": 78}, {"kind": "actuator", "id": "irrigation_channel_1", "label": "Sulama Kanal 1", "location": "Sulama hatt\u0131 1", "group": "irrigation", "group_label": "Sulama", "active": true, "status": "active", "x": 25, "y": 49}, {"kind": "actuator", "id": "irrigation_channel_2", "label": "Sulama Kanal 2", "location": "Sulama hatt\u0131 2", "group": "irrigation", "group_label": "Sulama", "active": true, "status": "active", "x": 41, "y": 49}, {"kind": "actuator", "id": "irrigation_channel_3", "label": "Sulama Kanal 3", "location": "Sulama hatt\u0131 3", "group": "irrigation", "group_label": "Sulama", "active": true, "status": "active", "x": 57, "y": 49}, {"kind": "actuator", "id": "irrigation_channel_4", "label": "Sulama Kanal 4", "location": "Sulama hatt\u0131 4", "group": "irrigation", "group_label": "Sulama", "active": true, "status": "active", "x": 73, "y": 49}, {"kind": "actuator", "id": "spray_fungicide", "label": "Fungisit sisleme", "location": "T\u00fcm sera", "group": "spraying", "group_label": "\u0130la\u00e7lama", "active": false, "status": "idle", "x": 28, "y": 30}, {"kind": "actuator", "id": "spray_insecticide", "label": "\u0130nsektisit sisleme", "location": "T\u00fcm sera", "group": "spraying", "group_label": "\u0130la\u00e7lama", "active": false, "status": "idle", "x": 44, "y": 30}, {"kind": "actuator", "id": "spray_mite_control", "label": "Akar kontrol sisleme", "location": "\u0130la\u00e7lama hatt\u0131 3", "group": "spraying", "group_label": "\u0130la\u00e7lama", "active": false, "status": "idle", "x": 60, "y": 30}, {"kind": "actuator", "id": "spray_foliar_support", "label": "Yaprak uygulama hatt\u0131", "location": "T\u00fcm sera", "group": "spraying", "group_label": "\u0130la\u00e7lama", "active": false, "status": "idle", "x": 76, "y": 30}, {"kind": "actuator", "id": "fertigation_nitrogen", "label": "Azot g\u00fcbreleme", "location": "T\u00fcm sera", "group": "fertilization", "group_label": "G\u00fcbreleme", "active": false, "status": "idle", "x": 30, "y": 70}, {"kind": "actuator", "id": "fertigation_potassium", "label": "Potasyum g\u00fcbreleme", "location": "G\u00fcbreleme hatt\u0131 2", "group": "fertilization", "group_label": "G\u00fcbreleme", "active": true, "status": "active", "x": 46, "y": 70}, {"kind": "actuator", "id": "fertigation_calcium", "label": "Kalsiyum g\u00fcbreleme", "location": "G\u00fcbreleme hatt\u0131 3", "group": "fertilization", "group_label": "G\u00fcbreleme", "active": true, "status": "active", "x": 62, "y": 70}, {"kind": "actuator", "id": "fertigation_micro", "label": "Mikro element hatt\u0131", "location": "T\u00fcm sera", "group": "fertilization", "group_label": "G\u00fcbreleme", "active": true, "status": "active", "x": 78, "y": 70}], "activities": [{"time": "00:29", "title": "Havaland\u0131rma kanatlar\u0131 %35 a\u00e7\u0131ld\u0131", "detail": "Nem hedef aral\u0131\u011f\u0131n \u00fcst s\u0131n\u0131r\u0131na yakla\u015ft\u0131\u011f\u0131 i\u00e7in otomasyon \u00e7al\u0131\u015ft\u0131.", "kind": "automation"}, {"time": "00:15", "title": "Sulama Kanal 3 i\u00e7in takip \u00f6nerisi olu\u015ftu", "detail": "Toprak nemi hedef alt s\u0131n\u0131r\u0131na yakla\u015ft\u0131\u011f\u0131nda AI kanal komutu \u00fcretecek.", "kind": "warning"}, {"time": "23:59", "title": "CO2 seviyesi hedef banda girdi", "detail": "Karbon takviyesi 11 dakika \u00f6nce kapat\u0131ld\u0131.", "kind": "success"}, {"time": "23:25", "title": "Besin tank\u0131 pH kalibrasyonu tamamland\u0131", "detail": "\u00d6l\u00e7\u00fcm sapmas\u0131 0.03 olarak kaydedildi.", "kind": "maintenance"}], "chart": [{"label": "19:33", "temperature": 24.2, "humidity": 68}, {"label": "20:33", "temperature": 22.9, "humidity": 67}, {"label": "21:33", "temperature": 22.7, "humidity": 65}, {"label": "22:33", "temperature": 24.0, "humidity": 62}, {"label": "23:33", "temperature": 24.9, "humidity": 60}, {"label": "00:33", "temperature": 25.3, "humidity": 60}]}, "ai": {"provider": "openrouter", "model": "deepseek/deepseek-v4-flash", "status": "ok", "visible_workflow": ["Toprak nemi kritik", "Sulama ba\u015flat", "Nem d\u00fc\u015f\u00fckse klima ayarla"], "decision": {"summary": "Toprak nemi kritik seviyede (%35), sulama ba\u015flat\u0131lmal\u0131. Di\u011fer parametreler normal.", "risk_level": "critical", "actions": [{"type": "irrigation", "target": "T\u00fcm sera", "priority": "high", "recommendation": "Sulama kanallar\u0131n\u0131 a\u00e7arak toprak nemini %45-55 aral\u0131\u011f\u0131na y\u00fckselt"}, {"type": "climate", "target": "T\u00fcm sera", "priority": "medium", "recommendation": "Nem %64 ile hedefin alt\u0131nda, klima so\u011futmay\u0131 devre d\u0131\u015f\u0131 b\u0131rak"}, {"type": "monitor", "target": "T\u00fcm sera", "priority": "low", "recommendation": "Toprak nemi sens\u00f6r\u00fcn\u00fc 15 dk aral\u0131klarla izle"}], "actuator_commands": [{"id": "irrigation_channel_1", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}, {"id": "irrigation_channel_2", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}, {"id": "irrigation_channel_3", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}, {"id": "irrigation_channel_4", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}], "watch_items": ["Toprak Nemi", "Hava S\u0131cakl\u0131\u011f\u0131", "Nem"]}, "applied_actuator_commands": [{"id": "irrigation_channel_1", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_2", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_3", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat", "updated_at": "29 Haziran 2026, 00:33"}, {"id": "irrigation_channel_4", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat", "updated_at": "29 Haziran 2026, 00:33"}]}, "ui": {"provider_label": "OpenRouter", "model": "deepseek/deepseek-v4-flash", "risk_level": "critical", "summary": "Toprak nemi kritik seviyede (%35), sulama ba\u015flat\u0131lmal\u0131. Di\u011fer parametreler normal.", "queue": [{"title": "Sulama karar\u0131", "subject": "T\u00fcm sera", "confidence": 92, "recommendation": "Sulama kanallar\u0131n\u0131 a\u00e7arak toprak nemini %45-55 aral\u0131\u011f\u0131na y\u00fckselt", "priority": "high", "source": "openrouter"}, {"title": "\u0130klim karar\u0131", "subject": "T\u00fcm sera", "confidence": 78, "recommendation": "Nem %64 ile hedefin alt\u0131nda, klima so\u011futmay\u0131 devre d\u0131\u015f\u0131 b\u0131rak", "priority": "medium", "source": "openrouter"}, {"title": "\u0130zleme karar\u0131", "subject": "T\u00fcm sera", "confidence": 64, "recommendation": "Toprak nemi sens\u00f6r\u00fcn\u00fc 15 dk aral\u0131klarla izle", "priority": "low", "source": "openrouter"}], "history": [{"decision": "Sulama kanallar\u0131n\u0131 a\u00e7arak toprak nemini %45-55 aral\u0131\u011f\u0131na y\u00fckselt", "scope": "T\u00fcm sera", "confidence": 92, "impact": "Toprak nemi kritik seviyede (%35), sulama ba\u015flat\u0131lmal\u0131. Di\u011fer parametreler normal.", "state": "AI \u00f6nerisi"}, {"decision": "Nem %64 ile hedefin alt\u0131nda, klima so\u011futmay\u0131 devre d\u0131\u015f\u0131 b\u0131rak", "scope": "T\u00fcm sera", "confidence": 78, "impact": "Toprak nemi kritik seviyede (%35), sulama ba\u015flat\u0131lmal\u0131. Di\u011fer parametreler normal.", "state": "AI \u00f6nerisi"}, {"decision": "Toprak nemi sens\u00f6r\u00fcn\u00fc 15 dk aral\u0131klarla izle", "scope": "T\u00fcm sera", "confidence": 64, "impact": "Toprak nemi kritik seviyede (%35), sulama ba\u015flat\u0131lmal\u0131. Di\u011fer parametreler normal.", "state": "AI \u00f6nerisi"}], "watch_items": ["Toprak Nemi", "Hava S\u0131cakl\u0131\u011f\u0131", "Nem"], "actuator_commands": [{"id": "irrigation_channel_1", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}, {"id": "irrigation_channel_2", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}, {"id": "irrigation_channel_3", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}, {"id": "irrigation_channel_4", "action": "open", "reason": "Toprak nemi kritik, sulama ba\u015flat"}]}}