Compare commits

..
17 Commits
Author SHA1 Message Date
randy 3374ed6ad8 staircase-light: add second PIR sensor
CI / ESPHome config validation (push) Failing after 5s
CI / YAML lint (push) Failing after 19s
2026-10-10 17:50:24 +02:00
randy e5f9c5813e stackchan: 40MHz flash, the IDF 5.5.5 bootloader misreads this flash at 80MHz 2026-10-10 17:41:05 +02:00
randy 2b66f1a60d echo-1: WAV media format, decoding MP3/FLAC without PSRAM runs the heap out 2026-10-10 17:41:05 +02:00
randy 05060756e3 OpenPrintTag reader: filament color light falls back to the Creality tag
CI / ESPHome config validation (push) Failing after 6s
CI / YAML lint (push) Failing after 17s
2026-10-10 12:35:49 +02:00
randy 7cc90187d1 ipv6_only_eth: mdns 1.14.0 from the registry instead of the fork 2026-10-10 12:35:49 +02:00
randy 26a09b37bc all esp8266: LEAmDNS fork announcing IPv6 addresses (esp8266/Arduino#9068) 2026-10-10 12:33:12 +02:00
randy 4c45ebdc4a all esp32: disable wifi power saving
CI / YAML lint (push) Successful in 8s
CI / ESPHome config validation (push) Successful in 1m2s
2026-10-08 22:52:25 +02:00
randy 2ad74b9d05 all esp8266: switch to native toolchain 2026-10-08 22:51:21 +02:00
randy b1b57818df fireplace, heater: switch to native ds248x component + cleanup 2026-10-08 22:50:00 +02:00
randy 1a83052d90 Spool reader: Creality CFS tags too
CI / YAML lint (push) Successful in 9s
CI / ESPHome config validation (push) Successful in 57s
creality_cfs reads the Creality tags of the spools, sends their record
to Home Assistant (esphome.creality_cfs) and writes them through the
creality_cfs_write action; the success tune gets a valid default
duration.
2026-10-05 21:22:36 +02:00
randy 8eae480253 OpenPrintTag reader: pn5180 and openprinttag components, red flash on writes
CI / YAML lint (push) Failing after 17s
CI / ESPHome config validation (push) Successful in 55s
The reader config follows the split of pn5180 into the reader and the
openprinttag component; the notify LED flashes red while the
integration writes to a tag.
2026-10-03 18:18:42 +02:00
randy 5fdacb82df OpenPrintTag reader: aux write action for the integration
CI / YAML lint (push) Failing after 17s
CI / ESPHome config validation (push) Successful in 51s
openprinttag_write_aux lets the OpenPrintTag integration's
openprinttag.update write the consumed weight and other aux values
to the tag on the reader.
2026-10-03 13:55:21 +02:00
randy 9eb5cd9155 OpenPrintTag reader: send the tag record to Home Assistant
esphome.openprinttag event with the uid and the raw record (empty when
the tag is removed) for the OpenPrintTag integration
(randybb/ha-openprinttag).
2026-10-03 13:20:40 +02:00
randy b8f8649833 OpenPrintTag reader: M5Stamp S3 with a PN5180
Filament spool tags to Home Assistant through the pn5180 component of
randybb/esphome-components, the color also as a light. Onboard LED for
tag feedback and status until the external LED is fitted, buzzer on
GPIO4.
2026-10-03 12:48:56 +02:00
randy 5fdea643a7 rfid-reader: use a valid RTTTL default duration (d=32)
ESPHome only accepts d=1/2/4/8/16/32 now; d=24 was rejected and the
success/write tones never played.
2026-10-03 10:51:23 +02:00
randy 4bbf26fc87 Update comment about upstream mdns component
CI / YAML lint (push) Failing after 17s
CI / ESPHome config validation (push) Successful in 1m0s
2026-10-02 17:46:59 +02:00
randy 427e9ac136 IPv6-only for the Ethernet gateway
Split the WiFi part off common/ipv6_only.yaml into common/ipv6_only_eth.yaml
and use it on mcu-gateway. The #19750 component list needs ethernet,
otherwise the stock component still runs DHCPv4. mdns from the fork also
carries the IPv6 fix for ETH-only builds (espressif/esp-protocols#1161).
2026-10-01 23:49:02 +02:00
20 changed files with 382 additions and 124 deletions

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
---
# ESP8266 core with LEAmDNS announcing the IPv6 addresses (AAAA, ff02::fb) from
# randybb/Arduino@mdns-ipv6-aaaa (esp8266/Arduino#9068); add next to common_esp8266.yaml.
# The device must not set 'toolchain: arduino' (no custom framework source there).
# Drop once it's upstream and in an ESPHome release.
esp8266:
toolchain: platformio
framework:
version: 3.1.2
source: https://github.com/randybb/Arduino.git#mdns-ipv6-aaaa
+3 -23
View File
@@ -3,32 +3,12 @@
# packages:
# common: !include common/common.yaml
# ipv6_only: !include common/ipv6_only.yaml
external_components:
# network enable_ipv4 + audio HTTP reader over IPv6 (esphome/esphome#19750), drop once merged
- source: github://pr#19750
components: [const, network, wifi, audio]
# Ethernet devices use common/ipv6_only_eth.yaml (this without the WiFi part)
packages:
base: !include ipv6_only_eth.yaml
wifi:
networks:
- id: !extend wifi_iot
ssid: !secret wifi_ssid_ipv6
password: !secret wifi_password_ipv6
esp32:
framework:
components:
# mdns 1.12.0 + fix for "A 0.0.0.0" without IPv4 (espressif/esp-protocols PR pending), drop once released
- name: espressif/mdns
source: https://github.com/randybb/esp-protocols.git
ref: mdns-v1.12.0-zero-ipv4-test
path: components/mdns
# IDF v5.5.5 lwip + .local resolution over IPv6 (espressif/esp-lwip#94), drop once in IDF
- name: lwip
source: https://github.com/randybb/esp-lwip.git
ref: idf-v5.5.5-lwip-component
path: lwip
network:
enable_ipv6: true
enable_ipv4: false
min_ipv6_addr_count: 1
+29
View File
@@ -0,0 +1,29 @@
---
# IPv6-only IoT network (SLAAC, no DHCPv4) for ethernet devices; add next to a common package:
# packages:
# common_eth: !include common/common_eth.yaml
# ipv6_only: !include common/ipv6_only_eth.yaml
# WiFi devices use common/ipv6_only.yaml (this + the IPv6 SSID)
external_components:
# network enable_ipv4 + audio HTTP reader over IPv6 (esphome/esphome#19750), drop once merged
- source: github://pr#19750
components: [const, network, wifi, ethernet, audio]
refresh: 1h
esp32:
framework:
components:
# mdns 1.14.0: no "A 0.0.0.0" without IPv4 + IPv6 on ETH-only builds (espressif/esp-protocols#1156, #1161),
# drop once on ESPHome 2026.10.0 (esphome/esphome#20383 bumps the pin from 1.12.0)
- name: espressif/mdns
ref: 1.14.0
# IDF v5.5.5 lwip + .local resolution over IPv6 (espressif/esp-lwip#94), drop once in IDF
- name: lwip
source: https://github.com/randybb/esp-lwip.git
ref: idf-v5.5.5-lwip-component
path: lwip
network:
enable_ipv6: true
enable_ipv4: false
min_ipv6_addr_count: 1
+1
View File
@@ -9,3 +9,4 @@ wifi:
enable_btm: true
enable_rrm: true
min_auth_mode: WPA3
power_save_mode: none
+1
View File
@@ -25,6 +25,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
status_led:
pin:
+1
View File
@@ -24,6 +24,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
globals:
- id: aerator_auto
+2 -2
View File
@@ -148,10 +148,10 @@ media_player:
buffer_size: 14000
media_pipeline:
speaker: media_spk_resampling_input
format: NONE
format: WAV # no PSRAM: HA transcodes to WAV, decoding MP3/FLAC here runs the heap out
announcement_pipeline:
speaker: announcement_spk_resampling_input
format: NONE
format: WAV # no PSRAM: HA transcodes to WAV, decoding MP3/FLAC here runs the heap out
rtttl:
id: my_rtttl
+8 -48
View File
@@ -37,56 +37,26 @@ esp32:
flash_chip: gd
type: esp-idf
external_components:
# - source: github://pr#12717
# components: [ds248x]
# refresh: 1h
- source: github://pr#13534
components: [ds2482, ds2484, ds248x_base]
refresh: 1h
packages:
common: !include common/common.yaml
ipv6_only: !include common/ipv6_only.yaml
status_led: !include common/status_led_atom.yaml
i2c:
# - id: i2c0
# sda: 26
# scl: 32
# scan: true #false
# - id: i2c1
sda: 25
scl: 21
scan: true #false
# ds248x:
# # i2c_id: i2c_main
# address: 0x18 # should be the default
# # sleep_pin: 32 # remove if not needed, if set the ds248x sleeps when no transaction is in progress
# active_pullup: true # adds a active pullup which should improve signal integrity
# strong_pullup: false # enables a strong pullup used to provide the needed current for temperature reading without vcc connected
# bus_sleep: true # power down the bus when no transaction is in progres
# one_wire:
# id: one_wire_bus
# platform: ds2484
# active_pullup: true
# ds248x:
# id: ds2484_module
# address: 0x18
# one_wire:
# - platform: ds248x
# ds248x_id: ds2484_module
# id: one_wire_bus
ds248x:
id: ds2484_module
type: ds2482-100
address: 0x18
active_pullup: true
one_wire:
id: one_wire_bus
platform: ds2482
active_pullup: true
- platform: ds248x
ds248x_id: ds2484_module
id: one_wire_bus
pca9554:
- id: pca9554_module
@@ -133,16 +103,6 @@ sensor:
# index: 0
name: Temperature
id: 'heating_fireplace_temperature'
# - platform: dht
# pin: 14
# temperature:
# name: "Kitchen Temperature"
# id: 'kitchen_temperature'
# humidity:
# name: "Kitchen Humidity"
# id: 'kitchen_humidity'
# update_interval: 60s
# model: si7021
bluetooth_proxy:
active: true
+1
View File
@@ -60,6 +60,7 @@ external_components:
packages:
# common: !include common/common.yaml
common_eth: !include common/common_eth.yaml
ipv6_only: !include common/ipv6_only_eth.yaml
i2c:
sda: 13
+9 -38
View File
@@ -47,26 +47,11 @@ esp32:
flash_chip: gd
type: esp-idf
external_components:
# - source: github://pr#12717
# components: [ds248x]
# refresh: 1h
- source: github://pr#13534
components: [ds2482, ds2484, ds248x_base]
refresh: 1h
packages:
common: !include common/common.yaml
ipv6_only: !include common/ipv6_only.yaml
status_led: !include common/status_led_atom.yaml
#logger:
# level: VERBOSE
# logs:
# dallas.component: ERROR
# uart.component: ERROR
# i2c.component: VERBOSE
# Heating / Hot water Controller
# temp_1: Solar Collector
# temp_2: Cylinder Bottom (solar)
@@ -170,36 +155,22 @@ climate:
default_target_temperature_high: 40 °C
i2c:
# - id: i2c0
# sda: 26
# scl: 32
# scan: true #false
# - id: i2c1
sda: 25
scl: 21
scan: true #false
# one_wire:
# id: one_wire_bus
# # i2c_id: i2c_main
# platform: ds2484
# active_pullup: true
# ds248x:
# id: ds2484_module
# address: 0x18
# active_pullup: true
# one_wire:
# - platform: ds248x
# ds248x_id: ds2484_module
# id: one_wire_bus
ds248x:
id: ds2482_module
type: ds2482-100
address: 0x18
active_pullup: true
one_wire:
id: one_wire_bus
# i2c_id: i2c_main
platform: ds2482
active_pullup: true
- platform: ds248x
ds248x_id: ds2482_module
id: one_wire_bus
modbus:
uart_id: uart_modbus
+1
View File
@@ -21,6 +21,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
remote_receiver:
pin: 4
+285
View File
@@ -0,0 +1,285 @@
---
# Hardware: M5Stack M5Stamp S3 + PN5180 module (5 V and 3.3 V both needed)
# Pinout:
# GPIO0 Button
# GPIO3 (external RFID LED, not fitted yet; notify_led uses the onboard RGB for now)
# GPIO4 Buzzer -> buzzer (output ledc)
# GPIO5 -> spi (spi miso_pin) PN5180 MISO
# GPIO6 -> spi (spi mosi_pin) PN5180 MOSI
# GPIO7 -> spi (spi clk_pin) PN5180 SCK
# GPIO8 -> pn5180 (cs_pin) PN5180 NSS
# GPIO9 -> pn5180 (busy_pin) PN5180 BUSY
# GPIO10 -> pn5180 (reset_pin) PN5180 RST
# GPIO11 -> pn5180 (irq_pin) PN5180 IRQ
# GPIO19 U-
# GPIO20 U+
# GPIO21 RGB -> notify_led (light esp32_rmt_led_strip), also status_led
# PN5180 REQ, AUX, GPIO left open (REQ high at reset = firmware download mode)
substitutions:
device: rfid-openprinttag
name: OpenPrintTag
area: DEV
comment: Filament spool reader (OpenPrintTag, Creality CFS)
esphome:
name: mcu-${device}
friendly_name: ${name}
area: ${area}
comment: ${comment}
esp32:
variant: esp32s3
toolchain: esp-idf
framework:
advanced:
flash_chip: gd
type: esp-idf
packages:
common: !include common/common.yaml
ipv6_only: !include common/ipv6_only.yaml
status_led: !include
file: common/status_led.yaml
vars:
light_id: notify_led
show_errors: "true"
external_components:
- source: github://randybb/esphome-components
components: [pn5180, openprinttag, creality_cfs]
refresh: 1h
# Called by the OpenPrintTag integration (openprinttag.update) to update the aux region
api:
actions:
- action: openprinttag_write_aux
variables:
uid: string
aux: string
then:
- if:
condition:
switch.is_on: led_enabled
then:
- light.turn_on:
id: notify_led
brightness: 100%
red: 100%
green: 0%
blue: 0%
flash_length: 500ms
- lambda: id(spool).write_aux(uid, aux);
# Writes a Creality CFS record (48 characters, optionally 48 more for sector 2) to the
# Creality tag on the reader
- action: creality_cfs_write
variables:
uid: string
data: string
then:
- if:
condition:
switch.is_on: led_enabled
then:
- light.turn_on:
id: notify_led
brightness: 100%
red: 100%
green: 0%
blue: 0%
flash_length: 500ms
- lambda: id(creality).write(uid, data);
spi:
clk_pin: GPIO7
mosi_pin: GPIO6
miso_pin: GPIO5
pn5180:
id: pn5180_reader
cs_pin: GPIO8
busy_pin: GPIO9
reset_pin: GPIO10
irq_pin: GPIO11
on_tag:
- if:
condition:
switch.is_on: led_enabled
then:
- light.turn_on:
id: notify_led
brightness: 100%
red: 0%
green: 100%
blue: 0%
flash_length: 500ms
- if:
condition:
switch.is_on: buzzer_enabled
then:
- rtttl.play: "success:d=32,o=5,b=100:c,g,b"
- homeassistant.tag_scanned: !lambda return x;
on_tag_removed:
- if:
condition:
switch.is_on: buzzer_enabled
then:
- rtttl.play: "removed:d=16,o=5,b=100:b"
openprinttag:
id: spool
# Raw tag record for the OpenPrintTag integration (randybb/ha-openprinttag), empty when removed
on_openprinttag:
- homeassistant.event:
event: esphome.openprinttag
data:
uid: !lambda return uid;
payload: !lambda return payload;
creality_cfs:
id: creality
# The Creality record (ASCII) for Home Assistant, empty when removed
on_creality:
- homeassistant.event:
event: esphome.creality_cfs
data:
uid: !lambda return uid;
data: !lambda return data;
sensor:
- platform: creality_cfs
name: Creality length
- platform: openprinttag
type: remaining_weight
name: Remaining weight
- platform: openprinttag
type: consumed_weight
name: Consumed weight
- platform: openprinttag
type: actual_weight
name: Full weight
- platform: openprinttag
type: min_print_temperature
name: Min print temperature
- platform: openprinttag
type: max_print_temperature
name: Max print temperature
- platform: openprinttag
type: max_bed_temperature
name: Max bed temperature
- platform: openprinttag
type: drying_temperature
name: Drying temperature
- platform: openprinttag
type: drying_time
name: Drying time
text_sensor:
- platform: pn5180
name: Tag UID
- platform: creality_cfs
type: material_id
name: Creality material ID
- platform: creality_cfs
type: color
name: Creality color
id: creality_color
on_value:
- script.execute: show_filament_color
- platform: creality_cfs
type: serial
name: Creality serial
- platform: openprinttag
type: material_type
name: Material
- platform: openprinttag
type: material_name
name: Material name
- platform: openprinttag
type: brand_name
name: Brand
- platform: openprinttag
type: primary_color
name: Color
id: openprinttag_color
on_value:
- script.execute: show_filament_color
script:
# The filament color on the filament_color light: the OpenPrintTag's, else the Creality tag's
- id: show_filament_color
then:
- lambda: |-
std::string x = id(openprinttag_color).state;
if (x.size() < 7)
x = id(creality_color).state;
if (x.size() < 7) {
id(filament_color).turn_off().set_transition_length(0).perform();
return;
}
uint32_t c = strtoul(x.c_str() + 1, nullptr, 16);
if (x.size() > 7)
c >>= 8; // #rrggbbaa
// ESPHome scales the strongest channel to 100 %, the darkness goes to the brightness
const float r = ((c >> 16) & 0xFF) / 255.0f, g = ((c >> 8) & 0xFF) / 255.0f, b = (c & 0xFF) / 255.0f;
const float m = std::max({r, g, b});
if (m == 0.0f) {
id(filament_color).turn_off().set_transition_length(0).perform(); // black
return;
}
id(filament_color).turn_on()
.set_rgb(r, g, b)
.set_brightness(m)
.set_transition_length(0)
.perform();
light:
# Onboard RGB for now: tag feedback and status. With the external LED fitted, move
# notify_led to pin 3 and give the onboard one back to status_led (as on mcu-rfid-reader)
- platform: esp32_rmt_led_strip
id: notify_led
name: Notify LED
channel_colors: GRB
pin: 21
num_leds: 1
chipset: ws2812
restore_mode: ALWAYS_OFF
rmt_symbols: 96
# Shows the filament color in Home Assistant; drives nothing, the next tag read overwrites it
- platform: rgb
id: filament_color
name: Filament color
icon: mdi:printer-3d-nozzle
red: color_none
green: color_none
blue: color_none
restore_mode: ALWAYS_OFF
default_transition_length: 0s
output:
- platform: ledc
pin: 4
id: buzzer
- platform: template
id: color_none
type: float
write_action: []
rtttl:
output: buzzer
switch:
- platform: template
name: Buzzer Enabled
id: buzzer_enabled
icon: mdi:volume-high
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
- platform: template
name: LED enabled
id: led_enabled
icon: mdi:alarm-light-outline
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
+11 -11
View File
@@ -28,7 +28,7 @@ esphome:
# - wait_until:
# api.connected:
# - logger.log: API is connected!
# - rtttl.play: "success:d=24,o=5,b=100:c,g,b"
# - rtttl.play: "success:d=32,o=5,b=100:c,g,b"
# - light.turn_on:
# id: notify_led
# brightness: 100%
@@ -91,13 +91,13 @@ api:
uri += tag_id;
message->add_uri_record(uri);
id(pn532_module).write_mode(message);
- rtttl.play: "write:d=24,o=5,b=100:b"
- rtttl.play: "write:d=32,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: notify_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- rtttl.play: "write:d=32,o=5,b=100:b,b"
- action: write_music_tag
variables:
@@ -123,13 +123,13 @@ api:
message->add_text_record(text);
}
id(pn532_module).write_mode(message);
- rtttl.play: "write:d=24,o=5,b=100:b"
- rtttl.play: "write:d=32,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: notify_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- rtttl.play: "write:d=32,o=5,b=100:b,b"
globals:
- id: source
@@ -271,7 +271,7 @@ pn532_i2c:
condition:
switch.is_on: buzzer_enabled
then:
- rtttl.play: "success:d=24,o=5,b=100:c,g,b"
- rtttl.play: "success:d=32,o=5,b=100:c,g,b"
on_tag_removed:
then:
- homeassistant.event:
@@ -313,13 +313,13 @@ button:
message->add_uri_record(uri);
ESP_LOGD("tagreader", "Writing payload: %s", uri.c_str());
id(pn532_module).write_mode(message);
- rtttl.play: "write:d=24,o=5,b=100:b"
- rtttl.play: "write:d=32,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: notify_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- rtttl.play: "write:d=32,o=5,b=100:b,b"
- platform: template
name: Clean Tag
id: clean_tag
@@ -333,13 +333,13 @@ button:
green: 64.7%
blue: 0%
- lambda: 'id(pn532_module).clean_mode();'
- rtttl.play: "write:d=24,o=5,b=100:b"
- rtttl.play: "write:d=32,o=5,b=100:b"
- wait_until:
not:
pn532.is_writing:
- light.turn_off:
id: notify_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- rtttl.play: "write:d=32,o=5,b=100:b,b"
- platform: template
name: Cancel writing
id: cancel_writing
@@ -349,7 +349,7 @@ button:
- lambda: 'id(pn532_module).read_mode();'
- light.turn_off:
id: notify_led
- rtttl.play: "write:d=24,o=5,b=100:b,b"
- rtttl.play: "write:d=32,o=5,b=100:b,b"
light:
- platform: esp32_rmt_led_strip
+1
View File
@@ -29,6 +29,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
binary_sensor:
- platform: gpio
+1
View File
@@ -29,6 +29,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
binary_sensor:
- platform: gpio
+2
View File
@@ -30,11 +30,13 @@ esphome:
friendly_name: ${name}
area: ${area}
comment: ${comment}
esp8266:
board: esp01_1m
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
binary_sensor:
- platform: gpio
+1
View File
@@ -63,6 +63,7 @@ esphome:
esp32:
variant: esp32s3
flash_size: 16MB
flash_frequency: 40MHz # the IDF 5.5.5 bootloader reads garbage from this flash (mfr 0x46) at 80MHz
toolchain: esp-idf
framework:
advanced:
+13 -2
View File
@@ -20,6 +20,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
# wifi:
# use_address: mcu-mini-04.local
@@ -53,8 +54,18 @@ binary_sensor:
entity_id: binary_sensor.zigbee_staircase_pir_occupancy
on_state:
if:
condition:
binary_sensor.is_off: motion
condition: &no_motion
and:
- binary_sensor.is_off: motion
- binary_sensor.is_off: motion_2
then:
- light.turn_off: light_relay
- platform: homeassistant
id: motion_2
entity_id: binary_sensor.zigbee_staircase_2_pir_occupancy
on_state:
if:
condition: *no_motion
then:
- light.turn_off: light_relay
+1
View File
@@ -34,6 +34,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
light:
- platform: status_led
+1
View File
@@ -23,6 +23,7 @@ esp8266:
packages:
common: !include common/common_esp8266.yaml
mdns_ipv6: !include common/esp8266_mdns_ipv6.yaml
binary_sensor:
- platform: gpio