pub async fn control_inverter( inverter: &mut dyn Inverter, config: &Config, monitor: &mut dyn Monitor, state: &Mutex<Option<State>>, esp_timeout: Duration, token: CancellationToken, )