Add cash display
This commit is contained in:
parent
234f5a5122
commit
d259ab2eb8
1 changed files with 84 additions and 0 deletions
84
cash.yaml
Normal file
84
cash.yaml
Normal file
|
@ -0,0 +1,84 @@
|
|||
# Hardware: https://docs.thingpulse.com/guides/espaper-plus-kit/
|
||||
#
|
||||
# Programming via serial requires a serial converter. To program, the device has to be put in a
|
||||
# programming mode. This is done by pressing the RESET (the rightmost) button while holding the
|
||||
# middle button. But after setting up esphome and the WiFi credentials you can just keep flashing
|
||||
# via OTA. After flashing via any method, you must do a manual reset.
|
||||
|
||||
# Epaper display that displays the amount of cash tracked by RevBank.
|
||||
|
||||
esphome:
|
||||
name: espaper
|
||||
friendly_name: Cash
|
||||
|
||||
esp8266:
|
||||
board: nodemcu
|
||||
|
||||
|
||||
logger:
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
ota:
|
||||
platform: esphome
|
||||
password: !secret ota_password
|
||||
|
||||
mqtt:
|
||||
broker: !secret mqtt_server
|
||||
|
||||
sensor:
|
||||
- platform: wifi_signal
|
||||
name: "WiFi Signal dB"
|
||||
update_interval: 10s
|
||||
state_topic: bitlair/esphome/spacestate-bitlair/wifi_signal
|
||||
retain: false
|
||||
- platform: mqtt_subscribe
|
||||
id: cash
|
||||
topic: bitlair/bank/cash
|
||||
on_value:
|
||||
then:
|
||||
- component.update: epaper
|
||||
|
||||
text_sensor:
|
||||
- platform: version
|
||||
name: "ESPHome Version"
|
||||
hide_timestamp: true
|
||||
state_topic: bitlair/esphome/cash/version
|
||||
|
||||
font:
|
||||
- file: "gfonts://Roboto"
|
||||
id: font_label
|
||||
size: 32
|
||||
- file: "gfonts://Roboto"
|
||||
id: font_cash
|
||||
size: 56
|
||||
|
||||
spi:
|
||||
clk_pin: 14
|
||||
mosi_pin: 13
|
||||
|
||||
display:
|
||||
- platform: waveshare_epaper
|
||||
id: epaper
|
||||
model: 2.90in
|
||||
cs_pin: 15
|
||||
dc_pin: 5
|
||||
busy_pin: 4
|
||||
reset_pin: 2
|
||||
update_interval: 60s
|
||||
rotation: 270
|
||||
lambda: |-
|
||||
char label[32];
|
||||
snprintf(label, sizeof(label), "geld in kas");
|
||||
int label_w, label_h, _;
|
||||
const int label_y = 10;
|
||||
id(font_label).measure(label, &label_w, &_, &_, &label_h);
|
||||
it.printf(it.get_width()/2 - label_w/2, label_y, id(font_label), "%s", label);
|
||||
|
||||
char cash_str[16];
|
||||
snprintf(cash_str, sizeof(cash_str), "€ %.02f", id(cash).state);
|
||||
int cash_w;
|
||||
id(font_cash).measure(cash_str, &cash_w, &_, &_, &_);
|
||||
it.printf(it.get_width()/2 - cash_w/2, label_y+label_h+2, id(font_cash), "%s", cash_str);
|
Loading…
Add table
Add a link
Reference in a new issue