Inteligentna żarówka GU10 5W (?) firmy ? jest dostępna pod marką Avatar Controls od około listopada 2020 roku, na przykład w Amazon.com , Amazon.co.uk i Amazon.de . Zwykle jest zintegrowany z inteligentnym domem za pomocą aplikacji Avatar Controls.
Produkty
Zasada działania
Bezpośrednio na płytce drukowanej zastosowano mikrokontroler BK7231N firmy Beken, który łączy się z chmurą Tuya za pośrednictwem Wi-Fi i steruje pięcioma wielokolorowymi, a także każdą z sześciu chłodno-białych i ciepłobiałych diod LED. Ściemnialną lampę RGBCW (SM2235) można obsługiwać za pomocą aplikacji.
Firmware flashing
Nie można odłączyć się od chmury Tuya za pomocą CloudCutter, ponieważ wstępnie zainstalowane oprogramowanie układowe w wersji 1.5.32 z klasą oem_bk7231n_light_ty zostało już załatane przed znaną luką.
Dlatego OpenBeken musi zostać sflashowany przez interfejs szeregowy (GND, 3.3V, U1_TX, U1_RX).
Konfiguracja oprogramowania
Szablon OpenBeken:
Zawartość pliku autoexec.bat:
Ustawienie OpenBeken, aby zapamiętać ustawiony czas standardowy lub letni:
Config → Configure Startup → Channel 6: -1
Objaśnienie oprogramowania sprzętowego
Lampa ma być zainstalowana w odpornej na warunki atmosferyczne obudowie zewnętrznej i używana do oświetlania rzeźby z płynnymi przejściami kolorów w zimie, świecąc w ciemnych godzinach porannych i wieczornych, z czasem włączania i wyłączania w zależności od słońca.
Problemy z oprogramowaniem
1. Nie ma gotowego sterownika do płynnych przejść kolorów, tak jak w przypadku adresowalnych diod LED z PixelAnim, prawda? Dlatego zdefiniowałem ten alias razem z flagą 18:
Jednak w dzienniku pojawia się następujące zdarzenie:
Czy wystarczy rozdzielić to długie polecenie, bo błąd wtedy znika z logu?
2. Wygląda na to, że ten plik autoexec.bat przeciąża lampę, bo co jakiś czas zdarzają się awarie i pojawia się komunikat, np:
3. Sprawdzanie stanu początkowego po uruchomieniu opiera się na tym poście , ale działa tylko przy wyłączonej lampce, a nie przy wywołaniu aliasu startColorWheelTransition, bo komentarz jest źle interpretowany (bez niego jest dobrze):
| Producent | ? |
| Nazwa modelu | Żarówka Smart Bulb GU10 5W |
| Numer modelu | ? |
| Nazwa płytki drukowanej | 26X32SEG21172 |
| PCB date | ? |
Produkty
| Nazwa marki | Avatar Sterowanie |
| Nazwa produktu | Żarówka Smart Bulb GU10 5W |
| Numer produktu | ALS23L |
| GTIN-13 (EAN-13) | - |
| Numer artykułu | X001ASUR2F |
Zasada działania
Bezpośrednio na płytce drukowanej zastosowano mikrokontroler BK7231N firmy Beken, który łączy się z chmurą Tuya za pośrednictwem Wi-Fi i steruje pięcioma wielokolorowymi, a także każdą z sześciu chłodno-białych i ciepłobiałych diod LED. Ściemnialną lampę RGBCW (SM2235) można obsługiwać za pomocą aplikacji.
Firmware flashing
Nie można odłączyć się od chmury Tuya za pomocą CloudCutter, ponieważ wstępnie zainstalowane oprogramowanie układowe w wersji 1.5.32 z klasą oem_bk7231n_light_ty zostało już załatane przed znaną luką.
Dlatego OpenBeken musi zostać sflashowany przez interfejs szeregowy (GND, 3.3V, U1_TX, U1_RX).
Konfiguracja oprogramowania
Szablon OpenBeken:
{
"vendor": "?",
"bDetailed": "0",
"name": "Smart Bulb GU10 5W",
"model": "?",
"chip": "BK7231N",
"board": "on PCB",
"flags": "2251937261425664",
"keywords": [
"26X32SEG21172",
"Avatar Controls",
"ALS23L",
"X001ASUR2F",
"LED",
"RGBCW",
"SM2235",
"GU10",
"500 lm",
"5.0 W"
],
"pins": {
"24": "SM2235DAT;0",
"26": "SM2235CLK;0"
},
"command": "SM2235_Map 1 0 2 3 4",
"image": "https://obrazki.elektroda.pl/1057299100_1763206637.png",
"wiki": "https://www.elektroda.com/rtvforum/topic_YOUR_TOPIC.html"
}Zawartość pliku autoexec.bat:
// Enable NTP (Network Time Protocol) driver
startDriver ntp
// Config local NTP server IP address
//ntp_setServer 192.168.1.1 // OpenWrt
//ntp_setServer 192.168.10.1 // LibreCMC
ntp_setServer 192.168.178.1 // Fritz!Box
// Config local time zone
setChannelType 5 Default
setChannelLabel 5 "Time Zone Offset"
setChannelPrivate 5 1
setChannelVisible 5 0
//setChannel 5 -5 // EST (Eastern Standard Time)
setChannel 5 1 // CET (Central European Time)
// Config summer time
setChannelType 6 Toggle
setChannelLabel 6 "Summer Time" 0
setChannelPrivate 6 1
addChangeHandler Channel6 == 0 ntp_timeZoneOfs $CH5 // Standard time
addChangeHandler Channel6 == 1 ntp_timeZoneOfs $CH5+1 // Summer time
// Config local time
if $CH6==0 then "ntp_timeZoneOfs $CH5" else "ntp_timeZoneOfs $CH5+1"
// Config location
//ntp_setLatlong 38.895 -77.036667 // District of Columbia, United States
ntp_setLatlong 52.518611 13.408333 // Berlin, Germany
// Wait for available time values
waitFor NTPState 1
// Store current time
setChannelType 10 TimerSeconds
setChannelLabel 10 "Current Time"
setChannelPrivate 10 1
setChannelVisible 10 0
// Config aliased commands
alias startColorWheelTransition addRepeatingEventID 48 -1 1 backlog led_lerpSpeed 32; led_basecolor_rgbcw #0000FF0000; delay_s 4; led_basecolor_rgbcw #007FFF0000; delay_s 4; led_basecolor_rgbcw #00FFFF0000; delay_s 4; led_basecolor_rgbcw #00FF7F0000; delay_s 4; led_basecolor_rgbcw #00FF000000; delay_s 4; led_basecolor_rgbcw #7FFF000000; delay_s 4; led_basecolor_rgbcw #FFFF000000; delay_s 4; led_basecolor_rgbcw #FF7F000000; delay_s 4; led_basecolor_rgbcw #FF00000000; delay_s 4; led_basecolor_rgbcw #FF007F0000; delay_s 4; led_basecolor_rgbcw #FF00FF0000; delay_s 4; led_basecolor_rgbcw #7F00FF0000; delay_s 4 // Infinitely repeating color wheel transition
alias stopColorWheelTransition backlog cancelRepeatingEvent 1; led_enableAll 0
alias storeCurrentTime setChannel 10 $hour*3600+$minute*60+$second
alias checkSunriseTime backlog removeClockEvent 5; storeCurrentTime; if $sunrise>=18000 then "addClockEvent 05:00 0xff 5 startColorWheelTransition" // Turn on light every day at 05:00, unless sun has already risen
alias checkSunsetTime backlog removeClockEvent 6; storeCurrentTime; if $sunset<=72000 then "addClockEvent sunset 0xff 6 startColorWheelTransition" // Turn on light every day at sunset, unless it is already 20:00
// Config clock events
addClockEvent 01:00 0xff 1 checkSunriseTime // Check whether addClockEvent for 05:00 is possible
addClockEvent sunrise 0xff 2 stopColorWheelTransition // Turn off light every day at sunrise
addClockEvent 13:00 0xff 3 checkSunsetTime // Check whether addClockEvent for sunset is possible
addClockEvent 20:00 0xff 4 stopColorWheelTransition // Turn off light every day at 20:00
// Initialize lamp
checkSunriseTime
checkSunsetTime
storeCurrentTime
if $hour>=05&&$CH10<=$sunrise then startColorWheelTransition // Turn on light from 05:00 to sunrise
if $CH10>$sunrise&&$CH10<$sunset then "led_enableAll 0" // Turn off light from sunrise to sunset
if $CH10>=$sunset&&$hour<=20 then startColorWheelTransition // Turn on light from sunset to 20:00
if $hour>20||$hour<05 then "led_enableAll 0" // Turn off light from 20:00 to 05:00Ustawienie OpenBeken, aby zapamiętać ustawiony czas standardowy lub letni:
Config → Configure Startup → Channel 6: -1
Objaśnienie oprogramowania sprzętowego
Lampa ma być zainstalowana w odpornej na warunki atmosferyczne obudowie zewnętrznej i używana do oświetlania rzeźby z płynnymi przejściami kolorów w zimie, świecąc w ciemnych godzinach porannych i wieczornych, z czasem włączania i wyłączania w zależności od słońca.
Problemy z oprogramowaniem
1. Nie ma gotowego sterownika do płynnych przejść kolorów, tak jak w przypadku adresowalnych diod LED z PixelAnim, prawda? Dlatego zdefiniowałem ten alias razem z flagą 18:
alias startColorWheelTransition addRepeatingEventID 48 -1 1 backlog led_lerpSpeed 32; led_basecolor_rgbcw #0000FF0000; delay_s 4; led_basecolor_rgbcw #007FFF0000; delay_s 4; led_basecolor_rgbcw #00FFFF0000; delay_s 4; led_basecolor_rgbcw #00FF7F0000; delay_s 4; led_basecolor_rgbcw #00FF000000; delay_s 4; led_basecolor_rgbcw #7FFF000000; delay_s 4; led_basecolor_rgbcw #FFFF000000; delay_s 4; led_basecolor_rgbcw #FF7F000000; delay_s 4; led_basecolor_rgbcw #FF00000000; delay_s 4; led_basecolor_rgbcw #FF007F0000; delay_s 4; led_basecolor_rgbcw #FF00FF0000; delay_s 4; led_basecolor_rgbcw #7F00FF0000; delay_s 4 // Infinitely repeating color wheel transitionJednak w dzienniku pojawia się następujące zdarzenie:
...
Error:CMD:Too many args, skipped all after 32nd.
Info:CMD:New alias has been set: startColorWheelTransition runs addRepeatingEventID 48 -1 1 backlog led_lerpSpeed 32; led_basecolor_rgbcw #0000FF0000; delay_s 4; led_basecolor_rgbcw #007FFF0000; delay_s 4; led_basecolor_rgbcw #00FFFF0000; delay_s 4; led_basecolor_rgbcw #00FF7F0000; delay_s 4; led_basecolor_rgbcw #00FF000000; delay_s 4; led_basecolor_rgbcw #7FFF000000; delay_s 4; led_basecolor_rgbcw #FFFF000000; delay_s 4; led_basecolor_rgbcw #FF7F000000; delay_s 4; led_basecolor_rgbcw #FF00000000; delay_s 4; led_basecolor_rgbcw #FF007F0000; delay_s 4; led_basecolor_rgbcw #FF00FF0000; delay_s 4; led_basecolor_rgbcw #7F00FF0000; delay_s 4 // Infinitely repeating color wheel transition
Info:CMD:New alias has been set: stopColorWheelTransition runs backlog cancelRepeatingEvent 1; led_enableAll 0
Info:CMD:New alias has been set: storeCurrentTime runs setChannel 10 $hour*3600+$minute*60+$second
Info:CMD:New alias has been set: checkSunriseTime runs backlog removeClockEvent 5; storeCurrentTime; if $sunrise>=18000 then "addClockEvent 05:00 0xff 5 startColorWheelTransition" // Turn on light every day at 05:00, unless sun has already risen
Info:CMD:New alias has been set: checkSunsetTime runs backlog removeClockEvent 6; storeCurrentTime; if $sunset<=72000 then "addClockEvent sunset 0xff 6 startColorWheelTransition" // Turn on light every day at sunset, unless it is already 20:00
...Czy wystarczy rozdzielić to długie polecenie, bo błąd wtedy znika z logu?
alias setColorWheelCool backlog led_basecolor_rgbcw #0000FF0000; delay_s 4; led_basecolor_rgbcw #007FFF0000; delay_s 4; led_basecolor_rgbcw #00FFFF0000; delay_s 4; led_basecolor_rgbcw #00FF7F0000; delay_s 4; led_basecolor_rgbcw #00FF000000; delay_s 4; led_basecolor_rgbcw #7FFF000000; delay_s 4
alias setColorWheelWarm backlog led_basecolor_rgbcw #FFFF000000; delay_s 4; led_basecolor_rgbcw #FF7F000000; delay_s 4; led_basecolor_rgbcw #FF00000000; delay_s 4; led_basecolor_rgbcw #FF007F0000; delay_s 4; led_basecolor_rgbcw #FF00FF0000; delay_s 4; led_basecolor_rgbcw #7F00FF0000; delay_s 4
alias startColorWheelTransition addRepeatingEventID 48 -1 1 backlog led_lerpSpeed 32; setColorWheelCool; setColorWheelWarm // Infinitely repeating color wheel transition2. Wygląda na to, że ten plik autoexec.bat przeciąża lampę, bo co jakiś czas zdarzają się awarie i pojawia się komunikat, np:
...
Error:MAIN:Low heap warning!
...3. Sprawdzanie stanu początkowego po uruchomieniu opiera się na tym poście , ale działa tylko przy wyłączonej lampce, a nie przy wywołaniu aliasu startColorWheelTransition, bo komentarz jest źle interpretowany (bez niego jest dobrze):
...
Info:CMD:addRepeatingEvent: interval nan, repeats 0, command [on light from sunset to 20:00]
...