commit
b263f5275a
@ -0,0 +1,33 @@
|
||||
name: Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build ${{ matrix.firmware.name }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
firmware:
|
||||
- file: tests/ulanzi-easy.yaml
|
||||
name: Ulanzi-Easy
|
||||
manifest_filename: ulanzi-easy-manifest.json
|
||||
- file: tests/ehtmxv2-template.yaml
|
||||
name: EHMTX template
|
||||
manifest_filename: ehtmxv2-template-manifest.json
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v3.3.0
|
||||
- name: Build firmware
|
||||
uses: esphome/build-action@v1.8.0
|
||||
id: esphome-build
|
||||
with:
|
||||
yaml_file: ${{ matrix.firmware.file }}
|
||||
version: latest
|
||||
@ -0,0 +1,15 @@
|
||||
# M5 Stack Sample
|
||||
|
||||
## caution
|
||||
|
||||
This is not the hardware paulus used in his videos for the demonstration. The M5Stack atom echo is sold **out**. So, I used another hardware without a speaker!
|
||||
|
||||
The "M5Stack ATOM Lite ESP32 Development Kit" with "M5Stack PDM MEMS Microphone Unit (SPM1423)" were used. The M5Stack Atom Echo needs another pin configuration!
|
||||
|
||||
The setup was just for demonstration, you should **never** power your matrix via the esp32!!!
|
||||
|
||||
## video
|
||||
|
||||
[Youtube](https://www.youtube.com/watch?v=CsOir14DCbM)
|
||||
|
||||
**Use at your own risk!!!!**
|
||||
@ -0,0 +1,147 @@
|
||||
substitutions:
|
||||
devicename: m5mic
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: git
|
||||
url: https://github.com/lubeda/EsphoMaTrix
|
||||
refresh: 60s
|
||||
components: [ehmtxv2]
|
||||
|
||||
web_server:
|
||||
|
||||
esphome:
|
||||
name: $devicename
|
||||
comment: 8x32 Statusdisplay mit Microphone
|
||||
on_boot:
|
||||
lambda: |-
|
||||
id(rgb8x32)->set_display_on();
|
||||
|
||||
esp32:
|
||||
board: m5stack-atom
|
||||
|
||||
i2s_audio:
|
||||
i2s_lrclk_pin: GPIO32
|
||||
i2s_bclk_pin: GPIO19 # Egal
|
||||
|
||||
microphone:
|
||||
- platform: i2s_audio
|
||||
id: echo_microphone
|
||||
i2s_din_pin: GPIO26
|
||||
|
||||
voice_assistant:
|
||||
microphone: echo_microphone
|
||||
on_stt_end:
|
||||
lambda: |-
|
||||
id(rgb8x32)->icon_screen("home_assistant",x.c_str());
|
||||
id(rgb8x32)->force_screen("home_assistant");
|
||||
on_tts_start:
|
||||
lambda: |-
|
||||
id(rgb8x32)->icon_screen("mic",x.c_str());
|
||||
id(rgb8x32)->force_screen("mic");
|
||||
|
||||
binary_sensor:
|
||||
- platform: status
|
||||
name: "$devicename Status"
|
||||
- platform: gpio
|
||||
pin:
|
||||
number: GPIO39
|
||||
inverted: true
|
||||
name: ${devicename} Button
|
||||
id: echo_button
|
||||
on_press:
|
||||
- voice_assistant.start:
|
||||
on_release:
|
||||
- voice_assistant.stop:
|
||||
font: !include library/ehmtx_font.yaml
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
name: "$devicename Display"
|
||||
icon: "mdi:power"
|
||||
restore_mode: ALWAYS_ON
|
||||
lambda: |-
|
||||
return id(rgb8x32)->show_display;
|
||||
turn_on_action:
|
||||
lambda: |-
|
||||
id(rgb8x32)->set_display_on();
|
||||
turn_off_action:
|
||||
lambda: |-
|
||||
id(rgb8x32)->set_display_off();
|
||||
|
||||
logger:
|
||||
level: DEBUG
|
||||
|
||||
api:
|
||||
|
||||
ota:
|
||||
password: !secret ota_password
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
light:
|
||||
- platform: neopixelbus
|
||||
id: ehmtx_light
|
||||
type: GRB
|
||||
variant: WS2812
|
||||
pin: GPIO25
|
||||
num_leds: 256
|
||||
color_correct: [30%, 30%, 30%]
|
||||
name: "$devicename Light"
|
||||
restore_mode: ALWAYS_OFF
|
||||
on_turn_on:
|
||||
lambda: |-
|
||||
id(ehmtx_display)->set_enabled(false);
|
||||
on_turn_off:
|
||||
lambda: |-
|
||||
id(ehmtx_display)->set_enabled(true);
|
||||
|
||||
time:
|
||||
- platform: homeassistant
|
||||
id: ehmtx_time
|
||||
|
||||
display:
|
||||
- platform: addressable_light
|
||||
id: ehmtx_display
|
||||
addressable_light_id: ehmtx_light
|
||||
width: 32
|
||||
height: 8
|
||||
pixel_mapper: |-
|
||||
if (x % 2 == 0) {
|
||||
return (x * 8) + y;
|
||||
}
|
||||
return (x * 8) + (7 - y);
|
||||
rotation: 0°
|
||||
update_interval: 16ms
|
||||
auto_clear_enabled: true
|
||||
lambda: |-
|
||||
id(rgb8x32)->tick();
|
||||
id(rgb8x32)->draw();
|
||||
|
||||
ehmtxv2:
|
||||
id: rgb8x32
|
||||
matrix_component: ehmtx_display
|
||||
time_component: ehmtx_time
|
||||
icons2html: true
|
||||
default_font_id: ehmtx_font
|
||||
special_font_id: ehmtx_font
|
||||
icons:
|
||||
- id: error
|
||||
lameid: 40530
|
||||
- id: home_assistant
|
||||
lameid: 47693
|
||||
- id: temperature
|
||||
lameid: 2056
|
||||
- id: lightbulb
|
||||
lameid: 1762
|
||||
- id: music
|
||||
lameid: 45625
|
||||
- id: phone
|
||||
lameid: 1232
|
||||
- id: car
|
||||
lameid: 2819
|
||||
- id: sleep8x32
|
||||
url: https://user-images.githubusercontent.com/16407309/224850723-634c9b2d-55d9-44f2-9f93-765c0485b090.gif
|
||||
|
||||
@ -1,110 +0,0 @@
|
||||
substitutions:
|
||||
devicename: ehmtxv2
|
||||
friendly_name: LED Matrix
|
||||
board: esp32dev
|
||||
matrix_pin: GPIO32
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: git
|
||||
url: https://github.com/lubeda/EspHoMaTriXv2
|
||||
ref: release
|
||||
refresh: 60s
|
||||
components: [ ehmtxv2 ]
|
||||
|
||||
esphome:
|
||||
comment: "EHMTXv2 from LuBeDa"
|
||||
name: $devicename
|
||||
|
||||
esp32:
|
||||
board: esp32dev
|
||||
|
||||
font:
|
||||
- file: EHMTXv2.ttf
|
||||
size: 16
|
||||
id: default_font
|
||||
glyphs: |
|
||||
!?"%()+*=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnÖÄÜöäüopqrstuvwxyz@<>ß§€/
|
||||
|
||||
binary_sensor:
|
||||
- platform: status
|
||||
name: "$devicename Status"
|
||||
|
||||
logger:
|
||||
level: WARN
|
||||
|
||||
api:
|
||||
|
||||
sensor:
|
||||
|
||||
ota:
|
||||
password: !secret ota_password
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
web_server:
|
||||
|
||||
light:
|
||||
- platform: neopixelbus
|
||||
id: ehmtx_light
|
||||
type: GRB
|
||||
internal: true
|
||||
variant: WS2812
|
||||
pin: $ledpin
|
||||
num_leds: 256
|
||||
color_correct: [30%, 30%, 30%]
|
||||
gamma_correct: 2.0
|
||||
name: "$devicename Light"
|
||||
restore_mode: ALWAYS_OFF
|
||||
|
||||
time:
|
||||
- platform: homeassistant
|
||||
id: ehmtx_time
|
||||
|
||||
display:
|
||||
- platform: addressable_light
|
||||
id: ehmtx_display
|
||||
addressable_light_id: ehmtx_light
|
||||
width: 32
|
||||
height: 8
|
||||
pixel_mapper: |-
|
||||
if (y % 2 == 0) {
|
||||
return (y * 32) + x;
|
||||
}
|
||||
return (y * 32) + (31 - x);
|
||||
rotation: 0°
|
||||
update_interval: 16ms
|
||||
auto_clear_enabled: true
|
||||
lambda: |-
|
||||
id(rgb8x32)->tick();
|
||||
id(rgb8x32)->draw();
|
||||
|
||||
ehmtxv2:
|
||||
id: rgb8x32
|
||||
icons2html: true
|
||||
matrix_component: ehmtx_display
|
||||
time_component: ehmtx_time
|
||||
time_format: "%H:%M"
|
||||
date_format: "%d.%m."
|
||||
show_seconds: false
|
||||
default_font_id: default_font
|
||||
special_font_id: default_font
|
||||
icons:
|
||||
- id: error
|
||||
lameid: 40530
|
||||
- id: home_assistant
|
||||
lameid: 47693
|
||||
- id: temperature
|
||||
lameid: 2056
|
||||
- id: lightbulb
|
||||
lameid: 1762
|
||||
- id: music
|
||||
lameid: 45625
|
||||
- id: phone
|
||||
lameid: 1232
|
||||
- id: car
|
||||
lameid: 2819
|
||||
- id: sleep8x32
|
||||
url: https://user-images.githubusercontent.com/16407309/224850723-634c9b2d-55d9-44f2-9f93-765c0485b090.gif
|
||||
Binary file not shown.
@ -0,0 +1,157 @@
|
||||
substitutions:
|
||||
devicename: ehmtxv2
|
||||
friendly_name: LED Matrix
|
||||
board: esp32dev
|
||||
matrix_pin: GPIO32
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: local
|
||||
path: ../components
|
||||
components: [ ehmtxv2 ]
|
||||
|
||||
esphome:
|
||||
comment: "EHMTXv2 TEXT from LuBeDa"
|
||||
name: $devicename
|
||||
on_boot:
|
||||
lambda: |-
|
||||
id(rgb8x32)->show_indicator(255,100,50,2);
|
||||
id(rgb8x32)->hide_indicator();
|
||||
id(rgb8x32)->show_alarm(255,0,150,3);
|
||||
id(rgb8x32)->hide_alarm();
|
||||
id(rgb8x32)->icon_screen("error","Hallo Text",false,237,20,100,200,150);
|
||||
id(rgb8x32)->force_screen("error");
|
||||
id(rgb8x32)->del_screen("error");
|
||||
id(rgb8x32)->del_screen("error",5);
|
||||
id(rgb8x32)->rainbow_icon_screen("error","Hallo Text",true,237,20);
|
||||
id(rgb8x32)->get_status();
|
||||
id(rgb8x32)->set_display_on();
|
||||
id(rgb8x32)->set_display_off();
|
||||
id(rgb8x32)->hold_screen();
|
||||
id(rgb8x32)->show_gauge(100,0,200);
|
||||
id(rgb8x32)->hide_gauge();
|
||||
id(rgb8x32)->set_clock_color(200,100,50);
|
||||
id(rgb8x32)->set_today_color(200,100,50);
|
||||
id(rgb8x32)->set_weekday_color(200,100,50);
|
||||
id(rgb8x32)->full_screen("scale");
|
||||
id(rgb8x32)->rainbow_icon_screen("error","Oh ein Text");
|
||||
id(rgb8x32)->text_screen("text",30);
|
||||
id(rgb8x32)->rainbow_text_screen("text",30);
|
||||
id(rgb8x32)->clock_screen(30,5);
|
||||
id(rgb8x32)->rainbow_clock_screen(30,5);
|
||||
id(rgb8x32)->date_screen(30,5);
|
||||
id(rgb8x32)->rainbow_date_screen(30,5);
|
||||
id(rgb8x32)->blank_screen(30,5);
|
||||
id(rgb8x32)->set_brightness(20);
|
||||
|
||||
esp32:
|
||||
board: esp32dev
|
||||
|
||||
font:
|
||||
- file: EHMTXv2.ttf
|
||||
size: 16
|
||||
id: default_font
|
||||
glyphs: |
|
||||
!?"%()+*=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnÖÄÜöäüopqrstuvwxyz@<>ß§€/
|
||||
|
||||
binary_sensor:
|
||||
- platform: status
|
||||
name: "$devicename Status"
|
||||
|
||||
logger:
|
||||
level: WARN
|
||||
|
||||
api:
|
||||
|
||||
sensor:
|
||||
|
||||
ota:
|
||||
password: !secret ota_password
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
web_server:
|
||||
|
||||
light:
|
||||
- platform: neopixelbus
|
||||
id: ehmtx_light
|
||||
type: GRB
|
||||
internal: true
|
||||
variant: WS2812
|
||||
pin: $matrix_pin
|
||||
num_leds: 256
|
||||
color_correct: [30%, 30%, 30%]
|
||||
gamma_correct: 2.0
|
||||
name: "$devicename Light"
|
||||
restore_mode: ALWAYS_OFF
|
||||
|
||||
time:
|
||||
- platform: homeassistant
|
||||
id: ehmtx_time
|
||||
|
||||
display:
|
||||
- platform: addressable_light
|
||||
id: ehmtx_display
|
||||
addressable_light_id: ehmtx_light
|
||||
width: 32
|
||||
height: 8
|
||||
pixel_mapper: |-
|
||||
if (y % 2 == 0) {
|
||||
return (y * 32) + x;
|
||||
}
|
||||
return (y * 32) + (31 - x);
|
||||
rotation: 0°
|
||||
update_interval: 16ms
|
||||
auto_clear_enabled: true
|
||||
lambda: |-
|
||||
id(rgb8x32)->tick();
|
||||
id(rgb8x32)->draw();
|
||||
|
||||
ehmtxv2:
|
||||
id: rgb8x32
|
||||
icons2html: true
|
||||
matrix_component: ehmtx_display
|
||||
time_component: ehmtx_time
|
||||
time_format: "%H:%M"
|
||||
date_format: "%d.%m."
|
||||
show_seconds: false
|
||||
default_font_id: default_font
|
||||
special_font_id: default_font
|
||||
icons:
|
||||
- id: error
|
||||
lameid: 40530
|
||||
- id: scale
|
||||
file: scale.gif
|
||||
resize: 32x8
|
||||
- id: sleep8x32
|
||||
url: https://user-images.githubusercontent.com/16407309/224850723-634c9b2d-55d9-44f2-9f93-765c0485b090.gif
|
||||
on_next_screen:
|
||||
- homeassistant.event:
|
||||
event: esphome.new_screen
|
||||
data_template:
|
||||
iconname: !lambda "return icon.c_str();"
|
||||
text: !lambda "return text.c_str();"
|
||||
on_add_screen:
|
||||
- homeassistant.event:
|
||||
event: esphome.new_screen
|
||||
data_template:
|
||||
iconname: !lambda "return icon.c_str();"
|
||||
mode: !lambda "return mode;"
|
||||
on_next_clock:
|
||||
- homeassistant.event:
|
||||
event: esphome.new_screen
|
||||
data_template:
|
||||
iconname: "Hallo"
|
||||
on_expired_screen:
|
||||
- homeassistant.event:
|
||||
event: esphome.new_screen
|
||||
data_template:
|
||||
iconname: !lambda "return icon.c_str();"
|
||||
text: !lambda "return text.c_str();"
|
||||
on_icon_error:
|
||||
- homeassistant.event:
|
||||
event: esphome.new_screen
|
||||
data_template:
|
||||
iconname: !lambda "return icon.c_str();"
|
||||
|
After Width: | Height: | Size: 60 KiB |
@ -0,0 +1,4 @@
|
||||
# This is just a a sample for CI/CD!!
|
||||
ota_password: itsecret
|
||||
wifi_password: itsecret
|
||||
wifi_ssid: itsecret
|
||||
@ -0,0 +1,257 @@
|
||||
substitutions:
|
||||
devicename: ulanzi
|
||||
ledpin: GPIO32
|
||||
buzzerpin: GPIO15
|
||||
friendly_name: LED Matrix
|
||||
board: esp32dev
|
||||
# Pin definition from https://github.com/aptonline/PixelIt_Ulanzi
|
||||
battery_pin: GPIO34
|
||||
ldr_pin: GPIO35
|
||||
matrix_pin: GPIO32
|
||||
left_button_pin: GPIO26
|
||||
mid_button_pin: GPIO27
|
||||
right_button_pin: GPIO14
|
||||
buzzer_pin: GPIO15
|
||||
scl_pin: GPIO22
|
||||
sda_pin: GPIO21
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
name: "Auto-Adjust Brightness"
|
||||
id: switch_autobrightness
|
||||
icon: mdi:brightness-auto
|
||||
restore_mode: RESTORE_DEFAULT_ON
|
||||
lambda: |-
|
||||
if (id(aab_enable)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
turn_on_action:
|
||||
lambda: |-
|
||||
id(aab_enable) = true;
|
||||
turn_off_action:
|
||||
lambda: |-
|
||||
id(aab_enable) = false;
|
||||
|
||||
globals:
|
||||
# aab = auto-adjustable brightness
|
||||
- id: aab_enable
|
||||
type: "bool"
|
||||
restore_value: true
|
||||
initial_value: "true"
|
||||
- id: aab_add
|
||||
type: int
|
||||
initial_value: '10'
|
||||
- id: aab_max
|
||||
type: int
|
||||
initial_value: '220'
|
||||
- id: aab_min
|
||||
type: int
|
||||
initial_value: '20'
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: git
|
||||
url: https://github.com/lubeda/EspHoMaTriXv2
|
||||
ref: main
|
||||
refresh: 60s
|
||||
components: [ ehmtxv2 ]
|
||||
|
||||
esphome:
|
||||
comment: "EHMTXv2 from LuBeDa"
|
||||
name: $devicename
|
||||
on_boot:
|
||||
then:
|
||||
- ds1307.read_time:
|
||||
|
||||
esp32:
|
||||
board: esp32dev
|
||||
|
||||
font:
|
||||
- file: EHMTXv2.ttf
|
||||
size: 16
|
||||
id: default_font
|
||||
glyphs: |
|
||||
!?"%()+*=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnÖÄÜöäüopqrstuvwxyz@<>ß§€/
|
||||
|
||||
binary_sensor:
|
||||
- platform: status
|
||||
name: "$devicename Status"
|
||||
- platform: gpio
|
||||
pin:
|
||||
number: $left_button_pin
|
||||
inverted: true
|
||||
name: "Left button"
|
||||
- platform: gpio
|
||||
pin:
|
||||
inverted: true
|
||||
number: $mid_button_pin
|
||||
mode: INPUT_PULLUP
|
||||
name: "Middle button"
|
||||
- platform: gpio
|
||||
pin:
|
||||
number: $right_button_pin
|
||||
inverted: true
|
||||
name: "Right button"
|
||||
|
||||
logger:
|
||||
level: WARN
|
||||
|
||||
api:
|
||||
services:
|
||||
- service: tune
|
||||
variables:
|
||||
tune: string
|
||||
then:
|
||||
- rtttl.play:
|
||||
rtttl: !lambda 'return tune;'
|
||||
|
||||
sensor:
|
||||
- platform: sht3xd
|
||||
temperature:
|
||||
name: "$devicename Temperature"
|
||||
humidity:
|
||||
name: "$devicename Relative Humidity"
|
||||
update_interval: 60s
|
||||
- platform: adc
|
||||
pin: $battery_pin
|
||||
name: "$devicename Battery"
|
||||
id: battery_voltage
|
||||
update_interval: 10s
|
||||
device_class: battery
|
||||
accuracy_decimals: 0
|
||||
attenuation: auto
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 15
|
||||
send_every: 15
|
||||
send_first_at: 1
|
||||
- multiply: 1.6
|
||||
- lambda: |-
|
||||
auto r = ((x - 3) / 0.69 * 100.00);
|
||||
if (r >= 100) return 100;
|
||||
if (r > 0) return r;
|
||||
if (r <= 0) return 1;
|
||||
return 0;
|
||||
unit_of_measurement: '%'
|
||||
- platform: adc
|
||||
id: light_sensor
|
||||
name: "$devicename Illuminance"
|
||||
pin: $ldr_pin
|
||||
update_interval: 10s
|
||||
attenuation: auto
|
||||
unit_of_measurement: lx
|
||||
device_class: illuminance
|
||||
accuracy_decimals: 0
|
||||
filters:
|
||||
- lambda: |-
|
||||
return (x / 10000.0) * 2000000.0 - 15 ;
|
||||
on_value:
|
||||
then:
|
||||
- lambda: |-
|
||||
if ( id(aab_enable) ) {
|
||||
int n = x / 4 + id(aab_add); // new_value
|
||||
if (n > id(aab_max)) n = id(aab_max);
|
||||
if (n < id(aab_min)) n = id(aab_min);
|
||||
int c = id(rgb8x32)->get_brightness(); // current value
|
||||
int d = (n - c) * 100 / c; // diff in %
|
||||
if ( abs(d) > 2 ) id(rgb8x32)->set_brightness(n);
|
||||
}
|
||||
|
||||
ota:
|
||||
password: !secret ota_password
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
web_server:
|
||||
|
||||
output:
|
||||
- platform: ledc
|
||||
pin: $buzzerpin
|
||||
id: rtttl_out
|
||||
|
||||
rtttl:
|
||||
output: rtttl_out
|
||||
|
||||
i2c:
|
||||
sda: $sda_pin
|
||||
scl: $scl_pin
|
||||
scan: true
|
||||
id: i2cbus
|
||||
|
||||
light:
|
||||
- platform: neopixelbus
|
||||
id: ehmtx_light
|
||||
type: GRB
|
||||
internal: true
|
||||
variant: WS2812
|
||||
pin: $ledpin
|
||||
num_leds: 256
|
||||
color_correct: [30%, 30%, 30%]
|
||||
gamma_correct: 2.0
|
||||
name: "$devicename Light"
|
||||
restore_mode: ALWAYS_OFF
|
||||
|
||||
time:
|
||||
- platform: homeassistant
|
||||
on_time_sync:
|
||||
then:
|
||||
ds1307.write_time:
|
||||
- platform: ds1307
|
||||
update_interval: never
|
||||
id: ehmtx_time
|
||||
|
||||
display:
|
||||
- platform: addressable_light
|
||||
id: ehmtx_display
|
||||
addressable_light_id: ehmtx_light
|
||||
width: 32
|
||||
height: 8
|
||||
pixel_mapper: |-
|
||||
if (y % 2 == 0) {
|
||||
return (y * 32) + x;
|
||||
}
|
||||
return (y * 32) + (31 - x);
|
||||
rotation: 0°
|
||||
update_interval: 16ms
|
||||
auto_clear_enabled: true
|
||||
lambda: |-
|
||||
id(rgb8x32)->tick();
|
||||
id(rgb8x32)->draw();
|
||||
|
||||
ehmtxv2:
|
||||
id: rgb8x32
|
||||
icons2html: true
|
||||
matrix_component: ehmtx_display
|
||||
time_component: ehmtx_time
|
||||
time_format: "%H:%M"
|
||||
date_format: "%d.%m."
|
||||
show_seconds: false
|
||||
default_font_id: default_font
|
||||
special_font_id: default_font
|
||||
icons:
|
||||
- id: error
|
||||
lameid: 40530
|
||||
- id: home_assistant
|
||||
lameid: 47693
|
||||
- id: temperature
|
||||
lameid: 2056
|
||||
- id: lightbulb
|
||||
lameid: 1762
|
||||
- id: music
|
||||
lameid: 45625
|
||||
- id: phone
|
||||
lameid: 1232
|
||||
- id: car
|
||||
lameid: 2819
|
||||
- id: sleep8x32
|
||||
url: https://user-images.githubusercontent.com/16407309/224850723-634c9b2d-55d9-44f2-9f93-765c0485b090.gif
|
||||
on_next_screen:
|
||||
- homeassistant.event:
|
||||
event: esphome.new_screen
|
||||
data_template:
|
||||
iconname: !lambda "return icon.c_str();"
|
||||
text: !lambda "return text.c_str();"
|
||||
Loading…
Reference in new issue