Pytania techniczne dotyczące kodu [bramka ZigBee]
Moderator: vajera
-
vajera
- Posts: 7293
- Joined: Wed Oct 31, 2018 7:58 am
- Location: Biedrusko
- Has thanked: 291 times
- Been thanked: 161 times
@klew Pytanie w temacie funkcji setSubDeviceId() - wygląda to tak, jakby po pierwszym użyciu tej funkcji serwer zapamiętywał tę wartość dla danego kanału - nie można tego zmienić później z poziomu SuplaDevice. Pomaga dopiero usunięcie całego urządzenia i ponowna rejestracja na serwerze - można to jakoś obejść?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 136 times
- Been thanked: 137 times
Czemu chcesz zmieniać to id?vajera wrote: Mon Jan 26, 2026 2:27 pm @klew Pytanie w temacie funkcji setSubDeviceId() - wygląda to tak, jakby po pierwszym użyciu tej funkcji serwer zapamiętywał tę wartość dla danego kanału - nie można tego zmienić później z poziomu SuplaDevice. Pomaga dopiero usunięcie całego urządzenia i ponowna rejestracja na serwerze - można to jakoś obejść?
Najlepsze suple dla Twojego domu 
-
vajera
- Posts: 7293
- Joined: Wed Oct 31, 2018 7:58 am
- Location: Biedrusko
- Has thanked: 291 times
- Been thanked: 161 times
Odpowiem sam sobie - przejrzałem kod Supla-core i wydaje mi się, że sub_channel_id jest tylko w funkcji add_channel - tutaj byłaby chyba potrzebna funkcja analogiczna do update_channel_functions?vajera wrote: Mon Jan 26, 2026 2:27 pm @klew Pytanie w temacie funkcji setSubDeviceId() - wygląda to tak, jakby po pierwszym użyciu tej funkcji serwer zapamiętywał tę wartość dla danego kanału - nie można tego zmienić później z poziomu SuplaDevice. Pomaga dopiero usunięcie całego urządzenia i ponowna rejestracja na serwerze - można to jakoś obejść?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
-
vajera
- Posts: 7293
- Joined: Wed Oct 31, 2018 7:58 am
- Location: Biedrusko
- Has thanked: 291 times
- Been thanked: 161 times
Już odpowiadam - tylko się nie irytujklew wrote: Mon Jan 26, 2026 3:02 pmCzemu chcesz zmieniać to id?vajera wrote: Mon Jan 26, 2026 2:27 pm @klew Pytanie w temacie funkcji setSubDeviceId() - wygląda to tak, jakby po pierwszym użyciu tej funkcji serwer zapamiętywał tę wartość dla danego kanału - nie można tego zmienić później z poziomu SuplaDevice. Pomaga dopiero usunięcie całego urządzenia i ponowna rejestracja na serwerze - można to jakoś obejść?
Bramka dodaje urządzenia Zigbee według predefiniowanych zestawów, ale czasami okazuje się, że jakiś kanał nie działa itp. Oczywiście można go wyłączyć w Cloud i nie będzie widoczny w aplikacji, ale do niedawna użytkownicy bramki mieli możliwość usuwania zbędnych kanałów.
Teraz to nie działa - usunięcie pojedynczego kanału w bramce powoduje konflikt w Cloud, ale tam trzeba już usunąć całe urządzenie.
Wymyśliłem, że zmienię subDeviceId takiego kanału na "0" i wtedy będzie go można usunąć pojedynczo, ale okazuje się, że to nie jest takie proste.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
-
vajera
- Posts: 7293
- Joined: Wed Oct 31, 2018 7:58 am
- Location: Biedrusko
- Has thanked: 291 times
- Been thanked: 161 times
Niby można, ale od samego początku chciałem dawać użytkownikom bramki dostęp do jak największej funkcjonalności każdego urządzenia Zigbee, więc część czujników ma dodatkowe kanały binarne/KPOP a wychodzi na to, że nie wszystkim są potrzebne.klew wrote: Mon Jan 26, 2026 3:42 pm To z innej strony bym do tego podszedł: czy można nie tworzyć zbędnych kanałów?![]()
To w sumie nie jest jakiś istotny problem - zawsze można ukryć te kanały w Cloud a może kiedyś przyjdzie potrzeba do nich wrócić
Natomiast ruszam temat w kontekście ogólnorozwojowym Supla - rozumiem, że fizyczne urządzenie ma raczej stałą liczbę kanałów, ale różne urządzenia wirtualne (np. bramki itp.) mogą już mieć zmienną ilość. Ten problem zarysował się też, gdy dodałem do bramki tę opcję urządzeń podwykonawczych - użytkownicy starszych wersji bramki musieli usuwać całe urządzenie z Cloud, żeby zarejestrowało się z nowymi sub_id.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
-
george1255
- Posts: 426
- Joined: Fri Sep 02, 2022 8:48 pm
- Location: Włodawa
- Has thanked: 12 times
- Been thanked: 7 times
Code: Select all
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6910:91: error: 'class Control' has no member named 'getValueInt'
6910 | ESPUI.getControl(valve_program_selector)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6913:88: error: 'class Control' has no member named 'getValueInt'
6913 | ESPUI.getControl(valve_cycles_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6917:101: error: 'class Control' has no member named 'getValueInt'
6917 | value_32 = ESPUI.getControl(valve_worktime_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6921:99: error: 'class Control' has no member named 'getValueInt'
6921 | value_32 = ESPUI.getControl(valve_volume_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6928:87: error: 'class Control' has no member named 'getValueInt'
6928 | ESPUI.getControl(valve_pause_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6975:83: error: 'class Control' has no member named 'getValueInt'
6975 | switch (ESPUI.getControl(valve_program_selector)->getValueInt()) {
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6986:95: error: 'class Control' has no member named 'getValueInt'
6986 | valve_cmd_payload[2] = ESPUI.getControl(valve_cycles_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6989:93: error: 'class Control' has no member named 'getValueInt'
6989 | value_32 = ESPUI.getControl(valve_worktime_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6991:91: error: 'class Control' has no member named 'getValueInt'
6991 | value_32 = ESPUI.getControl(valve_volume_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:6997:82: error: 'class Control' has no member named 'getValueInt'
6997 | value_32 = ESPUI.getControl(valve_pause_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7043:83: error: 'class Control' has no member named 'getValueInt'
7043 | switch (ESPUI.getControl(valve_program_selector)->getValueInt()) {
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7049:98: error: 'class Control' has no member named 'getValueInt'
7049 | ESPUI.getControl(valve_worktime_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7057:210: error: 'class Control' has no member named 'getValueInt'
7057 | ESPUI.getControl(valve_worktime_number)->getValueInt());
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7064:96: error: 'class Control' has no member named 'getValueInt'
7064 | ESPUI.getControl(valve_volume_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7072:208: error: 'class Control' has no member named 'getValueInt'
7072 | ESPUI.getControl(valve_volume_number)->getValueInt());
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7090:80: error: 'class Control' has no member named 'getValueInt'
7090 | ESPUI.getControl(valve_cycles_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7093:71: error: 'class Control' has no member named 'getValueInt'
7093 | ESPUI.getControl(valve_pause_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7099:192: error: 'class Control' has no member named 'getValueInt'
7099 | ESPUI.getControl(valve_cycles_number)->getValueInt());
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7103:191: error: 'class Control' has no member named 'getValueInt'
7103 | ESPUI.getControl(valve_pause_number)->getValueInt());
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7109:88: error: 'class Control' has no member named 'getValueInt'
7109 | ESPUI.getControl(gas_alarm_ringtone_selector)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7133:82: error: 'class Control' has no member named 'getValueInt'
7133 | ESPUI.getControl(gas_alarm_time_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7191:87: error: 'class Control' has no member named 'getValueInt'
7191 | ESPUI.getControl(moes_alarm_melody_selector)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7216:85: error: 'class Control' has no member named 'getValueInt'
7216 | ESPUI.getControl(moes_alarm_volume_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7240:87: error: 'class Control' has no member named 'getValueInt'
7240 | ESPUI.getControl(moes_alarm_duration_number)->getValueInt();
| ^~~~~~~~~~~
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp: In function 'void TuyaDeviceSelectorCallback(Control*, int)':
/private/var/folders/0r/bgn60rdj6ndbmbp84h_kx02m0000gn/T/.arduinoIDE-unsaved202611-68940-4dnw0s.aci23/Z2S_Gateway/z2s_web_gui.cpp:7268:39: error: 'class Control' has no member named 'getValueInt'
7268 | int16_t device_slot = sender->getValueInt();
| ^~~~~~~~~~~
Znaleziono wiele bibliotek w "WiFi.h"
Wykorzystane: /Users/zbyszek/Library/Arduino15/packages/esp32/hardware/esp32/3.3.6/libraries/WiFi
Niewykorzystane: /Users/zbyszek/Documents/Arduino/libraries/WiFiEspAT
exit status 1
Compilation error: conversion from 'long int' to 'const String' is ambiguousco mam nie aktualne?
próba aktualizacji do Release v1.3.30
-
vajera
- Posts: 7293
- Joined: Wed Oct 31, 2018 7:58 am
- Location: Biedrusko
- Has thanked: 291 times
- Been thanked: 161 times
Musisz zaktualizować bibliotekę ESPUI z mojego GitHuba.george1255 wrote: Sun Feb 01, 2026 8:07 pm
Compilation error: conversion from 'long int' to 'const String' is ambiguous[/code]
co mam nie aktualne?![]()
próba aktualizacji do Release v1.3.30
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
-
george1255
- Posts: 426
- Joined: Fri Sep 02, 2022 8:48 pm
- Location: Włodawa
- Has thanked: 12 times
- Been thanked: 7 times
niewiele to dalo.vajera wrote: Sun Feb 01, 2026 8:37 pmMusisz zaktualizować bibliotekę ESPUI z mojego GitHuba.george1255 wrote: Sun Feb 01, 2026 8:07 pm
Compilation error: conversion from 'long int' to 'const String' is ambiguous[/code]
co mam nie aktualne?![]()
próba aktualizacji do Release v1.3.30
pelny log https://pastebin.com/nqvhEd4e
