{"service":"HALOWERK solarwerk","endpoint":"/autonomy-forecast","method":"POST","content_type":"application/json","inputSchema":{"type":"object","required":["battery","loads"],"additionalProperties":false,"properties":{"battery":{"type":"object","required":["soc_percent"],"additionalProperties":false,"properties":{"capacity_wh":{"type":"number","minimum":10,"maximum":10000000},"capacity_ah":{"type":"number","minimum":1,"maximum":100000},"nominal_voltage_v":{"type":"number","minimum":6,"maximum":1000,"default":12},"soc_percent":{"type":"number","minimum":0,"maximum":100},"reserve_soc_percent":{"type":"number","minimum":0,"maximum":90,"default":20,"description":"Floor not to be crossed."}}},"loads":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"object","required":["name","watts"],"additionalProperties":false,"properties":{"name":{"type":"string"},"watts":{"type":"number","minimum":0,"maximum":50000},"hours_per_day":{"type":"number","minimum":0,"maximum":24,"default":24},"dc":{"type":"boolean","default":false,"description":"True for loads fed straight from the battery."}}}},"inverter":{"type":"object","additionalProperties":false,"properties":{"efficiency":{"type":"number","minimum":0.5,"maximum":1,"default":0.9},"idle_w":{"type":"number","minimum":0,"maximum":500,"default":15},"hours_powered_per_day":{"type":"number","minimum":0,"maximum":24,"default":24}}},"daily_solar_input_wh":{"type":"number","minimum":0,"maximum":1000000,"default":0,"description":"Expected harvest per day."}}},"requestExample":{"battery":{"capacity_wh":2400,"soc_percent":80,"reserve_soc_percent":20},"loads":[{"name":"router","watts":10,"hours_per_day":24,"dc":true}],"daily_solar_input_wh":300},"operations":[{"method":"POST","inputSchema":{"type":"object","required":["battery","loads"],"additionalProperties":false,"properties":{"battery":{"type":"object","required":["soc_percent"],"additionalProperties":false,"properties":{"capacity_wh":{"type":"number","minimum":10,"maximum":10000000},"capacity_ah":{"type":"number","minimum":1,"maximum":100000},"nominal_voltage_v":{"type":"number","minimum":6,"maximum":1000,"default":12},"soc_percent":{"type":"number","minimum":0,"maximum":100},"reserve_soc_percent":{"type":"number","minimum":0,"maximum":90,"default":20,"description":"Floor not to be crossed."}}},"loads":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"object","required":["name","watts"],"additionalProperties":false,"properties":{"name":{"type":"string"},"watts":{"type":"number","minimum":0,"maximum":50000},"hours_per_day":{"type":"number","minimum":0,"maximum":24,"default":24},"dc":{"type":"boolean","default":false,"description":"True for loads fed straight from the battery."}}}},"inverter":{"type":"object","additionalProperties":false,"properties":{"efficiency":{"type":"number","minimum":0.5,"maximum":1,"default":0.9},"idle_w":{"type":"number","minimum":0,"maximum":500,"default":15},"hours_powered_per_day":{"type":"number","minimum":0,"maximum":24,"default":24}}},"daily_solar_input_wh":{"type":"number","minimum":0,"maximum":1000000,"default":0,"description":"Expected harvest per day."}}},"requestExample":{"battery":{"capacity_wh":2400,"soc_percent":80,"reserve_soc_percent":20},"loads":[{"name":"router","watts":10,"hours_per_day":24,"dc":true}],"daily_solar_input_wh":300}}],"example_request":{"battery":{"capacity_wh":2400,"soc_percent":80,"reserve_soc_percent":20},"loads":[{"name":"router","watts":10,"hours_per_day":24,"dc":true}],"daily_solar_input_wh":300},"serviceName":"offgrid_autonomy","tags":["off-grid","battery","planning"],"outputSchema":{"type":"object"},"outputExample":{"battery":{"capacity_wh":2400,"soc_percent":80,"reserve_soc_percent":20,"available_wh":1440},"loads":[{"name":"router","watts":10,"hours_per_day":24,"dc":true,"battery_wh_per_day":240}],"inverter_idle_wh_per_day":360,"consumption_wh_per_day":600,"mean_load_w":25,"solar_input_wh_per_day":300,"daily_balance_wh":-300,"hours_to_reserve_without_input":57.6,"days_to_reserve_at_stated_input":4.8,"sustainable":false,"required_daily_input_wh":600,"input_shortfall_wh_per_day":300,"extra_capacity_needed_wh_for_3_days":0,"unavailable_fields":[],"assumptions":["Solar input is caller data in watt-hours per day; no weather source is used.","Time to empty means time to the reserve floor, not to zero.","Conversion efficiency and idle draw apply to AC loads only.","Ageing, temperature and Peukert effects are not modelled."],"method":"daily energy balance and straight run-down between state of charge and reserve"}}