logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Interfejs sieciowy OpenBK Timer Podobny do Tasmota: Dostępność i opcje

RappaSan 02 Mar 2026 13:41 1206 21
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21852402
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    Szukam interfejsu webowego dla timera OpenBK (jak w Tasmota).
    Czy taki istnieje?
    Znalazłem artykuł na https://www.elektroda.com/qa,openbeken-timer-webinterface-setup.html, ale nie mogę znaleźć żadnej zakładki "Harmonogramy" w aplikacji internetowej.
  • REKLAMA
  • #2 21853781
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14800
    Pomógł: 659
    Ocena: 12960
    Taki był plan, ale nie został jeszcze wdrożony. Czy mogę jakoś pomóc w ustawieniu timerów za pomocą skryptu? Albo mogę spróbować przyspieszyć interfejs użytkownika w tym celu ... prawdopodobnie coś generującego autoexec.bat lub lepiej, oddzielny plik skryptu, ale również wykonywany przy starcie przez oprogramowanie układowe.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 21853897
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    >>21853781 Dzięki za miłą odpowiedź, ale nie. W tej chwili nie ma takiej potrzeby.
    Lepiej poczekać, aż ta funkcja zostanie zaimplementowana w OBK.
  • #4 21915839
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    Istnieje polecenie time_setDST, ale nie jest ono aktywowane w wersjach do pobrania.
    Czy to nie niedorzeczne?
  • #5 21915926
    Adriaan2
    Poziom 4  
    Posty: 8
    Jestem zdezorientowany. Otrzymuję błędy dla każdego z ustawień DST (Zbudowany 2 czerwca 2026 12:15:38 wersja 1.18.289). Czytając ten wątek, widzę, że prefiks się zmienił, więc spróbowałem starego prefiksu. W innej odpowiedzi nazywa się clock_calcDST, więc też spróbowałem:

    Error:CMD:cmd time_setDST NOT found (args 0 3 1 2 1 0 10 1 3 0)
    Info:CMD:[WebApp Cmd 'time_setDST 0 3 1 2 1 0 10 1 3 0' Result] Unknown command
    
    Error:CMD:cmd clock_setDST NOT found (args 0 3 1 2 1 0 10 1 3 0)
    Info:CMD:[WebApp Cmd 'clock_setDST 0 3 1 2 1 0 10 1 3 0' Result] Unknown command
    
    Error:CMD:cmd clock_calcDST NOT found (args 0 3 1 2 1 0 10 1 3 0)
    Info:CMD:[WebApp Cmd 'clock_calcDST 0 3 1 2 1 0 10 1 3 0' Result] Unknown command
    
    Error:CMD:cmd time_calcDST NOT found (args 0 3 1 2 1 0 10 1 3 0)
    Info:CMD:[WebApp Cmd 'time_calcDST 0 3 1 2 1 0 10 1 3 0' Result] Unknown command


    Co się dzieje? Czy powinienem załadować jakiś dodatkowy sterownik?

    Problem, który chciałbym rozwiązać to automatyczna zmiana czasu przez MCU. Jeśli jest na to inny sposób, chciałbym się o tym dowiedzieć.

    Zanim ktoś zapyta: to w moim autoexec.bat:
    // 
    // name      : $RCSfile: Action_Socket_3202087-2_unit_1_autoexec.bat,v $ $Revision: 1.2 $
    // issued   : $Date: 2026/06/05 10:24:57 $
    // description   : OpenBeken autoexec.bat for LCS Socket 3202087.2
    //
    // id      : $Id: Action_Socket_3202087-2_unit_1_autoexec.bat,v 1.2 2026/06/05 10:24:57 adriaan Exp adriaan $
    //
    // Based on script found at https://www.elektroda.com/news/news4087228.html
    
    // Do not enable powersaving because the BL0937 requires exact
    // pulse/interrupt counting. See comment 16 Nov 2024 11:01 at URL
    // above
    PowerSave 0
    
    // Set IP of NTP server (if you'd like to keep things local)
    // ntp_setServer 172.16.1.73
    // Start NTP driver
    startDriver NTP
    
    // Timezone is Central European time (1 hr ahead of UTC)
    time_setTZ 1
    // Change time offset (last week (0) of March (3) 1st (1) at 2:00 (2)
    // with one hour (1), and last week (0) of October (10) 1st (1) at
    // 3:00 back to 0 hours).
    // https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md)
    time_setDST 0 3 1 2 1 0 10 1 3 0
    // Setting the devices location will allow for calculating sunrise and
    // sunset times
    time_setLatlong (removed for privacy)
    
    // Energy statistics: enabled, 60 sec intervals, 60 samples, no JSON
    SetupEnergyStats 1 60 60 0
    
    // Switch the socket to always "on" after boot
    SetChannel 1 1
    
    // Wait for NTP to connect
    waitFor NTPState 1
  • REKLAMA
  • #6 21917073
    Adriaan2
    Poziom 4  
    Posty: 8
    Dopiero teraz rozumiem, co @RappaSan miał na myśli: W source na GitHub, ta funkcja nie jest włączona, więc nie jest częścią plików binarnych, które są pobierane za pomocą narzędzia EasyFlash pod Windows.

    Interfejs sieciowy OpenBK Timer Podobny do Tasmota: Dostępność i opcje

    Spróbuję samodzielnie skompilować firmware, gdy się za to zabiorę.
  • #7 21917948
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14800
    Pomógł: 659
    Ocena: 12960
    @insmod @max4elektroda @divadiow Mam pytanie od @RappaSan, czy możemy włączyć time_setDST w głównym wydaniu (główny build). Jak myślicie, czy mamy na to wystarczający rozmiar flasha?
    Pomogłem? Kup mi kawę.
  • #8 21917959
    Adriaan2
    Poziom 4  
    Posty: 8
    Gdy tylko uda mi się zbudować wersję lokalną, dam znać, o ile większy staje się obraz obiektu. Kiedy chciałbyś podjąć decyzję o włączeniu time_setDST? Czy uważasz, że kod zadziała (przypuszczam, że nie jest testowany na OpenBeken)?
  • #9 21917982
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14800
    Pomógł: 659
    Ocena: 12960
    Ale dlaczego chcesz budować lokalnie? Możesz kompilować na Githubie, to tylko kilka kliknięć:
    https://www.elektroda.com/rtvforum/topic4033833.html
    Pomogłem? Kup mi kawę.
  • #10 21917987
    Adriaan2
    Poziom 4  
    Posty: 8
    Tylko moja ignorancja. Jestem nowy w OpenBK, a właściwie nowy w MCU) i jestem przyzwyczajony do crosscompile rzeczy, które dostaję z github. Będę musiał poszukać jak to zrobić na githubie. Dzięki za wskazówkę - może to być o wiele szybsze niż pobieranie specjalnych rzeczy!
  • #11 21918038
    insmod
    Poziom 31  
    Posty: 1432
    Pomógł: 168
    Ocena: 455
    >>21917948
    BK7238 rozmiar
    Brak DST
    text data bss dec hex filename
    740408 5976 86640 833024 cb600 ./out/bk7231_bsp.elf
    Z DST
    dane tekstowe bss dec hex nazwa pliku
    742304 5976 86656 834936 cbd78 ./out/bk7231_bsp.elf
  • #12 21918829
    max4elektroda
    Poziom 24  
    Posty: 758
    Pomógł: 49
    Ocena: 189
    p.kaczmarek2 napisał:
    Jak myślisz, czy mamy na to wystarczającą ilość pamięci flash?


    To zależy, jak często jest używany i czy jest „wart” swojej „ceny” w pamięci: Wzrost jest dość znaczny, głównie około 2k (wynik bez plików „OTA” lub „rbl”):

    
    Size +/-    Filename                                              main_bf3682a7ef91      dsttest_4bce2fcf3eba
    -1          obkSimulator_XX.zip                                             2515017                    2515016
    0           OpenBK7231M_ALT_QIO_XX.bin                                      1253376                    1253376
    0           OpenBK7231M_ALT_QIO_XX_btproxy.bin                              1253376                    1253376
    0           OpenBK7231M_QIO_XX.bin                                          1220464                    1220464
    0           OpenBK7231N_ALT_QIO_XX.bin                                      1253376                    1253376
    0           OpenBK7231N_ALT_QIO_XX_btproxy.bin                              1253376                    1253376
    0           OpenBK7231N_ALT_UA_XX.bin                                       1183744                    1183744
    0           OpenBK7231N_ALT_UA_XX_btproxy.bin                               1183744                    1183744
    0           OpenBK7231N_QIO_XX_battery.bin                                  1220464                    1220464
    0           OpenBK7231N_QIO_XX_berry.bin                                    1220464                    1220464
    0           OpenBK7231N_QIO_XX.bin                                          1220464                    1220464
    0           OpenBK7231N_QIO_XX_hlw8112.bin                                  1220464                    1220464
    0           OpenBK7231N_QIO_XX_irRemoteESP.bin                              1220464                    1220464
    0           OpenBK7231N_QIO_XX_powerMetering.bin                            1220464                    1220464
    0           OpenBK7231N_QIO_XX_sensors.bin                                  1220464                    1220464
    0           OpenBK7231N_QIO_XX_tuyaMCU.bin                                  1220464                    1220464
    0           OpenBK7231N_UA_XX_battery.bin                                   1150832                    1150832
    0           OpenBK7231N_UA_XX_berry.bin                                     1150832                    1150832
    0           OpenBK7231N_UA_XX.bin                                           1150832                    1150832
    0           OpenBK7231N_UA_XX_hlw8112.bin                                   1150832                    1150832
    0           OpenBK7231N_UA_XX_irRemoteESP.bin                               1150832                    1150832
    0           OpenBK7231N_UA_XX_powerMetering.bin                             1150832                    1150832
    0           OpenBK7231N_UA_XX_sensors.bin                                   1150832                    1150832
    0           OpenBK7231N_UA_XX_tuyaMCU.bin                                   1150832                    1150832
    0           OpenBK7231T_ALT_QIO_XX.bin                                      1253376                    1253376
    0           OpenBK7231T_ALT_UA_XX.bin                                       1183744                    1183744
    0           OpenBK7231T_QIO_XX_berry.bin                                    1048576                    1048576
    0           OpenBK7231T_QIO_XX.bin                                          1048576                    1048576
    0           OpenBK7231T_QIO_XX_irRemoteESP.bin                              1048576                    1048576
    0           OpenBK7231T_QIO_XX_powerMetering.bin                            1048576                    1048576
    0           OpenBK7231T_QIO_XX_sensors.bin                                  1048576                    1048576
    0           OpenBK7231T_QIO_XX_tuyaMCU.bin                                  1048576                    1048576
    0           OpenBK7231T_UA_XX_berry.bin                                      978944                     978944
    0           OpenBK7231T_UA_XX.bin                                            978944                     978944
    0           OpenBK7231T_UA_XX_irRemoteESP.bin                                978944                     978944
    0           OpenBK7231T_UA_XX_powerMetering.bin                              978944                     978944
    0           OpenBK7231T_UA_XX_sensors.bin                                    978944                     978944
    0           OpenBK7231T_UA_XX_tuyaMCU.bin                                    978944                     978944
    0           OpenBK7231U_QIO_XX.bin                                          1253376                    1253376
    0           OpenBK7231U_UA_XX.bin                                           1183744                    1183744
    0           OpenBK7238_QIO_XX_battery.bin                                   1253376                    1253376
    0           OpenBK7238_QIO_XX_berry.bin                                     1253376                    1253376
    0           OpenBK7238_QIO_XX.bin                                           1253376                    1253376
    0           OpenBK7238_QIO_XX_btproxy.bin                                   1253376                    1253376
    0           OpenBK7238_QIO_XX_irRemoteESP.bin                               1253376                    1253376
    0           OpenBK7238_UA_XX_battery.bin                                    1183744                    1183744
    0           OpenBK7238_UA_XX_berry.bin                                      1183744                    1183744
    0           OpenBK7238_UA_XX.bin                                            1183744                    1183744
    0           OpenBK7238_UA_XX_btproxy.bin                                    1183744                    1183744
    0           OpenBK7238_UA_XX_irRemoteESP.bin                                1183744                    1183744
    0           OpenBK7252N_QIO_XX.bin                                          1253376                    1253376
    0           OpenBK7252N_UA_XX.bin                                           1183744                    1183744
    0           OpenBK7252_QIO_XX.bin                                           1253376                    1253376
    0           OpenBK7252_UA_XX.bin                                            1183744                    1183744
    0           OpenRTL8720D_XX.bin                                             1138688                    1138688
    16          OpenW800_XX.fls                                                  708496                     708512
    192         OpenRTL87X0C_XX.bin                                              835652                     835844
    256         OpenRTL87X0C_XX_btproxy.bin                                      925828                     926084
    1024        OpenXR806_DCDC_XX.img                                            901984                     903008
    1024        OpenXR806_XX.img                                                 901984                     903008
    1024        OpenXR809_XX.img                                                 916264                     917288
    1280        OpenBK7231T_UG_XX_tuyaMCU.bin                                    497776                     499056
    1296        OpenBK7231N_UG_XX_hlw8112.bin                                    459968                     461264
    1296        OpenBK7231T_UG_XX_powerMetering.bin                              497824                     499120
    1316        OpenW600_XX_gz.img                                               348728                     350044
    1360        OpenBK7231N_UG_XX_berry.bin                                      586176                     587536
    1376        OpenBK7231T_UG_XX_irRemoteESP.bin                                562592                     563968
    1412        OpenECR6600_XX.bin                                               996137                     997549
    1424        OpenBK7231N_UG_XX_powerMetering.bin                              519792                     521216
    1504        OpenBK7231N_UG_XX_battery.bin                                    472224                     473728
    1536        OpenRDA5981_XX.bin                                               511532                     513068
    1536        OpenTXW81X_XX.bin                                                606736                     608272
    1552        OpenBK7231N_UG_XX_tuyaMCU.bin                                    518656                     520208
    1584        OpenBK7231N_UG_XX_irRemoteESP.bin                                581088                     582672
    1600        OpenBK7231N_UG_XX.bin                                            520864                     522464
    1600        OpenBK7231T_UG_XX_sensors.bin                                    489728                     491328
    1608        OpenW600_XX.fls                                                  567488                     569096
    1640        OpenLN882H_XX_btproxy.bin                                        980528                     982168
    1648        OpenBK7231N_UG_XX_sensors.bin                                    513856                     515504
    1648        OpenBK7231T_UG_XX.bin                                            495872                     497520
    1680        OpenLN882H_XX.bin                                                734840                     736520
    1680        OpenRTL8710B_XX.bin                                              680692                     682372
    1696        OpenRTL8721DA_XX.bin                                            1571456                    1573152
    1704        OpenTR6260_XX.bin                                                671864                     673568
    1712        OpenESP32S2_XX_4M.factory.bin                                   1065984                    1067696
    1712        OpenESP32S2_XX_4M.img                                           1000448                    1002160
    1712        OpenESP32S3_XX_4M.factory.bin                                   1102960                    1104672
    1712        OpenESP32S3_XX_4M.img                                           1037424                    1039136
    1728        OpenESP32_XX_4M.factory.bin                                     1103232                    1104960
    1728        OpenESP32_XX_4M.img                                             1037696                    1039424
    1728        OpenRTL8720E_XX.bin                                             1309600                    1311328
    1776        OpenBK7231T_UG_XX_berry.bin                                      560768                     562544
    1792        OpenRTL8710A_XX.bin                                              690628                     692420
    1864        OpenBK7231U_XX.bin                                               752272                     754136
    1880        OpenBK7231N_ALT_XX.bin                                           752664                     754544
    1880        OpenBK7231N_ALT_XX_btproxy.bin                                   906728                     908608
    1880        OpenBK7231T_ALT_XX.bin                                           750336                     752216
    1880        OpenBK7238_XX_battery.bin                                        715808                     717688
    1880        OpenBK7238_XX.bin                                                746440                     748320
    1880        OpenBK7238_XX_btproxy.bin                                        949232                     951112
    1880        OpenBK7238_XX_irRemoteESP.bin                                    823080                     824960
    1880        OpenBK7252N_XX.bin                                               725028                     726908
    1880        OpenBK7252_XX.bin                                                730988                     732868
    1888        OpenBK7238_XX_berry.bin                                          843392                     845280
    1944        OpenBK7231N_XX_battery.bin                                       731805                     733749
    1944        OpenBK7231N_XX_berry.bin                                         929345                     931289
    1944        OpenBK7231N_XX_hlw8112.bin                                       711461                     713405
    1944        OpenBK7231N_XX_irRemoteESP.bin                                   922125                     924069
    1944        OpenBK7231N_XX_sensors.bin                                       818353                     820297
    1944        OpenBK7231T_XX.bin                                               793177                     795121
    1944        OpenBK7231T_XX_powerMetering.bin                                 773909                     775853
    1944        OpenBK7231T_XX_tuyaMCU.bin                                       774013                     775957
    1952        OpenBK7231N_XX.bin                                               826985                     828937
    1952        OpenBK7231N_XX_powerMetering.bin                                 804629                     806581
    1952        OpenBK7231N_XX_tuyaMCU.bin                                       803365                     805317
    1952        OpenBK7231T_XX_berry.bin                                         895537                     897489
    1952        OpenBK7231T_XX_irRemoteESP.bin                                   897437                     899389
    1952        OpenBK7231T_XX_sensors.bin                                       786001                     787953
    2032        OpenESP8266_1MB_XX.factory.bin                                   768464                     770496
    2032        OpenESP8266_2MB_XX.factory.bin                                   768464                     770496
    2032        OpenESP8266_XX.img                                               702928                     704960
    2048        OpenGD32VW553_XX.bin                                             869045                     871093
    2048        OpenXR872_XX.img                                                 794456                     796504
    2144        OpenESP32C6_XX_4M.factory.bin                                   1286720                    1288864
    2144        OpenESP32C6_XX_4M.img                                           1221184                    1223328
    2160        OpenESP32C3_XX_2M.factory.bin                                   1039632                    1041792
    2160        OpenESP32C3_XX_2M.img                                            974096                     976256
    2160        OpenESP32C3_XX_4M.factory.bin                                   1189984                    1192144
    2160        OpenESP32C3_XX_4M.img                                           1124448                    1126608
    2176        OpenESP32C2_XX_2M.factory.bin                                    934960                     937136
    2176        OpenESP32C2_XX_2M.img                                            869424                     871600
    2176        OpenESP32C2_XX_4M.factory.bin                                   1071952                    1074128
    2176        OpenESP32C2_XX_4M.img                                           1006416                    1008592
    2176        OpenESP32C5_XX_4M.factory.bin                                   1274112                    1276288
    2176        OpenESP32C5_XX_4M.img                                           1208576                    1210752
    2176        OpenESP32C61_XX_4M.factory.bin                                  1240064                    1242240
    2176        OpenESP32C61_XX_4M.img                                          1174528                    1176704
    2208        OpenBL602_XX_berry.bin                                           907508                     909716
    2224        OpenBL602_XX.bin                                                 782172                     784396
    3248        OpenLN8825_XX.bin                                                923000                     926248
    3360        OpenRTL8710B_UG_XX.img                                          1271328                    1274688
    


    Część kodu służy do „korygowania” wyników, na przykład włączenie czasu letniego zapewni poprawne informacje o czasie letnim w wynikach JSON zamiast „2022-03-27T02:00:00” i „2022-10-30T03:00:00”.

    Z drugiej strony nie sądzę, abyśmy zbliżali się jeszcze do maksymalnego rozmiaru; widzę tylko BL602_berry zbliżające się do limitu 1 MB (907508 do 909716).
    OTA nie działa nawet dla „zwykłego” Berry, ale flashowanie oprogramowania DST przez port szeregowy przebiegło pomyślnie, DST działa.


    Interfejs sieciowy OpenBK Timer Podobny do Tasmota: Dostępność i opcje


    Właśnie zdałem sobie sprawę, że dokumentacja polecenia „time_setDST” jest błędna :-( opisuje, że używa ono „godzin” jako przesunięcia, podczas gdy w rzeczywistości używa minut.

    Naprawię to i sprawdzę, czy uda mi się wycisnąć jeszcze kilka bajtów poprzez optymalizację kodu.
  • REKLAMA
  • #13 21919148
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    Miło to słyszeć, z góry dziękuję.
  • Pomocny post
    #14 21919416
    max4elektroda
    Poziom 24  
    Posty: 758
    Pomógł: 49
    Ocena: 189
    Utworzono PR#2127 w celu poprawienia wywołania funkcji „time_setDST”

    Jeśli chcesz to przetestować, pliki binarne dla wszystkich platform z włączoną funkcją „DST” znajdziesz tutaj w sekcji artefaktów (wymagane jest zalogowanie):
    https://github.com/MaxineMuster/OpenBK7231T_App/actions/runs/27356496470

    W PR DST jest nadal wyłączone, tak jak wcześniej, poprawiono jedynie wywołanie.

    Teraz możliwe są oba wywołania: jeśli przesunięcie DST wynosi 1, zinterpretujemy to jako 1 godzinę (prawie nie ma innych wartości), w przeciwnym razie jako minuty, więc „60” doprowadzi do tej samej reguły:
    TIME_setDST 0 3 1 2 1 0 10 1 3 0
    equals
    TIME_setDST 0 3 1 2 60 0 10 1 3 0
  • #15 21919423
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    Rany, ależ tu plików, dzięki.
    Niestety jestem na urlopie, ale wypróbuję je jak najszybciej.
  • #16 21924753
    Adriaan2
    Poziom 4  
    Posty: 8
    Wypróbowałem oprogramowanie DSTtest i działa (w moim przypadku).

    Pracuję nad inteligentnym gniazdkiem („Action” (nazwa sklepu), nr katalogowy LSC 3202087.2, kosztującym około 7,00 €, z modułem T1-2S-NL zawierającym mikrokontroler BK7238). Chcę, żeby urządzenie włączało się o zachodzie słońca i wyłączało o wschodzie słońca, a ja (najlepiej) nie musiałbym się już nigdy tym martwić.

    Dla porównania, oto mój plik autoexec.bat:
    // 
    // name		: $RCSfile: Action_Socket_3202087-2_unit_1_autoexec.bat,v $ $Revision: 1.4 $
    // issued	: $Date: 2026/06/20 10:59:39 $
    // description	: OpenBeken autoexec.bat for LSC Socket 3202087.2
    //
    // id		: $Id: Action_Socket_3202087-2_unit_1_autoexec.bat,v 1.4 2026/06/20 10:59:39 adriaan Exp $
    //
    
    // --------------- Start of generic autoexec.bat ------------------
    
    // Do not enable powersaving because the BL0937 requires exact
    // pulse/interrupt counting. See comment 16 Nov 2024 11:01 at
    // https://www.elektroda.com/news/news4087228.html
    PowerSave 0
    
    // Disable noisy logging (temporarily during debugging)
    logfeature 6 0
    logfeature 7 0
    
    // Set IP of NTP server (if you'd like to keep things local)
    ntp_setServer 172.16.1.88
    // Start NTP driver
    startDriver NTP
    
    // Timezone is Central European time (Change this to 2 during DST while
    // time_setDST (below) is not included)
    time_setTZ 1
    // Give (local) time offsets: the last week (0) of March (3) on Sunday (1) at
    // 2:00 (2) of one hour (1), and last week (0) of October (10) on Sunday (1) at
    // 3:00 back to 0 hours.
    time_setDST 0 3 1 2 1 0 10 1 3 0
    // The time_setDST command (above) is not included in regular versions...
    // https://www.elektroda.com/rtvforum/viewtopic.php?p=21917073#21917073
    
    // Setting the devices (approximate) location will allow for calculating
    // sunrise and sunset times
    time_setLatlong 50.285 5.792
    
    // Energy statistics: enabled, 60 sec intervals, 60 samples, no JSON
    SetupEnergyStats 1 60 60 0
    
    // Wait for NTP to connect
    waitFor NTPState 1
    
    // --------------- End of generic autoexec.bat --------------------
    
    // ----------------------------------------------------------------
    // Switch the socket (Channel 1) to always "off" (0) after boot
    SetChannel 1 0
    
    // ----------------------------------------------------------------
    // Script to switch the relay on at sunset and off at sunrise. This uses three
    // ClockEvent UniqueIDs: 1 for sunset, 2 for sunrise and 3 for scheduling the
    // other events. A ClockEvent is set with an absolute time, so we'll have to
    // make a new ClockEvent everyday (at 1:00 am).
    
    // Aliases:
    // Remove ClockEvent 1, then schedule any day of the week (0xff) with uniqueID
    // 1: SetChannel 1 to "on" at (today's!) sunset
    alias set_sunset backlog removeClockEvent 1; addClockEvent $sunset 0xff 1 SetChannel 1 1
    // Remove ClockEvent 2, then schedule any day of the week (0xff) with uniqueID
    // 2: SetChannel 1 to "off" at (today's!) sunrise
    alias set_sunrise backlog removeClockEvent 2; addClockEvent $sunrise 0xff 2 SetChannel 1 0
    
    // After boot, schedule what to do at next sunset and sunrise
    set_sunset
    set_sunrise
    
    // (Re)schedule the times for today's solar phase, everyday at 1:00 am
    addClockEvent 1:00 0xff 3 backlog set_sunset; set_sunrise
    
    // vim:set textwidth=0 ft=java:

    A oto log rozruchowy:
    Info:CMD:CMD_StartScript: started @startup at the beginning
    Info:CMD:CMD_StartScript: started autoexec.bat at the beginning
    Info:MAIN:Main_Init_After_Delay done
    Info:HTTP:TCP server listening
    Info:CMD:CMD_PowerSave: will set to 0
    Error:CMD:cmd ntp_setServer NOT found (args 172.16.1.88)
    Info:NTP:NTP driver initialized with server=172.16.1.88, offset=0, syncing every 60 seconds
    Info:NTP:Time offset set to 3600 seconds (DST offset 0 seconds)
    Info:NTP:DST config set: offset=3600 seconds
    Info:NTP:TIME latitude set to 50.285
    Info:NTP:TIME longitude set to 5.792
    Info:EnergyMeter:Consumption History enabled
    Info:EnergyMeter:Sample Count: 60
    Info:EnergyMeter:Sample Interval: 60
    Info:NTP:Seconds since Jan 1 1900 = 3990939770
    DST switch - calling fix_DSTforEvents(60)
    In summer time - next DST switch at 1792897200 (2026-10-25 03:00:00)
    Info:NTP:Unix time: 1781950970 - local Time 2026-06-20 12:22:50
    Info:CMD:New alias has been set: set_sunset runs backlog removeClockEvent 1; addClockEvent $sunset 0xff 1 SetChannel 1 1
    Info:CMD:New alias has been set: set_sunrise runs backlog removeClockEvent 2; addClockEvent $sunrise 0xff 2 SetChannel 1 0
    Info:NTP:TIME sunset is at 21:50
    Info:NTP:TIME sunset is at 21:50
    Info:NTP:TIME sunrise is at 05:25
    Info:NTP:TIME sunrise is at 05:25

    Oczywiście muszę poczekać do dzisiejszego zachodu słońca, żeby faktycznie sprawdzić, czy to działa, ale testy i logi wyglądają obiecująco. Za tydzień opublikuję wyniki.

    Tymczasem dziękuję @max4elektroda za stworzenie tego oprogramowania i poprawkę dotyczącą godzin i minut – nie musiałem nawet zmieniać polecenia, które wypróbowałem wcześniej!
  • #17 21924813
    max4elektroda
    Poziom 24  
    Posty: 758
    Pomógł: 49
    Ocena: 189
    Adriaan2 napisał:
    Oczywiście muszę poczekać do dzisiejszego zachodu słońca, żeby faktycznie zobaczyć, jak to działa, ale testy i logi wyglądają obiecująco. Za tydzień opublikuję wyniki.

    Może i tak, ale jeśli jesteś niecierpliwy tak jak ja ;-) , możesz też ustawić zegar na dowolny czas, np. 5 sekund przed przewidywanym przełączeniem.

    $  date -d "2026-06-20 21:49:55" +%s
    1781984995


    --> time_setTime 1781984995



    Przy okazji: Chociaż używasz zmiennych „$sunset” i „$sunrise” – co oznacza, że musisz codziennie ustawiać czas (np. tak jak w twoim skrypcie o 1:00) – możesz również użyć „sunset”/„sunrise”, co spowoduje ponowne obliczenie następnego zdarzenia po jego wystąpieniu.

    Oto mój (podobny) skrypt do włączania światła każdej „nocy” (ten „długi” kod służy do ustawienia prawidłowego stanu podczas uruchamiania [używany tylko wtedy, gdy socket jest uruchamiany „w nocy”):


    startdriver ntp
    clock_setTZ 1
    CLOCK_setDST 0 3 1 2 60 0 10 1 3 0
    // let's user Berlin here ...
    clock_setLatLong 52.5200  13.4050
    waitFor NTPState 1
    // on boot: Force relay off ...
    setChannel 0 0
    // .. and set relay "on", if we are between sunset and sunrise ("before" sunrise or "after" sunset)
    if $hour*3600+$minute*60+$second-$sunrise<0||$hour*3600+$minute*60+$second-$sunset>0 then setChannel 0 1
    // set (recurring) sunset/sunrise event
    addClockEvent sunset 0xff 31 setChannel 0 1
    addClockEvent sunrise 0xff 32 setChannel 0 0
  • #18 21925099
    Adriaan2
    Poziom 4  
    Posty: 8
    Jeszcze raz dziękuję, @max4elektroda. Teraz wygląda to o wiele przejrzyściej, bez dodatkowego zaplanowanego zdarzenia ClockEvent (o godz. 1:00 w nocy). Nie zauważyłem, że jako sunset zamiast $ sunset . Nadal nie mogę tego znaleźć w dokumentacji – czy wiesz, gdzie jest to udokumentowane? Albo: czy można by to dodać do sekcji dotyczącej stałych (chociaż „ sunset ” (zamiast „ $ sunset ”) raczej nie jest stałą...)?

    Ta informacja może się również przydać australijskiemu użytkownikowi @ilengyel – użyłem $ sunset oraz dodatkowe zdarzenia zegarowe po przeczytaniu jego artykułu na tej stronie.

    Bezwstydnie skopiowałem również twoją instrukcję if, aby określić stan podczas uruchamiania. Oto wynik:
    // 
    // name      : $RCSfile: Action_Socket_3202087-2_unit_1_autoexec.bat,v $ $Revision: 1.5 $
    // issued   : $Date: 2026/06/21 05:13:08 $
    // description   : OpenBeken autoexec.bat for LSC Socket 3202087.2
    //
    // id      : $Id: Action_Socket_3202087-2_unit_1_autoexec.bat,v 1.5 2026/06/21 05:13:08 adriaan Exp $
    //
    
    // --------------- Start of generic autoexec.bat ------------------
    
    // Do not enable powersaving because the BL0937 requires exact
    // pulse/interrupt counting. See comment 16 Nov 2024 11:01 at
    // https://www.elektroda.com/news/news4087228.html
    PowerSave 0
    
    // Disable noisy logging (temporarily during debugging)
    logfeature 6 0
    logfeature 7 0
    
    // Set IP of NTP server (if you'd like to keep things local)
    ntp_setServer 172.16.1.88
    // Start NTP driver
    startDriver NTP
    
    // Timezone is Central European time (Change this to 2 during DST while
    // time_setDST (below) is not included)
    time_setTZ 1
    // Give (local) time offsets: the last week (0) of March (3) on Sunday (1) at
    // 2:00 (2) of one hour (1), and last week (0) of October (10) on Sunday (1) at
    // 3:00 back to 0 hours.
    time_setDST 0 3 1 2 1 0 10 1 3 0
    // The time_setDST command (above) is not included in regular versions...
    // https://www.elektroda.com/rtvforum/viewtopic.php?p=21917073#21917073
    
    // Setting the devices (approximate) location will allow for calculating
    // sunrise and sunset times
    time_setLatlong 50.285 5.792
    
    // Energy statistics: enabled, 60 sec intervals, 60 samples, no JSON
    SetupEnergyStats 1 60 60 0
    
    // Wait for NTP to connect
    waitFor NTPState 1
    
    // --------------- End of generic autoexec.bat --------------------
    
    // ----------------------------------------------------------------
    // Switch the relay on at sunset and off at sunrise. Note the use of "sunrise"
    // (will be determined at each reference) and "$sunrise" (is a 'constant' set
    // at the time of evaluation).
    
    // After boot, make sure channel 1 is off (0), then switch channel 1 on (1) if
    // the time is before $sunrise or after $sunset
    setChannel 1 0
    if $hour*3600+$minute*60+$second<$sunrise||$hour*3600+$minute*60+$second>$sunset then setChannel 1 1
    
    // Schedule any day of the week (0xff) with uniqueID 1: SetChannel 1 to "on"
    // (1) at sunset
    addClockEvent sunset 0xff 1 SetChannel 1 1
    // Schedule any day of the week (0xff) with uniqueID 2: SetChannel 1 to "off"
    // (0) at sunrise
    addClockEvent sunrise 0xff 2 SetChannel 1 0
    
    // vim:set textwidth=0 ft=java:
  • #19 21925255
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    Godziny wschodu i zachodu słońca można znaleźć w sekcji addClockEvent. :-)
  • #20 21925269
    Adriaan2
    Poziom 4  
    Posty: 8
    To?
    Cytat:
    UWAGA: Korzystanie z funkcji wschodu i zachodu słońca wymaga kompilacji z ustawionym flagą ENABLE_TIME_SUNRISE_SUNSET

    Chyba się starzeję – nigdy nie wywnioskowałem z tej uwagi, że można użyć „sunset” (zamiast $sunset). Nie zauważyłem też, na czym polega różnica. Znalazłem jednak coś innego pod artykułem , o którym wspomniałem wcześniej:
    Zrzut ekranu sekcji FAQ o NTP i addClockEvent w OpenBeken z tabelą opcji i ryzyk
    Nie jestem pewien, skąd to się wzięło – zazwyczaj ignoruję tego typu automatycznie generowane treści na dole stron. No cóż...
  • #21 21925278
    max4elektroda
    Poziom 24  
    Posty: 758
    Pomógł: 49
    Ocena: 189
    Adriaan2 napisał:
    Bezwstydnie skopiowałem twoją instrukcję if

    Wręcz przeciwnie, na tym polega idea dzielenia się kodem (moim zdaniem) ;-) .
    I to absolutnie nie jest zaawansowane kodowanie, można to zrobić nawet sprytniej
  • #22 21930969
    RappaSan
    Poziom 8  
    Posty: 29
    Ocena: 1
    Wpis nr 014:
    Chciałbym jeszcze dodać: funkcja time_setDST działa zgodnie z oczekiwaniami po wprowadzeniu tej poprawki.
    Dziękuję.
REKLAMA