Name the alarm sounds

Replace Sound 1 to 7 with the names identified by ear on this lamp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-11-05 19:19:54 +01:00
1 parent 5c29cdd52f
commit a355f64d1a
4 files changed
+24 -21

No files matched your search

+2 -1
View File
@@ -8,6 +8,7 @@ ESPHome firmware for a Moes Wake Up Light II (Tuya PID `ya39qahrcdhvxowz`), runn
- `alarm_block.yaml`: controls for one alarm, included 4 times.
- `alarm_day.yaml`: one weekday switch, included 7 times per alarm.
- `components/uart`: ESPHome 2026.10.2's UART component with `patches/wbr3-pa13-pa14-uart.patch` applied. Recheck it when ESPHome updates.
- `server-example.yaml`: the short YAML that goes on an ESPHome server.
- `secrets.yaml`: local only, ignored by git. Needs `wifi_ssid`, `wifi_password`, `ap_password`, `api_encryption_key`.
@@ -64,7 +65,7 @@ From Tuya's definition for a sibling product (tuya-local issue #3821). See the R
- Byte 11: above 1 becomes 1.
- Byte 4 is the ring length in minutes: set to 10, a ring ran from 18:16 to 18:26 and the owner saw it stop.
- Sound 0 is silent. In Sound + Light mode, the light still came on and no sound played.
- Sound names, being tested one at a time: Sound 1 is birds chirping. Sounds 2 to 7 are still to do, then the names go into the sound selects.
- Alarm sounds, identified by ear: 1 birds chirping, 2 beach (water and birds), 3 galaxy twinkles, 4 piano and birds, 5 happy harp or high piano, 6 old mechanical alarm clock, 7 old digital alarm clock. Names are in `alarm_block.yaml`. Sunset's sounds 1 to 4 haven't been checked, so they keep their numbers.
- Radio Volume and station writes are ignored with the radio off. With it on, both work, and the station stays selected after turning it off.
- Keep `default_transition_length` at 0. A transition sends about 50 MCU writes a second.
- LibreTiny before v1.14.0 can hang after a software restart or OTA until powered off for about 30 seconds (LibreTiny issue #396). The config pins v1.14.0. Drop the pin once ESPHome defaults to it or newer.
+18 -17
View File
@@ -117,13 +117,13 @@ select:
name: "Alarm ${n} Sound"
options:
- "Off"
- "Sound 1"
- "Sound 2"
- "Sound 3"
- "Sound 4"
- "Sound 5"
- "Sound 6"
- "Sound 7"
- "Birds"
- "Beach"
- "Galaxy Twinkles"
- "Piano and Birds"
- "Happy Harp"
- "Mechanical Alarm Clock"
- "Digital Alarm Clock"
update_interval: 2s
web_server:
sorting_group_id: group_alarm_${n}
@@ -131,20 +131,21 @@ select:
lambda: |-
if (!id(alarm_raw_valid)) return {};
uint8_t s = id(alarm_raw)[${o} + 6];
if (s == 0) return std::string("Off");
if (s >= 1 && s <= 7) return std::string("Sound ") + std::to_string(s);
return {};
static const char *const names[8] = {"Off", "Birds", "Beach", "Galaxy Twinkles", "Piano and Birds",
"Happy Harp", "Mechanical Alarm Clock", "Digital Alarm Clock"};
if (s > 7) return {};
return std::string(names[s]);
set_action:
- lambda: |-
if (!id(alarm_raw_valid)) return;
uint8_t value = 0;
if (x == "Sound 1") value = 1;
else if (x == "Sound 2") value = 2;
else if (x == "Sound 3") value = 3;
else if (x == "Sound 4") value = 4;
else if (x == "Sound 5") value = 5;
else if (x == "Sound 6") value = 6;
else if (x == "Sound 7") value = 7;
if (x == "Birds") value = 1;
else if (x == "Beach") value = 2;
else if (x == "Galaxy Twinkles") value = 3;
else if (x == "Piano and Birds") value = 4;
else if (x == "Happy Harp") value = 5;
else if (x == "Mechanical Alarm Clock") value = 6;
else if (x == "Digital Alarm Clock") value = 7;
id(alarm_raw)[${o} + 6] = value;
- script.execute: send_alarm_settings
+1 -1
View File
@@ -7,6 +7,6 @@ substitutions:
packages:
lamp:
url: https://mangavalk.com/mangavalk/esphome-wake-up-light-ii.git
ref: v1.0.2
ref: v1.0.3
files: [wake-up-light-ii.yaml]
refresh: 1d
+3 -2
View File
@@ -22,7 +22,7 @@ external_components:
- source:
type: git
url: https://mangavalk.com/mangavalk/esphome-wake-up-light-ii.git
ref: v1.0.2
ref: v1.0.3
components: [uart]
refresh: 1d
@@ -268,7 +268,8 @@ tuya:
# [03] repeat days: bit 0 = Monday ... bit 6 = Sunday, 0 = one time
# [04] ring duration (Tuya says 10-20, this lamp reports 30; any value is kept)
# [05] mode bits: bit 0=light, bit 1=radio. Values above 3 are ignored.
# [06] sound 0..7. Writing 8 or more turns on the radio bit and resets it to 1.
# [06] sound 0..7, named in alarm_block.yaml. Writing 8 or more turns on the
# radio bit and resets it to 1.
# Locked at 1 in radio modes.
# [07] volume 1..16 (any value is kept)
# [08] radio station. Not per alarm: every write sets all 4 to the current