From 77f2af3d7462b00f4e625dffa649ec72f5a17e22 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 22 Aug 2025 00:28:23 +1200 Subject: [PATCH] max on time for LED in V1.3 --- esphome/esp-downstairskitchleds.yaml | 95 ++++++++++++++-------------- 1 file changed, 46 insertions(+), 49 deletions(-) diff --git a/esphome/esp-downstairskitchleds.yaml b/esphome/esp-downstairskitchleds.yaml index d6dd744..8d48c97 100644 --- a/esphome/esp-downstairskitchleds.yaml +++ b/esphome/esp-downstairskitchleds.yaml @@ -1,57 +1,54 @@ ########################################################################################## ########################################################################################## # Title: DOWNSTAIRS KITCHEN - OVER PANTRY LEDS -# Hardware: Sinilink Mosfet Board XY-VFMS (ESP8266) +# Hardware: Sinilink MOSFET Board XY-WFMS (ESP8266) — sometimes listed as “XY-VFMS” # https://devices.esphome.io/devices/Sinilink-XY-VFMS # Repo: https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-downstairskitchleds.yaml # -# V1.2 - 2025-08-21 Added some defaults to "Device Specific settings" in substitutions & a PWM % View -# V1.1 - 2025-08-18 Full tidyup as general purpose LED strip controller -# V1.0 - 2025-08-17 First Setup (and replacement of Tasmota) +# v1.3 - 2025-08-22 Added a “max on time” setting (1–48 h, 0 = no limit) +# v1.2 - 2025-08-21 Added defaults to “Device Specific Settings” in substitutions & a PWM % view +# v1.1 - 2025-08-18 Full tidy-up as general-purpose LED strip controller +# v1.0 - 2025-08-17 First setup (and replacement of Tasmota) # # ------------------------------------------ -# DEVICE GPIO Sinilink XY-VFMS +# DEVICE GPIO (Sinilink XY-WFMS) # ------------------------------------------ -# GPIO02 Blue LED (We'll use this for ESPHome status) -# GPIO04 Mosfet Output (0V when switched) and Red LED -# GPIO12 Toggle Button -# GPIO13 Green LED (We'll use this to display fading status) +# GPIO02 Blue LED (used for ESPHome status) +# GPIO04 MOSFET output (0 V when switched) and Red LED +# GPIO12 Toggle button +# GPIO13 Green LED (used to display fading status) # # ------------------------------------------ -# OPERATION (as at V1.2) +# OPERATION (as of v1.3) # ------------------------------------------ -# 1. General Purpose LED controller -# 2. Designed for a Sinilink XY-VFMS board that has a mosfet output and supposedly will handle -# 5A and a DC input of 5V-36V. -# 3. Has global setting for MAX % PWM output for the LEDs so you can give them a longer life. -# 4. Has a min setting for the LEDs and it will switch off if it goes below that to stop any -# flicker at very low PWM outputs. -# 5. PWM freq is set to 2kHz, but you could potentially ramp it up. I was getting resets at -# higher values with this device, but other devices may be better. Obviously if yoou use -# an esp32 you can set it much higher (40kHz I think is the max?) -# 6. Min and Max output settings aren't set in Home assistant/MQTT, but you could do this if -# needed. With a 1MB flash, it is starting to get tight. I have done minimal optimising -# at this stage though. -# 7. There are PACKAGES included for the common things such as the network -# items, diagnostic entities, MQTT and SNTP (if needed, get them from the repo or use your own) -# 8. Default config is to always fade slowly up to full when powered up (so can be deployed with -# no network etc) -# 9. The green LED on the sinilink flashes whilst fading (differently for up/down). The red LED -# follows the output (it is the same GPIO as the MOSFET) -# 10.Timing of fades should be based on settings, or a percentage of them if eg already half brightness. -# 11.A useful 3D printed case: https://cults3d.com/en/3d-model/tool/snapfit-enclosure-for-esp8266-sinilink-xy-wfms-5v-36v-mosfet-switch-module -# 12.Some things you can change in Home Assistant/MQTT -# - Start up function -# - Up/Down/Stop fade buttons -# - A fade up/fade down switch -# - Normal on/off switch (quick ramp up/down) -# - Setting for fade up and fade times (0-60 seconds) -# - Output display of % output (before gamma), and the PWM % output (after gamma) -# - Ability to set output to any value (1-100, but respects min/max) -# - Default has a bunch of device diagnostic in the PACKAGE included (Sensors_Common) +# 1. General-purpose LED controller. +# 2. Designed for the Sinilink XY-WFMS board with a MOSFET output (claimed ~5 A, 5–36 V DC). +# 3. Global setting for MAX % output to extend LED life. +# 4. Minimum output setting; switches fully OFF at/below the minimum to avoid low-PWM flicker. +# 5. PWM frequency is set to 500 Hz by default. You can increase it, but higher values caused +# resets on this device. On ESP32 you can run much higher (~40 kHz). +# 6. Min/Max output settings are not exposed in Home Assistant/MQTT by default, but can be. +# With a 1 MB flash, space is tight and only minimal optimisation has been done so far. +# 7. PACKAGES include common items: network settings, diagnostic entities, MQTT, and SNTP (optional). +# 8. Default behaviour is to fade slowly up to full at power-up (so it can run with no network). +# 9. The green LED flashes while fading (different patterns for up/down). The red LED follows the +# output (it shares the MOSFET GPIO). +# 10. Fade timing scales with the configured values (proportionally when starting mid-brightness). +# 11. Useful 3D-printed case: https://cults3d.com/en/3d-model/tool/snapfit-enclosure-for-esp8266-sinilink-xy-wfms-5v-36v-mosfet-switch-module +# 12. Exposed in Home Assistant/MQTT: +# - Startup action +# - Fade Up / Fade Down / Fade Stop buttons +# - Fade Up/Down switch +# - Normal On/Off switch (quick ramp up/down) +# - Fade up/down times (0–60 s) +# - Output % (pre-gamma) and PWM % (post-gamma) +# - Output Set (1–100, respects min/max) +# - Device diagnostics (from the included package) +# - Maximum “on” time before automatic fade-down (1–48 h; 0 = no limit) # -########################################################################################### ########################################################################################## +########################################################################################## + ########################################################################################## # SPECIFIC DEVICE VARIABLE SUBSTITUTIONS @@ -62,16 +59,16 @@ substitutions: device_name: "esp-downstairskitchleds" friendly_name: "Downstairs Kitchen LEDs" description_comment: "Downstairs Kitchen Over Pantry LEDs :: Sinilink XY-WFMS" - device_area: "Downstairs Kitchen" # Allows ESP device to be automatically linked to an 'Area' in Home Assistant. + device_area: "Downstairs Kitchen" # Allows the ESP device to be automatically linked to an 'Area' in Home Assistant. # Project Naming - project_name: "Sinilink.XY-WFMS" # Project Details - project_version: "v1.2" # Project V denotes release of yaml file, allowing checking of deployed vs latest version + project_name: "Sinilink.XY-WFMS" # Project details + project_version: "v1.3" # Project version denotes release of the YAML file, allowing checking of deployed vs latest version # Passwords & Secrets api_key: !secret esp-api_key ota_pass: !secret esp-ota_pass - static_ip_address: !secret esp-downstairskitchleds_ip # unfortunately you can't use substitutions inside secrets names + static_ip_address: !secret esp-downstairskitchleds_ip # Unfortunately, you can't use substitutions inside secret names mqtt_local_command_main_topic: !secret mqtt_local_command_main_topic mqtt_local_status_main_topic: !secret mqtt_local_status_main_topic @@ -83,12 +80,12 @@ substitutions: mqtt_local_device_command_OFF: "OFF" # Device Specific Settings - log_level: "NONE" # Define logging level: NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE - update_interval: "20s" # update time for for general sensors etc - led_gamma: "1.2" # Gamma from 1.2 - 3 is sensible to normalise the lED fading vs PWM + log_level: "NONE" # Define logging level: NONE, ERROR, WARN, INFO, DEBUG (default), VERBOSE, VERY_VERBOSE + update_interval: "20s" # Update time for general sensors, etc. + led_gamma: "1.2" # Gamma from 1.2–3 is sensible to normalise the LED fading vs PWM minimum_led_output: "1" # % If at this value or below, we'll switch it completely off - maximum_led_output: "90" # % Maximum output, it is sometimes nice to limit the output for longevity or aesthetic - max_on_default_hours: "6" # The max the LEDs will be on for, in case they get left on. 0 = no automatic turn-off + maximum_led_output: "90" # % Maximum output; it is sometimes nice to limit the output for longevity or aesthetics + max_on_default_hours: "6" # The maximum time the LEDs will be on, in case they get left on. 0 = no automatic turn-off ########################################################################################## # PACKAGES: Included Common Packages