{"service":"HALOWERK solarwerk","endpoint":"/battery-cycle","method":"POST","content_type":"application/json","inputSchema":{"type":"object","required":["samples"],"additionalProperties":false,"properties":{"samples":{"type":"array","minItems":3,"maxItems":5000,"items":{"type":"object","required":["t_s","voltage_v","current_a"],"additionalProperties":false,"properties":{"t_s":{"type":"number","minimum":0,"maximum":100000000,"description":"Seconds since series start, strictly increasing."},"voltage_v":{"type":"number","minimum":0,"maximum":1000,"description":"Pack voltage."},"current_a":{"type":"number","minimum":-2000,"maximum":2000,"description":"Positive charging, negative discharging."},"temperature_c":{"type":"number","minimum":-60,"maximum":120}}}},"cells_in_series":{"type":"integer","minimum":1,"maximum":64,"default":4},"nominal_capacity_ah":{"type":"number","minimum":0.1,"maximum":10000},"rest_current_a":{"type":"number","minimum":0,"maximum":100,"default":0.5,"description":"Below this absolute current a sample counts as resting."},"max_gap_seconds":{"type":"number","minimum":1,"maximum":86400,"default":300}}},"requestExample":{"samples":[{"t_s":0,"voltage_v":13.2,"current_a":0},{"t_s":60,"voltage_v":13.1,"current_a":-5},{"t_s":120,"voltage_v":13,"current_a":-5}],"cells_in_series":4,"nominal_capacity_ah":100},"operations":[{"method":"POST","inputSchema":{"type":"object","required":["samples"],"additionalProperties":false,"properties":{"samples":{"type":"array","minItems":3,"maxItems":5000,"items":{"type":"object","required":["t_s","voltage_v","current_a"],"additionalProperties":false,"properties":{"t_s":{"type":"number","minimum":0,"maximum":100000000,"description":"Seconds since series start, strictly increasing."},"voltage_v":{"type":"number","minimum":0,"maximum":1000,"description":"Pack voltage."},"current_a":{"type":"number","minimum":-2000,"maximum":2000,"description":"Positive charging, negative discharging."},"temperature_c":{"type":"number","minimum":-60,"maximum":120}}}},"cells_in_series":{"type":"integer","minimum":1,"maximum":64,"default":4},"nominal_capacity_ah":{"type":"number","minimum":0.1,"maximum":10000},"rest_current_a":{"type":"number","minimum":0,"maximum":100,"default":0.5,"description":"Below this absolute current a sample counts as resting."},"max_gap_seconds":{"type":"number","minimum":1,"maximum":86400,"default":300}}},"requestExample":{"samples":[{"t_s":0,"voltage_v":13.2,"current_a":0},{"t_s":60,"voltage_v":13.1,"current_a":-5},{"t_s":120,"voltage_v":13,"current_a":-5}],"cells_in_series":4,"nominal_capacity_ah":100}}],"example_request":{"samples":[{"t_s":0,"voltage_v":13.2,"current_a":0},{"t_s":60,"voltage_v":13.1,"current_a":-5},{"t_s":120,"voltage_v":13,"current_a":-5}],"cells_in_series":4,"nominal_capacity_ah":100},"serviceName":"lifepo4_cycle_analysis","tags":["off-grid","battery","lifepo4"],"outputSchema":{"type":"object"},"outputExample":{"samples_used":3,"duration_s":120,"intervals_excluded":0,"charge_ah":0,"discharge_ah":0.125,"charge_energy_wh":0,"discharge_energy_wh":1.64,"coulombic_efficiency_percent":null,"energy_efficiency_percent":null,"measured_capacity_ah":0.125,"capacity_vs_nominal_percent":0.1,"pack_voltage_v":{"min":13,"max":13.2},"cell_voltage_v":{"min":3.25,"max":3.3},"current_a":{"min":-5,"max":0},"mean_c_rate":0.033,"internal_resistance_ohm_estimate":null,"internal_resistance_basis":null,"soc_from_rest_voltage_percent":60,"soc_uncertainty_percent":20,"rest_sample_used":{"t_s":0,"voltage_v":13.2},"temperature_c":null,"unavailable_fields":["internal_resistance_ohm_estimate","cell_imbalance"],"warnings":[],"limits":["Trapezoidal integration; accuracy follows the sampling interval.","Internal resistance is a rough estimate from one current step, not a defined-condition measurement.","Cell imbalance cannot be derived from a pack voltage and is not reported."],"method":"trapezoidal integration of current and power, LiFePO4 open-circuit voltage table for resting state of charge"}}