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