public async Task <IActionResult> GetFroniusData(bool update = false) { try { _logger?.LogDebug("GetFroniusData()..."); if (!_fronius.IsLocked) { return(StatusCode(StatusCodes.Status406NotAcceptable, "Locked: update not yet finished.")); } if (update) { var status = await _fronius.ReadAllAsync(); if (!status.IsGood) { return(StatusCode(StatusCodes.Status502BadGateway, status)); } } return(Ok(_fronius.Data)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task TestFroniusRead() { await _fronius.ReadAllAsync(); Assert.True(_fronius.Data.Status.IsGood); Assert.True(_fronius.CommonData.Status.IsGood); Assert.True(_fronius.InverterInfo.Status.IsGood); Assert.True(_fronius.LoggerInfo.Status.IsGood); Assert.True(_fronius.MinMaxData.Status.IsGood); Assert.True(_fronius.PhaseData.Status.IsGood); _logger?.LogInformation($"Fronius: {JsonConvert.SerializeObject(_fronius, Formatting.Indented)}"); }
/// <summary> /// Executes the startup operation. /// </summary> protected override async Task DoStartAsync() { try { // Update all data. _logger?.LogDebug("FroniusMonitor: DoStart..."); await _fronius?.ReadAllAsync(); await _hub.Clients.All.SendAsync("UpdateCommon", _fronius.CommonData); await _hub.Clients.All.SendAsync("UpdatePhase", _fronius.PhaseData); await _hub.Clients.All.SendAsync("UpdateInverter", _fronius.InverterInfo); await _hub.Clients.All.SendAsync("UpdateMinMax", _fronius.MinMaxData); await _hub.Clients.All.SendAsync("UpdateData", _fronius.Data); } catch (Exception ex) { _logger?.LogWarning(ex, "DoStartAsync: Exception"); } }