Webinterface czasowy(?)

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Pietras81 wrote: Thu Feb 06, 2025 10:14 am
SOYER wrote: Wed Feb 05, 2025 7:50 pm
Pogratulować.
Ja mam pytanie można to rozbudować na 3 liczniki ?? Mam dwa do wody oraz gaz również na LIW-01
Jeśli tak bym był chętny na taką binarkę na esp32 c3
Z drugiej strony patrząc, nakład pracy na zmianę tego kodu jest większy niż dokupienie 2 dodatkowych esp za 12 zeta.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
Pietras81
Posts: 2409
Joined: Sun Feb 17, 2019 6:56 am
Location: Osielsko
Been thanked: 1 time

Post

SOYER wrote: Thu Feb 06, 2025 10:57 am
Pietras81 wrote: Thu Feb 06, 2025 10:14 am
SOYER wrote: Wed Feb 05, 2025 7:50 pm
Pogratulować.
Ja mam pytanie można to rozbudować na 3 liczniki ?? Mam dwa do wody oraz gaz również na LIW-01
Jeśli tak bym był chętny na taką binarkę na esp32 c3
Z drugiej strony patrząc, nakład pracy na zmianę tego kodu jest większy niż dokupienie 2 dodatkowych esp za 12 zeta.
Niby racja ale ile tych esp można mieć :) Ja tylko proponowałem nie nalegam.
https://pietras-81.aqi.eco/
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

@klew, @Zibi_007 wkleiłem do mojego szkicu nad SETUP to:

Code: Select all

#ifndef SRC_SUPLA_DEVICE_ENTER_CFG_MODE_AFTER_POWER_CYCLE_H_
#define SRC_SUPLA_DEVICE_ENTER_CFG_MODE_AFTER_POWER_CYCLE_H_

#include <supla/element.h>

class SuplaDeviceClass;

namespace Supla::Device {
class EnterCfgModeAfterPowerCycle : public Supla::Element {
 public:
  explicit EnterCfgModeAfterPowerCycle(uint32_t timeoutMs = 5000,
                                      uint32_t powerCycles = 3,
                                      bool alwaysEnabled = false);

  void onLoadConfig(SuplaDeviceClass *sdc) override;
  void iterateAlways() override;
  void setAlwaysEnabled(bool alwaysEnabled);
  void setIncrementOnlyOnPowerResetReason(bool value);

 private:
  SuplaDeviceClass *sdc = nullptr;
  uint32_t timestampMs = 0;
  uint32_t timeoutMs = 5000;
  uint32_t maxPowerCycles = 3;
  uint32_t currentPowerCycle = 0;
  bool incremented = false;
  bool enabled = false;
  bool alwaysEnabled = false;
  bool incrementOnlyOnPowerResetReason = false;
};

}  // namespace Supla::Device

#endif  // SRC_SUPLA_DEVICE_ENTER_CFG_MODE_AFTER_POWER_CYCLE_H_
następnie w SETUP dodałem, na czuja, nie bardzo wiedząc co robię to:

Code: Select all

Supla::Device::EnterCfgModeAfterPowerCycle(5000, 3, true);
Niestety reset nie działa. Ani po zasilaniu ani po przycisku RST.
Co jeszcze musze dodać?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
klew
Posts: 13905
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Nic tam nie wklejaj, tylko daj include do tego pliku h.
Potem stwórz instancje tej klasy, ale nie jako zmienną tymczasową, która jest usuwana linijkę niżej. Wystarczy że new dasz przed tym
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

klew wrote: Thu Feb 06, 2025 5:51 pm Nic tam nie wklejaj, tylko daj include do tego pliku h.
Potem stwórz instancje tej klasy, ale nie jako zmienną tymczasową, która jest usuwana linijkę niżej. Wystarczy że new dasz przed tym
Thx.
Teraz mam nad SETUP tylko:

Code: Select all

#include <supla/device/enter_cfg_mode_after_power_cycle.h>
a w SETUP:

Code: Select all

 new Supla::Device::EnterCfgModeAfterPowerCycle(5000, 3, true);
Niestety nadal rezultatów brak. Z poziomu cloud bez problemu wchodzi w cfg.
Rozumiem, że w ciągu 5s mam 3x rozłączyć zasilanie, lub 3x nacisnąć RST?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Logi z uruchamiania:

Code: Select all

:14:41.383 -> SSL error: 48, UNKNOWN ERROR CODE (0030)
19:14:41.383 -> LAST STATE ADDED: UNKNOWN ERROR CODE (0030)
19:14:41.383 -> Connected to Supla Server
19:14:41.383 -> Initializing SRPC (proto: 23)
19:14:41.383 -> LAST STATE ADDED: Register in progress
19:14:41.383 -> Current status: [10] Register in progress
19:14:41.383 -> Send: [53 55 50 4C 41 17 01 00 00 00 4B 00 00 00 48 02 00 00 74 6F 6D 61 73 7A 2E 6D 6C 6F 74 65 6B 40 77 70 2E 70 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1B 25 34 68 E1 75 CC 49 E4 8D F8 A1 63 83 BA 2B 4E C4 F5 FE 13 9D 55 DC 7F B0 22 CD B4 26 98 92 53 55 50 4C 41 2D 45 53 50 33 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
19:14:41.383 -> Send: [53 55 50 4C 41 ]
19:14:42.507 -> !!connected to MQTT!!
19:14:42.507 -> PowerCycle: timeout, counter reset to 0
19:14:42.552 -> Recv: [53 55 50 4C 41 17 01 00 00 00 46 00 00 00 07 00 00 00 03 00 00 00 78 1A 01 53 55 50 4C 41 ]
19:14:42.552 -> Device registered (activity timeout 120 s, server version: 26, server min version: 1)
19:14:42.552 -> LAST STATE ADDED: Registered and ready
19:14:42.552 -> Current status: [17] Registered and ready
19:14:42.552 -> Changing activity timeout to 30 s
19:14:42.552 -> Send: [53 55 50 4C 41 17 02 00 00 00 D2 00 00 00 01 00 00 00 1E ]
19:14:42.552 -> Send: [53 55 50 4C 41 ]
19:14:42.552 -> Notification: sending registration for context -1
19:14:42.552 -> Send: [53 55 50 4C 41 17 03 00 00 00 4C 04 00 00 0B 00 00 00 04 FF FF 00 00 00 00 00 00 00 00 ]
19:14:42.552 -> Send: [53 55 50 4C 41 ]
19:14:42.552 -> Send: [53 55 50 4C 41 17 04 00 00 00 E0 01 00 00 00 00 00 00 ]
19:14:42.552 -> Send: [53 55 50 4C 41 ]
19:14:42.552 -> Recv: [53 55 50 4C 41 17 02 00 00 00 AD 02 00 00 1C 00 00 00 01 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 01 00 01 53 55 50 4C 41 ]
19:14:42.552 -> Received new device config
19:14:42.552 -> Processing AutomaticTimeSync config
19:14:42.552 -> Sending device config result OK (1)
19:14:42.552 -> Send: [53 55 50 4C 41 17 05 00 00 00 B7 02 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 ]
19:14:42.552 -> Send: [53 55 50 4C 41 ]
19:14:42.552 -> Send: [53 55 50 4C 41 17 06 00 00 00 E0 01 00 00 00 00 00 00 ]
19:14:42.552 -> Send: [53 55 50 4C 41 ]
19:14:42.552 -> Recv: [53 55 50 4C 41 17 03 00 00 00 DC 00 00 00 03 00 00 00 1E 0A F0 53 55 50 4C 41 ]
19:14:42.552 -> Activity timeout set to 30 s
19:14:42.880 -> Recv: [53 55 50 4C 41 17 04 00 00 00 EA 01 00 00 1A 00 00 00 E9 07 02 06 05 13 0E 29 0E 00 00 00 45 75 72 6F 70 65 2F 57 61 72 73 61 77 00 53 55 50 4C 41 ]
19:14:42.880 -> Clock: current time: 1970-01-01 00:00:06
19:14:42.880 -> Clock: time diff (system-new): -1738869275 s
19:14:42.880 -> Clock: new time: 2025-02-06 19:14:41
19:14:42.880 -> Recv: [53 55 50 4C 41 17 05 00 00 00 EA 01 00 00 1A 00 00 00 E9 07 02 06 05 13 0E 29 0E 00 00 00 45 75 72 6F 70 65 2F 57 61 72 73 61 77 00 53 55 50 4C 41 ]
19:14:42.880 -> Clock: current time: 2025-02-06 19:14:41
19:15:07.545 -> Send: [53 55 50 4C 41 17 07 00 00 00 28 00 00 00 10 00 00 00 39 0A A5 67 00 00 00 00 33 FD 09 00 00 00 00 00 ]
19:15:07.545 -> Send: [53 55 50 4C 41 ]
19:15:07.779 -> Recv: [53 55 50 4C 41 17 06 00 00 00 32 00 00 00 10 00 00 00 2A FC A4 67 00 00 00 00 7C 94 07 00 00 00 00 00 53 55 50 4C 41 ]
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
klew
Posts: 13905
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

SOYER wrote: Thu Feb 06, 2025 6:15 pm Logi z uruchamiania:
Daj pełne logi.
Tutaj widać logi od połączenia z serwerem i widać

Code: Select all

19:14:42.507 -> PowerCycle: timeout, counter reset to 0
To jest infromacja o tym, że minęło 5s od startu i licznik się zresetował do 0. We wcześniejszych logach powinno być widać coś więcej z "PowerCycle"

Nie pamiętam czy ustawienie "3" wymagało 3 resetów, czy 4 resetów. Ta klasa pozwala na resetowanie wiecej razy, także sprawdź :P
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

klew wrote: Thu Feb 06, 2025 6:35 pm
SOYER wrote: Thu Feb 06, 2025 6:15 pm Logi z uruchamiania:
Daj pełne logi.
Tutaj widać logi od połączenia z serwerem i widać

Code: Select all

19:14:42.507 -> PowerCycle: timeout, counter reset to 0
We wcześniejszych logach powinno być widać coś więcej z "PowerCycle"
Jak mam zobaczyć te logi jak wyłączam zasilanie? Logi mam od uruchomienia przecież...
Zmieniłem na 10s i robiłem próby na 3 wyłączenia i na 4 wyłączenia. NIC.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

To raczej działa, tylko nie wiem za bardzo dlaczego u mnie nie chce. W kodzie jest, że liczba resetów ma być większa od ustawionej:

Code: Select all

if (currentPowerCycle > maxPowerCycles) {
      sdc->enterConfigMode();
więc włączam zasilanie i od razu resetuję kilka razy, ale nic z tego, prawie... na kilkadziesiąt prób jedna mi zadziałała...
dlaczego nie wiem

Co zauważyłem, po configu z clouda miałem w okienkach wstawione dane które tam były wcześniej, wystarczyło sprawdzić/poprawić i save and restart, po jednej udanej próbie z tymi resetami okienka w cfg były puste, trzeba było wstawić wszystko.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

SOYER wrote: Thu Feb 06, 2025 7:35 pm To raczej działa, tylko nie wiem za bardzo dlaczego u mnie nie chce. W kodzie jest, że liczba resetów ma być większa od ustawionej:

Code: Select all

if (currentPowerCycle > maxPowerCycles) {
      sdc->enterConfigMode();
więc włączam zasilanie i od razu resetuję kilka razy, ale nic z tego, prawie... na kilkadziesiąt prób jedna mi zadziałała...
dlaczego nie wiem

Co zauważyłem, po configu z clouda miałem w okienkach wstawione dane które tam były wcześniej, wystarczyło sprawdzić/poprawić i save and restart, po jednej udanej próbie z tymi resetami okienka w cfg były puste, trzeba było wstawić wszystko.
Nic więcej Ci nie napiszę poza tym, że trzeba "z wyczuciem". Na początku też mi łapało co którąś próbę. Pamiętam też, że lepiej mi wychodziło, jak odłączałem kabel od zasilania (przy zasilaczu) a nie od ESP.
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036

Return to “Pomysły i koncepcje”