New panel design
This commit is contained in:
1 parent
face2432e4
commit
b5d6b4a897
30 files changed
+4540
-171
No files matched your search
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Home Assistant REST transport (device only).
|
||||
*
|
||||
* Everything ESP-IDF-specific about talking to HA lives here; parsing and
|
||||
* presentation are in ha_data.c, which the desktop simulator also compiles.
|
||||
*
|
||||
* Plain HTTP on the LAN, deliberately. The Ambient Weather cloud client needs
|
||||
* TLS and pays a multi-second handshake for it; this talks to a box on the
|
||||
* same switch, and the token is not worth a handshake inside the window where
|
||||
* the UI is frozen. Do not point this at an https:// HA instance without
|
||||
* revisiting that trade-off.
|
||||
*/
|
||||
#ifndef HA_CLIENT_H
|
||||
#define HA_CLIENT_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "esp_err.h"
|
||||
|
||||
#include "ha_data.h"
|
||||
|
||||
/* Validates configuration. Does not open a connection. */
|
||||
esp_err_t ha_client_init(void);
|
||||
|
||||
/*
|
||||
* One request for every sensor, light and sun time (~400 bytes). Leaves
|
||||
* data->forecast alone -- see ha_fetch_forecast().
|
||||
*
|
||||
* Blocks for the round trip, so callers pause LVGL around it.
|
||||
*/
|
||||
esp_err_t ha_fetch_state(ha_data_t *data);
|
||||
|
||||
/*
|
||||
* Fills data->forecast. A separate, slower poll: the forecast is a service
|
||||
* call rather than a template render, and it changes hourly at most.
|
||||
*/
|
||||
esp_err_t ha_fetch_forecast(ha_data_t *data);
|
||||
|
||||
/*
|
||||
* Turn a light on or off. `index` indexes HA_LIGHTS; `brightness` is 0-255,
|
||||
* or -1 to leave the level alone (and always for switch-domain entities).
|
||||
*
|
||||
* Blocks. Must not be called from the LVGL task -- see ui_set_light_cb().
|
||||
*/
|
||||
esp_err_t ha_light_command(int index, bool on, int16_t brightness);
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user