← Apps
SMART FARM · CONTROL · SIMULATOR

Smart Irrigation
Simulator

ทดลอง controller cycle ของระบบให้น้ำหลายโซนจาก Measurement → Decision → Command Owner → Runtime → Feedback → Event เพื่อดูว่าเหตุใดระบบจึง Start, Continue, Block หรือเข้า Fault

DETERMINISTIC MODEL — NOT LIVE CONTROLSimulator นี้ไม่สั่ง Pump หรือ Valve จริง

ใช้ domain core เดียวกับ Smart Irrigation Project เพื่อทดสอบ policy และ failure behavior เท่านั้น Protection ทางไฟฟ้า, motor protection, dry-run protection และ physical interlock ต้องอยู่ในระบบจริงแยกต่างหาก

02 / CONTROLLER CYCLE

System state

Tick160 sec / tick
Tankavailablefresh
Owner beforenoneshared pump
Selected ownerzone-aselect-start-request
Owner afterzone-anext cycle
Desired pumpONsoil-policy
Desired valvezone-aevaluate
Observed feedbackunexpected-flowfresh
Timestamp14:00:00scenario clock
Events4session total
History1controller cycles
03 / ZONES

Decision และ runtime ต่อ Zone

Decision เกิดทุก Zone แต่มีเพียง owner ที่ได้ใช้ shared Pump ใน cycle นั้น

ZoneRequestSoilDecisionReasonOwnerRuntimeFault
zone-asoil-policy · evaluate26.0%startautomatic-start-thresholdOWNERwatering · start-watering—
zone-bsoil-policy · evaluate28.0%startautomatic-start-thresholdQUEUEDidle · idle-no-request—
04 / EVENT TIMELINE

เหตุผลที่ตรวจย้อนหลังได้

Event contract เก็บ decision, feedback, state transition และ command-owner change ต่อเนื่องทุก tick โดยใช้ machine-readable code

decisionzone-a · automatic-start-threshold{"action":"start","requestSource":"soil-policy","requestIntent":"evaluate","requestedAt":"2026-10-15T13:55:00Z","soilFreshness":"fresh"}
state-transitionzone-a · start-watering{"from":"idle","to":"watering","commandActive":true}
decisionzone-b · automatic-start-threshold{"action":"start","requestSource":"soil-policy","requestIntent":"evaluate","requestedAt":"2026-10-15T13:56:00Z","soilFreshness":"fresh"}
command-ownerzone-a · owner-acquired{"previousOwner":null,"nextOwner":"zone-a"}
05 / SESSION HISTORY

State progression หลาย tick

History สรุป owner, feedback และ runtime state ต่อ cycle เพื่อเทียบกับ event timeline และใช้ replay/regression ภายหลัง

TickTimeOwner beforeOwner afterFeedbackTankZone states
114:00:00nonezone-aunexpected-flowavailablezone-a:watering · zone-b:idle