Update display network status icons
This commit is contained in:
+37
-19
@@ -29,6 +29,7 @@ wifi:
|
|||||||
- ssid: "Moppelkotze"
|
- ssid: "Moppelkotze"
|
||||||
password: !secret moppelkotze_psk
|
password: !secret moppelkotze_psk
|
||||||
priority: 5
|
priority: 5
|
||||||
|
use_address: 192.168.126.250
|
||||||
on_connect:
|
on_connect:
|
||||||
- lambda: id(wifi_connected) = true;
|
- lambda: id(wifi_connected) = true;
|
||||||
on_disconnect:
|
on_disconnect:
|
||||||
@@ -124,29 +125,46 @@ display:
|
|||||||
it.fill(Color::BLACK);
|
it.fill(Color::BLACK);
|
||||||
|
|
||||||
if (id(sntp_time).now().is_valid()) {
|
if (id(sntp_time).now().is_valid()) {
|
||||||
it.strftime(284, 10, id(font_small), Color::WHITE, TextAlign::TOP_RIGHT,
|
it.strftime(260, 10, id(font_small), Color::WHITE, TextAlign::TOP_RIGHT,
|
||||||
"%H:%M", id(sntp_time).now());
|
"%H:%M", id(sntp_time).now());
|
||||||
} else {
|
} else {
|
||||||
it.printf(284, 10, id(font_small), Color::WHITE, TextAlign::TOP_RIGHT, "--:--");
|
it.printf(260, 10, id(font_small), Color::WHITE, TextAlign::TOP_RIGHT, "--:--");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Four bars show RSSI quality; a crossed outline means Wi-Fi is disconnected.
|
// The WireGuard key reflects the remote peer status.
|
||||||
if (id(wifi_connected)) {
|
const bool wireguard_online = id(energymonitor_wireguard).is_peer_up();
|
||||||
int bars = 1;
|
const Color wireguard_color = wireguard_online ? Color(64, 255, 64) : Color(255, 80, 80);
|
||||||
if (id(wifi_rssi).has_state()) {
|
it.circle(270, 15, 5, wireguard_color);
|
||||||
const float rssi = id(wifi_rssi).state;
|
it.line(274, 19, 284, 29, wireguard_color);
|
||||||
bars = rssi >= -55 ? 4 : rssi >= -67 ? 3 : rssi >= -75 ? 2 : 1;
|
it.line(279, 24, 282, 21, wireguard_color);
|
||||||
}
|
it.line(282, 27, 285, 24, wireguard_color);
|
||||||
for (int index = 0; index < 4; index++) {
|
if (!wireguard_online) {
|
||||||
const int height = 5 + index * 5;
|
it.line(265, 30, 285, 10, wireguard_color);
|
||||||
const Color color = index < bars ? Color(64, 255, 64) : Color(48, 48, 48);
|
}
|
||||||
it.filled_rectangle(290 + index * 5, 30 - height, 3, height, color);
|
|
||||||
}
|
// A radio-wave Wi-Fi symbol shows RSSI quality; a red slash means disconnected.
|
||||||
} else {
|
const bool wifi_online = id(wifi_connected);
|
||||||
const Color disconnected_color = Color(255, 80, 80);
|
int wifi_bars = 1;
|
||||||
it.rectangle(290, 10, 19, 19, disconnected_color);
|
if (wifi_online && id(wifi_rssi).has_state()) {
|
||||||
it.line(290, 10, 308, 28, disconnected_color);
|
const float rssi = id(wifi_rssi).state;
|
||||||
it.line(308, 10, 290, 28, disconnected_color);
|
wifi_bars = rssi >= -55 ? 4 : rssi >= -67 ? 3 : rssi >= -75 ? 2 : 1;
|
||||||
|
}
|
||||||
|
const Color wifi_color = wifi_online ? Color(64, 255, 64) : Color(255, 80, 80);
|
||||||
|
it.filled_circle(299, 28, 2, wifi_color);
|
||||||
|
if (wifi_bars >= 2 || !wifi_online) {
|
||||||
|
it.line(296, 25, 299, 22, wifi_color);
|
||||||
|
it.line(299, 22, 302, 25, wifi_color);
|
||||||
|
}
|
||||||
|
if (wifi_bars >= 3 || !wifi_online) {
|
||||||
|
it.line(293, 23, 299, 17, wifi_color);
|
||||||
|
it.line(299, 17, 305, 23, wifi_color);
|
||||||
|
}
|
||||||
|
if (wifi_bars >= 4 || !wifi_online) {
|
||||||
|
it.line(290, 20, 299, 12, wifi_color);
|
||||||
|
it.line(299, 12, 308, 20, wifi_color);
|
||||||
|
}
|
||||||
|
if (!wifi_online) {
|
||||||
|
it.line(290, 30, 308, 12, wifi_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id(page_index) == 0) {
|
if (id(page_index) == 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user