Commit graph

5 commits

Author SHA1 Message Date
Paul van Tilburg ddcb375345
Introduce an error type for services
As a result, services don't always have to provide a `reqwest::Error`
but also return other errors. The error variant `Error::NotAuthorized`
in particular specifies that requests are not or no longer allowed and a
login should be (re)attempted. This way, services can indicate that it
is in this state and not have to provided a 403 status code
`reqwest::Error` to show this.

Add a depend on the `thiserror` crate for this.
2023-01-15 16:31:37 +01:00
Paul van Tilburg d787c8b3ab
Fix issue in Hoymiles where total energy decreases
Sometimes it can be that `today_eq` is reset when the day switches but
it has not been added to `total_eq` yet. The `total_eq` should always be
non-decreasing, so return the last known value until this is corrected
(this most suredly happens during the night).

Also, allow for `login` and `update` to mutate the state of the service
to be able to update things like the last known total produced energy
value.
2023-01-15 13:41:40 +01:00
Paul van Tilburg b1dfea651f
Add first version of the Hoymiles service 2023-01-10 15:38:24 +01:00
Paul van Tilburg 3690647c76 Add service-specific configuration
Switch to a section/table for the service to make it easier.
2023-01-09 21:25:35 +01:00
Paul van Tilburg 87394f9fb9 Add service implementation; split off My Autarco support 2023-01-09 21:23:43 +01:00