Files
esphome/cover_32x10A_board.yaml
Kamil_B ef59911856 Update cover_32x10A_board.yaml
nowy config dla rolet
2022-09-07 21:22:30 +02:00

1291 lines
29 KiB
YAML

esphome:
name: cover-board-v0-1
esp32:
board: esp32dev
framework:
type: arduino
external_components:
- source: github://ell249/esphome-PCT2075@master
components: [ pct2075 ]
ethernet:
id: eth
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO16
i2c:
sda: GPIO14
scl: GPIO15
scan: True
frequency: 100kHz
logger:
baud_rate: 0
api:
ota:
web_server:
port: 80
time:
- platform: ds1307
id: ds1307_time
- platform: homeassistant
# instead try to synchronize via network repeatedly ...
on_time_sync:
then:
# ... and update the RTC when the synchronization was successful
ds1307.write_time:
mcp23017:
- id: 'mcp_1'
address: 0x26
- id: 'mcp_2'
address: 0x27
- id: 'mcp_3'
address: 0x21
- id: 'mcp_4'
address: 0x20
uart:
id: modbus_serial
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 9600
stop_bits: 1
#modbus:
#flow_control_pin: 5
#id: modbus1
#uart_id: modbus_serial
#modbus_controller:
# - id: edpbox
# update_interval: 31s
# address: 0x1
# command_throttle: 150ms
# setup_priority: -10
switch:
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 0
mode: OUTPUT
inverted: false
id: relay1
interlock: &interlock_1 [relay1, relay2]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 1
mode: OUTPUT
inverted: false
id: relay2
interlock: *interlock_1
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 2
mode: OUTPUT
inverted: false
id: relay3
interlock: &interlock_2 [relay3, relay4]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 3
mode: OUTPUT
inverted: false
id: relay4
interlock: *interlock_2
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 4
mode: OUTPUT
inverted: false
id: relay5
interlock: &interlock_3 [relay5, relay6]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 5
mode: OUTPUT
inverted: false
id: relay6
interlock: *interlock_3
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 6
mode: OUTPUT
inverted: false
id: relay7
interlock: &interlock_4 [relay7, relay8]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 7
mode: OUTPUT
inverted: false
id: relay8
interlock: *interlock_4
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 8
mode: OUTPUT
inverted: false
id: relay9
interlock: &interlock_5 [relay9, relay10]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 9
mode: OUTPUT
inverted: false
id: relay10
interlock: *interlock_5
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 10
mode: OUTPUT
inverted: false
id: relay11
interlock: &interlock_6 [relay11, relay12]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 11
mode: OUTPUT
inverted: false
id: relay12
interlock: *interlock_6
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 12
mode: OUTPUT
inverted: false
id: relay13
interlock: &interlock_7 [relay13, relay14]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 13
mode: OUTPUT
inverted: false
id: relay14
interlock: *interlock_7
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 14
mode: OUTPUT
inverted: false
id: relay15
interlock: &interlock_8 [relay15, relay16]
- platform: gpio
pin:
mcp23xxx: mcp_3
number: 15
mode: OUTPUT
inverted: false
id: relay16
interlock: *interlock_8
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 0
mode: OUTPUT
inverted: false
id: relay17
interlock: &interlock_9 [relay17, relay18]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 1
mode: OUTPUT
inverted: false
id: relay18
interlock: *interlock_9
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 2
mode: OUTPUT
inverted: false
id: relay19
interlock: &interlock_10 [relay19, relay20]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 3
mode: OUTPUT
inverted: false
id: relay20
interlock: *interlock_10
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 4
mode: OUTPUT
inverted: false
id: relay21
interlock: &interlock_11 [relay21, relay22]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 5
mode: OUTPUT
inverted: false
id: relay22
interlock: *interlock_11
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 6
mode: OUTPUT
inverted: false
id: relay23
interlock: &interlock_12 [relay23, relay24]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 7
mode: OUTPUT
inverted: false
id: relay24
interlock: *interlock_12
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 8
mode: OUTPUT
inverted: false
id: relay25
interlock: &interlock_13 [relay25, relay26]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 9
mode: OUTPUT
inverted: false
id: relay26
interlock: *interlock_13
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 10
mode: OUTPUT
inverted: false
id: relay27
interlock: &interlock_14 [relay27, relay28]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 11
mode: OUTPUT
inverted: false
id: relay28
interlock: *interlock_14
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 12
mode: OUTPUT
inverted: false
id: relay29
interlock: &interlock_15 [relay29, relay30]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 13
mode: OUTPUT
inverted: false
id: relay30
interlock: *interlock_15
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 14
mode: OUTPUT
inverted: false
id: relay31
interlock: &interlock_16 [relay31, relay32]
- platform: gpio
pin:
mcp23xxx: mcp_4
number: 15
mode: OUTPUT
inverted: false
id: relay32
interlock: *interlock_16
cover:
- platform: time_based
name: "Cover_01"
id: cover_01
assumed_state: false
open_action:
- switch.turn_on: relay1
open_duration: 30s
close_action:
- switch.turn_on: relay2
close_duration: 30s
stop_action:
- switch.turn_off: relay1
- switch.turn_off: relay2
- platform: time_based
name: "Cover_02"
id: cover_02
assumed_state: false
open_action:
- switch.turn_on: relay3
open_duration: 30s
close_action:
- switch.turn_on: relay4
close_duration: 30s
stop_action:
- switch.turn_off: relay3
- switch.turn_off: relay4
- platform: time_based
name: "Cover_03"
id: cover_03
assumed_state: false
open_action:
- switch.turn_on: relay5
open_duration: 30s
close_action:
- switch.turn_on: relay6
close_duration: 30s
stop_action:
- switch.turn_off: relay5
- switch.turn_off: relay6
- platform: time_based
name: "Cover_04"
id: cover_04
assumed_state: false
open_action:
- switch.turn_on: relay7
open_duration: 30s
close_action:
- switch.turn_on: relay8
close_duration: 30s
stop_action:
- switch.turn_off: relay7
- switch.turn_off: relay8
- platform: time_based
name: "Cover_05"
id: cover_05
assumed_state: false
open_action:
- switch.turn_on: relay9
open_duration: 30s
close_action:
- switch.turn_on: relay10
close_duration: 30s
stop_action:
- switch.turn_off: relay9
- switch.turn_off: relay10
- platform: time_based
name: "Cover_06"
id: cover_06
assumed_state: false
open_action:
- switch.turn_on: relay11
open_duration: 30s
close_action:
- switch.turn_on: relay12
close_duration: 30s
stop_action:
- switch.turn_off: relay11
- switch.turn_off: relay12
- platform: time_based
name: "Cover_07"
id: cover_07
assumed_state: false
open_action:
- switch.turn_on: relay13
open_duration: 30s
close_action:
- switch.turn_on: relay14
close_duration: 30s
stop_action:
- switch.turn_off: relay13
- switch.turn_off: relay14
- platform: time_based
name: "Cover_08"
id: cover_08
assumed_state: false
open_action:
- switch.turn_on: relay15
open_duration: 30s
close_action:
- switch.turn_on: relay16
close_duration: 30s
stop_action:
- switch.turn_off: relay15
- switch.turn_off: relay16
- platform: time_based
name: "Cover_09"
id: cover_09
assumed_state: false
open_action:
- switch.turn_on: relay17
open_duration: 30s
close_action:
- switch.turn_on: relay18
close_duration: 30s
stop_action:
- switch.turn_off: relay17
- switch.turn_off: relay18
- platform: time_based
name: "Cover_10"
id: cover_10
assumed_state: false
open_action:
- switch.turn_on: relay19
open_duration: 30s
close_action:
- switch.turn_on: relay20
close_duration: 30s
stop_action:
- switch.turn_off: relay19
- switch.turn_off: relay20
- platform: time_based
name: "Cover_11"
id: cover_11
assumed_state: false
open_action:
- switch.turn_on: relay21
open_duration: 30s
close_action:
- switch.turn_on: relay22
close_duration: 30s
stop_action:
- switch.turn_off: relay21
- switch.turn_off: relay22
- platform: time_based
name: "Cover_12"
id: cover_12
assumed_state: false
open_action:
- switch.turn_on: relay23
open_duration: 35s
close_action:
- switch.turn_on: relay24
close_duration: 29s
stop_action:
- switch.turn_off: relay23
- switch.turn_off: relay24
- platform: time_based
name: "Cover_13"
id: cover_13
assumed_state: false
open_action:
- switch.turn_on: relay25
open_duration: 35s
close_action:
- switch.turn_on: relay26
close_duration: 29s
stop_action:
- switch.turn_off: relay25
- switch.turn_off: relay26
- platform: time_based
name: "Cover_14"
id: cover_14
assumed_state: false
open_action:
- switch.turn_on: relay27
open_duration: 35s
close_action:
- switch.turn_on: relay28
close_duration: 29s
stop_action:
- switch.turn_off: relay27
- switch.turn_off: relay28
- platform: time_based
name: "Cover_15"
id: cover_15
assumed_state: false
open_action:
- switch.turn_on: relay29
open_duration: 35s
close_action:
- switch.turn_on: relay30
close_duration: 29s
stop_action:
- switch.turn_off: relay29
- switch.turn_off: relay30
- platform: time_based
name: "Cover_16"
id: cover_16
assumed_state: false
open_action:
- switch.turn_on: relay31
open_duration: 17s
close_action:
- switch.turn_on: relay32
close_duration: 14s
stop_action:
- switch.turn_off: relay31
- switch.turn_off: relay32
binary_sensor:
- platform: gpio
name: "IN_01"
pin:
mcp23xxx: mcp_1
number: 0
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_01
on_release:
cover.stop: cover_01
- platform: gpio
name: "IN_02"
pin:
mcp23xxx: mcp_1
number: 1
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_01
on_release:
cover.stop: cover_01
- platform: gpio
name: "IN_03"
pin:
mcp23xxx: mcp_1
number: 2
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_02
on_release:
cover.stop: cover_02
- platform: gpio
name: "IN_04"
pin:
mcp23xxx: mcp_1
number: 3
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_02
on_release:
cover.stop: cover_02
- platform: gpio
name: "IN_05"
pin:
mcp23xxx: mcp_1
number: 4
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_03
on_release:
cover.stop: cover_03
- platform: gpio
name: "IN_06"
pin:
mcp23xxx: mcp_1
number: 5
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_03
on_release:
cover.stop: cover_03
- platform: gpio
name: "IN_07"
pin:
mcp23xxx: mcp_1
number: 6
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_04
on_release:
cover.stop: cover_04
- platform: gpio
name: "IN_08"
pin:
mcp23xxx: mcp_1
number: 7
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_04
on_release:
cover.stop: cover_04
- platform: gpio
name: "IN_09"
pin:
mcp23xxx: mcp_1
number: 8
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_05
on_release:
cover.stop: cover_05
- platform: gpio
name: "IN_10"
pin:
mcp23xxx: mcp_1
number: 9
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_05
on_release:
cover.stop: cover_05
- platform: gpio
name: "IN_11"
pin:
mcp23xxx: mcp_1
number: 10
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_06
on_release:
cover.stop: cover_06
- platform: gpio
name: "IN_12"
pin:
mcp23xxx: mcp_1
number: 11
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_06
on_release:
cover.stop: cover_06
- platform: gpio
name: "IN_13"
pin:
mcp23xxx: mcp_1
number: 12
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_07
on_release:
cover.stop: cover_07
- platform: gpio
name: "IN_14"
pin:
mcp23xxx: mcp_1
number: 13
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_07
on_release:
cover.stop: cover_07
- platform: gpio
name: "IN_15"
pin:
mcp23xxx: mcp_1
number: 14
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_08
on_release:
cover.stop: cover_08
- platform: gpio
name: "IN_16"
pin:
mcp23xxx: mcp_1
number: 15
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_08
on_release:
cover.stop: cover_08
- platform: gpio
name: "IN_17"
pin:
mcp23xxx: mcp_2
number: 7
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_09
on_release:
cover.stop: cover_09
- platform: gpio
name: "IN_18"
pin:
mcp23xxx: mcp_2
number: 6
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_09
on_release:
cover.stop: cover_09
- platform: gpio
name: "IN_19"
pin:
mcp23xxx: mcp_2
number: 5
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_10
on_release:
cover.stop: cover_10
- platform: gpio
name: "IN_20"
pin:
mcp23xxx: mcp_2
number: 4
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_10
on_release:
cover.stop: cover_10
- platform: gpio
name: "IN_21"
pin:
mcp23xxx: mcp_2
number: 3
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_11
on_release:
cover.stop: cover_11
- platform: gpio
name: "IN_22"
pin:
mcp23xxx: mcp_2
number: 2
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_11
on_release:
cover.stop: cover_11
- platform: gpio
name: "IN_23"
pin:
mcp23xxx: mcp_2
number: 1
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.open: cover_12
on_release:
cover.stop: cover_12
- platform: gpio
name: "IN_24"
pin:
mcp23xxx: mcp_2
number: 0
mode:
input: true
pullup: false
inverted: true
on_press:
then:
cover.close: cover_12
on_release:
cover.stop: cover_12
- platform: gpio
name: "IN_25"
pin:
mcp23xxx: mcp_2
number: 8
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_13).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_13).is_fully_closed()) {
id(cover_13).open();
} else {
id(cover_13).open();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_13).stop();
}
# cover.open: cover_13
# on_release:
# cover.stop: cover_13
- platform: gpio
name: "IN_26"
pin:
mcp23xxx: mcp_2
number: 9
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_13).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_13).is_fully_closed()) {
id(cover_13).open();
} else {
id(cover_13).close();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_13).stop();
}
# cover.close: cover_13
# on_release:
# cover.stop: cover_13
- platform: gpio
name: "IN_27"
pin:
mcp23xxx: mcp_2
number: 10
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_14).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_14).is_fully_closed()) {
id(cover_14).open();
} else {
id(cover_14).open();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_14).stop();
}
# cover.open: cover_14
# on_release:
# cover.stop: cover_14
- platform: gpio
name: "IN_28"
pin:
mcp23xxx: mcp_2
number: 11
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_14).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_14).is_fully_closed()) {
id(cover_14).open();
} else {
id(cover_14).close();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_14).stop();
}
# cover.close: cover_14
# on_release:
# cover.stop: cover_14
- platform: gpio
name: "IN_29"
pin:
mcp23xxx: mcp_2
number: 12
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_15).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_15).is_fully_closed()) {
id(cover_15).open();
} else {
id(cover_15).open();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_15).stop();
}
# cover.open: cover_15
# on_release:
# cover.stop: cover_15
- platform: gpio
name: "IN_30"
pin:
mcp23xxx: mcp_2
number: 13
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_15).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_15).is_fully_closed()) {
id(cover_15).open();
} else {
id(cover_15).close();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_15).stop();
}
# cover.close: cover_15
# on_release:
# cover.stop: cover_15
- platform: gpio
name: "IN_31"
pin:
mcp23xxx: mcp_2
number: 14
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_16).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_16).is_fully_closed()) {
id(cover_16).open();
} else {
id(cover_16).open();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_16).stop();
}
# - cover.toggle: cover_16
# else:
# - cover.stop: cover_16
- platform: gpio
name: "IN_32"
pin:
mcp23xxx: mcp_2
number: 15
mode:
input: true
pullup: false
inverted: true
on_press:
then:
# logic for cycling through movements: open->stop->close->stop->...
- lambda: |
if (id(cover_16).current_operation == COVER_OPERATION_IDLE) {
// Cover is idle, check current state and either open or close cover.
if (id(cover_16).is_fully_closed()) {
id(cover_16).open();
} else {
id(cover_16).close();
}
} else {
// Cover is opening/closing. Stop it.
id(cover_16).stop();
}
# - cover.toggle: cover_16
# - cover.stop: cover_16
- platform: gpio
name: "IN_33"
pin:
number: GPIO33
mode:
input: true
pullup: false
inverted: true
- platform: gpio
name: "IN_34"
pin:
number: GPIO17
mode:
input: true
pullup: false
inverted: true
- platform: gpio
name: "IN_35"
pin:
number: GPIO12
mode:
input: true
pullup: true
inverted: false
- platform: gpio
name: "USER_SWITCH"
pin:
number: GPIO4
mode:
input: true
pullup: true
inverted: true
on_press:
then:
- display.page.show_next: oled_display
- component.update: oled_display
text_sensor:
- platform: template
name: ${node_name} Uptime
id: wt32_uptime
entity_category: diagnostic
icon: mdi:clock-start
- platform: template
name: "${node_name} IP"
id: ip_address
entity_category: diagnostic
icon: "mdi:ip-network"
lambda: return { id(eth).get_ip_address().str() };
update_interval: 60s
#dallas:
# - pin: GPIO32
sensor:
- platform: pct2075
temperature:
id: led_temp
name: "${node_name} LM75B Temperature"
update_interval: 30s
- platform: uptime
name: ${node_name} uptime text
id: wt32_uptime_sensor
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: wt32_uptime
state: !lambda |-
int seconds = round(id(wt32_uptime_sensor).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();
# - platform: mcp9808
# name: "MCP9808 temp"
# update_interval: 60s
# - platform: dallas
# address: 0x283c01d607d4df28
# name: "Dallas Sensor 1"
# - platform: dallas
# address: 0xdfe67a061e64ff28
# name: "Dallas Sensor 2"
# - platform: dallas
# address: 0xa7a89f071e64ff28
# name: "Dallas Sensor 3"
- platform: ina219
address: 0x40
shunt_resistance: 0.1 ohm
current:
id: ina_current
name: "${node_name} INA219 Current"
power:
id: ina_power
name: "${node_name} INA219 Power"
bus_voltage:
id: ina_bus_voltage
name: "${node_name} INA219 Bus Voltage"
shunt_voltage:
id: ina_shunt_voltage
name: "${node_name} INA219 Shunt Voltage"
max_voltage: 32.0V
max_current: 3.2A
update_interval: 30s
# pin: GPIO36
# name: "ADC_1"
# update_interval: 5s
# - platform: adc
# pin: GPIO39
# name: "ADC_2"
# update_interval: 5s
display:
- platform: ssd1306_i2c
id: oled_display
model: "SH1106 128x64"
address: 0x3C
contrast: 0.5
pages:
- id: page1
lambda: |-
it.printf(64,25, id(danube), TextAlign::BASELINE_CENTER, "boneIO");
it.printf(64,40, id(fontSmall), TextAlign::BASELINE_CENTER, "take control");
it.printf(64,50, id(fontSmall), TextAlign::BASELINE_CENTER, "of your home");
- id: page2
lambda: |-
it.rectangle(0, 0, 126, 15);
it.printf(64,12, id(danube1), TextAlign::BASELINE_CENTER, "BoneIO");
it.strftime(64, 26, id(fontSmall), TextAlign::BASELINE_CENTER ,"%c", id(ds1307_time).now());
it.printf(4, 38, id(fontSmall), TextAlign::BASELINE_LEFT ,"IP addr:");
it.printf(124, 38, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str());
it.printf(4, 50, id(fontSmall), TextAlign::BASELINE_LEFT ,"Uptime:");
it.printf(124, 50, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str());
it.printf(4, 62, id(fontSmall), TextAlign::BASELINE_LEFT ,"Temperature:");
it.printf(124, 62, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(led_temp).state);
- id: page3
lambda: |-
it.rectangle(0, 0, 126, 15);
it.printf(64,12, id(danube1), TextAlign::BASELINE_CENTER, "BoneIO");
it.printf(4, 26, id(fontSmall), TextAlign::BASELINE_LEFT ,"Current:");
it.printf(124, 26, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state);
it.printf(4, 38, id(fontSmall), TextAlign::BASELINE_LEFT ,"Power:");
it.printf(124, 38, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state);
it.printf(4, 50, id(fontSmall), TextAlign::BASELINE_LEFT ,"Bus Volt:");
it.printf(124, 50, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state);
it.printf(4, 62, id(fontSmall), TextAlign::BASELINE_LEFT ,"Shunt Volt:");
it.printf(124, 62, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state);
font:
- file: "fonts/DejaVuSans.ttf"
id: fontSmall
size: 9
- file: "fonts/danube__.ttf"
id: danube
size: 20
- file: "fonts/danube__.ttf"
id: danube1
size: 9