“fun2” działa zgodnie z oczekiwaniami, natomiast “fun 1” też działa (steruje jasnością i pozwala wyłączyć światło), ale przy każdym wywołaniu w debug pojawia się CALL-service API error flows (5).json (5,7 KB)
czy ktoś mógłby mi wytłumaczyć dlaczego? nie jestem programistą, ale ja różnicy logicznej nie widzę, a mimo to funkcje zachowują się inaczej, no i dlaczego mimo zwracanego błędu działa sterowanie?
U mnie to wyglada tak
“Call-service API error. Error Message: expected int for dictionary value @ data[‘brightness’]”
Błąd ten pojawił się po którejś aktualizacji.
@artpc tak mam skonfigurowane, za wyjątkiem tego że będę chciał w tej funkcji sterować również barwą dlatego jako parametr do brightness nie mogę dać payload
@Marcin_Domański wiem, celowo tak jest zrobione, długie naciśnięcie ma spowodować wyłączenie światła, ponieważ chce całe sterowanie schować w jednej funkcji, to taki sposób wyłączenia sobie wymyśliłem (dla parametru brightness poniżej 30 lampa wyłącza się), natomiast zapisana w pamięci ma być wartość ostatniej jasności, tak żeby nie startować od zera. Muszę robić to sterowanie tak na około, bo to tuya, opóźnienia są tak duże że nie ma mowy o odczycie obecnej wartości jasności, zmianie i wysłaniu nowej do lampy tak jak to robił @artur w swoim pzykładzie
@artur z góry dziekuje, na chwilę obecną poradziłem sobie zamieniając if na switch, błędu już nie mam i całe sterowanie działa OK, ale chętnie dowiedziałbym się dlaczego w jednej funkcji błąd pojawia się a w drugiej nie.
Jeszcze jedno pytanie przy okazji, jeśli funkcja wypracowuje dwie lub więcej zmiennych, które potem czymś sterują, np. jak u mnie msg.jasnosc i msg.barwa, to czy można jedną wartość wyprowadzić na jedno wyjście a drugą na drugą? próba w stylu return[jasnosc,barwa] nie powiodła się
a możesz mi jeszcze dać wynik debug z tego nodu “przycisk”. Rozumiem, ze tam w payload jest single/double ale jak byś mógł mi dla pewności wysłać będzie prościej
Jak podłączam swój przycisk pod Twój proces to wszystko działa bez błędu. Więc jak na razie nie udaje mi się tego odtworzyć. Z punktu widzenia kodu wszystko wygląda dobrze. Daj znać czy dalej masz ten problem (gdy zmienisz switch na funkcje) ewentualnie tak jak prosiłem wcześniej podaj mi dokładny wynik obiektu msg z przycisku
To ja wtrące tak trochę pobocznie. Nie próbowałeś zmienić w żarówce softu, za pomocą tuya-convert, na Tasmote? Ja tak zrobiłem ze swoją ze softem Tuya i mam jasność od 1 do 100% sterowanie przez mqqt i opróżnienia na poziomie poniżej 1s. Ale zmian nie mogę dokonywać częściej niż 1x na sekundę.
Poniżej 20% faktycznie widoczne jest dla oka “drganie światła”, ale jest możliwe i zależy od tego czy w dzień czy w nocy.
@Marcin_Domański nie, nie próbowałem… trochę podchodzę do tego jak “pies do jeża” jestem sprzętowcem, więc wolałbym zrobić to lokalnie programatorem, a do tego trzeba zdjąć plafon… do tego z tego co poczytałem to jest spore niebezpieczeństwo że sprzęt z nowym softem tuya nie pójdzie zdalnie, a wolałbym nie uwalić plafonu… żona zabije
@artur
tu kompletny msg
{“topic”:“sensor.0x00158d000279e9a1_click”,“payload”:“single”,“data”:{“entity_id”:“sensor.0x00158d000279e9a1_click”,“old_state”:{“entity_id”:“sensor.0x00158d000279e9a1_click”,“state”:"",“attributes”:{“battery”:100,“click”:“single”,“linkquality”:55,“voltage”:3022,“friendly_name”:“0x00158d000279e9a1_click”,“icon”:“mdi:toggle-switch”},“last_changed”:“2020-10-13T16:23:04.593895+00:00”,“last_updated”:“2020-10-14T07:05:42.929211+00:00”,“context”:{“id”:“ac9ba5a10deb11eb9eb39f907becdcad”,“parent_id”:null,“user_id”:null}},“new_state”:{“entity_id”:“sensor.0x00158d000279e9a1_click”,“state”:“single”,“attributes”:{“battery”:100,“click”:“single”,“linkquality”:55,“voltage”:3022,“friendly_name”:“0x00158d000279e9a1_click”,“icon”:“mdi:toggle-switch”},“last_changed”:“2020-10-14T07:05:42.940301+00:00”,“last_updated”:“2020-10-14T07:05:42.940301+00:00”,“context”:{“id”:“ac9d5acf0deb11eba347cf850113b1eb”,“parent_id”:null,“user_id”:null},“timeSinceChangedMs”:398}},"_msgid":“8307f2ff.a7b11”,“jasnosc”:155}
tyle że marnie to widać… nie wiem jak pokazać to lepiej (zrzut ekranu nie obejmuje całości)
zauważyłem że błąd pojawia się wtedy gdy przypisanie wartości do msg (np. msg.jasnosc) odbywa się w zakresie funkcji if, jeśli natomiast tam zmieniam wartość zmiennej, a do msg przypisuje bezpośrednio przed return msg to wszystko jest ok
@Robert_Król męczę na wszystkie sposoby tą funkcję i nie mam błędu. To musi być coś konkretnie u Ciebie. Jedyne co mi przychodzi do głowy to sesja na teamviewer.
zawsze możesz to zrobić kiedy jej nie będzie w domu i w razie czego powiedzieć że się skończyła . A na poważnie, ja też myślałem że uwaliłem żarówkę przez WiFi, okazało się że potrzebuje trochę więcej czasu by wstać
Chyba nie warto zawracać sobie głowy i tracić czasu, udało mi się znaleźć rozwiązanie które działa i nie generuje błędów. I tak musiałem jednak użyć nodu switch, bo inaczej musiałbym każdą możliwą akcję swojego przełącznika uwzględnić w funkcji switch, robiło się to mało czytelne.
Teraz zrobiłem sobie oddzielne funkcje do jasności i barwy, a wyzwalam je z konkretnych wyjść switcha, wszystko działa jak chce, a co ważniejsze nie generuje błędów
tak to teraz wygląda
sek w tym że ten plafon mi też się podoba… jak go montowałem to nie wiedziałem o tych problemach z komunikacją tuya wifi
jakbym miał panel na stole to pewnie bym już przeprogramował, a tak to teraz wygrywa lenistwo…
jasne, mam dwa rodzaje plafonów, większy od spectrum smart (nymphea) ~150PLN (~50cm 36W (bodajże), drugi mniejszy ale z RGB od LSC (kupiony w Action) ~69PLN
Oba integrują się bardzo fajnie z HA, można nimi sterować poprzez NR, tylko trzeba pamiętać o ograniczeniach tuya.
Najważniejsze to że nawet przy minimalnej jasności nie migają