mirror of
https://github.com/boneIO-eu/esphome.git
synced 2026-04-10 20:50:02 +02:00
redesign of esphome repo
This commit is contained in:
131
packages/devices_v0_4/display.yaml
Normal file
131
packages/devices_v0_4/display.yaml
Normal file
@@ -0,0 +1,131 @@
|
||||
#i2c address: 0x3C input oled
|
||||
sensor:
|
||||
- platform: uptime
|
||||
id: wt32_uptime_seconds
|
||||
update_interval: 60s
|
||||
entity_category: diagnostic
|
||||
on_raw_value:
|
||||
then:
|
||||
- text_sensor.template.publish:
|
||||
id: wt32_uptime
|
||||
state: !lambda |-
|
||||
int seconds = round(id(wt32_uptime_seconds).raw_state);
|
||||
int days = seconds / (24 * 3600);
|
||||
seconds = seconds % (24 * 3600);
|
||||
int hours = seconds / 3600;
|
||||
seconds = seconds % 3600;
|
||||
int minutes = seconds / 60;
|
||||
return (
|
||||
(days ? to_string(days) + "d " : "") +
|
||||
(hours ? to_string(hours) + "h " : "") +
|
||||
(to_string(minutes) + "m")
|
||||
).c_str();
|
||||
|
||||
text_sensor:
|
||||
- platform: template
|
||||
name: Uptime
|
||||
id: wt32_uptime
|
||||
entity_category: diagnostic
|
||||
icon: mdi:clock-start
|
||||
- platform: template
|
||||
name: 'IP Address'
|
||||
id: ip_address
|
||||
entity_category: diagnostic
|
||||
icon: 'mdi:ip-network'
|
||||
lambda: |-
|
||||
return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str();
|
||||
update_interval: 60s
|
||||
|
||||
script:
|
||||
- id: screensaver_script
|
||||
# screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked
|
||||
mode: restart
|
||||
then:
|
||||
# set the time after which the screensaver will be activated
|
||||
- delay: 30s
|
||||
- display.page.show: screensaver
|
||||
- component.update: oled_display
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
priority: 0
|
||||
then:
|
||||
- display.page.show: first_page
|
||||
- component.update: ip_address
|
||||
- component.update: oled_display
|
||||
- script.execute: screensaver_script
|
||||
|
||||
binary_sensor:
|
||||
- platform: gpio
|
||||
entity_category: config
|
||||
id: boneIO_button
|
||||
pin:
|
||||
number: GPIO4
|
||||
mode:
|
||||
input: true
|
||||
pullup: true
|
||||
inverted: true
|
||||
on_press:
|
||||
then:
|
||||
# woke up when on the screensaver, as well do not include the logo page and screensaver in a loop when pushing a button
|
||||
- if:
|
||||
condition:
|
||||
# on the last page go to the first page skipping the screensaver and logo page
|
||||
display.is_displaying_page: last_page
|
||||
then:
|
||||
- display.page.show: first_page
|
||||
- component.update: oled_display
|
||||
else:
|
||||
- if:
|
||||
condition:
|
||||
# on the screensaver, show the logo for a while and display the first page
|
||||
display.is_displaying_page: screensaver
|
||||
then:
|
||||
- display.page.show: first_page
|
||||
- component.update: oled_display
|
||||
else:
|
||||
# not the last page and screensaver go to the next page
|
||||
- display.page.show_next: oled_display
|
||||
- component.update: oled_display
|
||||
# restart screensaver script
|
||||
- script.execute: screensaver_script
|
||||
|
||||
display:
|
||||
- platform: ssd1306_i2c
|
||||
id: oled_display
|
||||
model: "SH1106 128x64"
|
||||
address: 0x3C
|
||||
contrast: 0.5
|
||||
pages:
|
||||
- id: first_page
|
||||
lambda: |-
|
||||
it.rectangle(0, 0, 126, 15);
|
||||
it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO");
|
||||
it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:");
|
||||
it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str());
|
||||
it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:");
|
||||
it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str());
|
||||
it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:");
|
||||
it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state);
|
||||
# additional pages should be defined between the first and last page
|
||||
- id: last_page
|
||||
lambda: |-
|
||||
it.rectangle(0, 0, 126, 15);
|
||||
it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO");
|
||||
it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:");
|
||||
it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state);
|
||||
it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:");
|
||||
it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state);
|
||||
it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:");
|
||||
it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state);
|
||||
it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:");
|
||||
it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state);
|
||||
- id: screensaver
|
||||
lambda: |-
|
||||
it.fill(COLOR_OFF);
|
||||
|
||||
font:
|
||||
- file: 'gfonts://Ubuntu'
|
||||
id: size_10
|
||||
size: 10
|
||||
|
||||
6
packages/devices_v0_4/i2c.yaml
Normal file
6
packages/devices_v0_4/i2c.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
i2c:
|
||||
- id: i2c_bus
|
||||
sda: GPIO14
|
||||
scl: GPIO15
|
||||
scan: True
|
||||
frequency: 400kHz
|
||||
20
packages/devices_v0_4/ina219.yaml
Normal file
20
packages/devices_v0_4/ina219.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
sensor:
|
||||
# Module power consmption
|
||||
- platform: ina219
|
||||
address: 0x40
|
||||
shunt_resistance: 0.1 ohm
|
||||
current:
|
||||
id: ina_current
|
||||
name: 'INA219 Current'
|
||||
power:
|
||||
id: ina_power
|
||||
name: 'INA219 Power'
|
||||
bus_voltage:
|
||||
id: ina_bus_voltage
|
||||
name: 'INA219 Bus Voltage'
|
||||
shunt_voltage:
|
||||
id: ina_shunt_voltage
|
||||
name: 'INA219 Shunt Voltage'
|
||||
max_voltage: 32.0V
|
||||
max_current: 3.2A
|
||||
update_interval: 30s
|
||||
12
packages/devices_v0_4/lm75b.yaml
Normal file
12
packages/devices_v0_4/lm75b.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
#i2c address: 0x48 output lm75b temp
|
||||
#LM75B
|
||||
external_components:
|
||||
- source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75
|
||||
components: [lm75]
|
||||
|
||||
sensor:
|
||||
# Lower board temperature
|
||||
- platform: lm75
|
||||
id: boneIO_temp
|
||||
name: 'LM75B Temperature'
|
||||
update_interval: 30s
|
||||
13
packages/devices_v0_4/pcf.yaml
Normal file
13
packages/devices_v0_4/pcf.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
pcf8574:
|
||||
- id: 'pcf_right'
|
||||
address: 0x20
|
||||
pcf8575: true
|
||||
- id: 'pcf_left'
|
||||
address: 0x21
|
||||
pcf8575: true
|
||||
- id: 'pcf_inputs_1to16'
|
||||
address: 0x26
|
||||
pcf8575: true
|
||||
- id: 'pcf_inputs_17to32'
|
||||
address: 0x27
|
||||
pcf8575: true
|
||||
3
packages/devices_v0_4/time.yaml
Normal file
3
packages/devices_v0_4/time.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
time:
|
||||
- platform: ds1307
|
||||
id: ds1307_time
|
||||
Reference in New Issue
Block a user