Głowice termostatyczne i termostaty ścienne - [bramka ZigBee]

Moderator: vajera

User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

lukasz06 wrote: Tue Apr 22, 2025 4:31 pm To ja zgłaszam że głowica Sonoff pracuje od 4- 35 stopni 😉
Mam podobnie, wilgotność też jest 😁
Nie sprawdzałem innych funkcji o których pisałeś, ale to na spokojnie.
Masz wilgotność bo podłączyłeś zewnętrzny czujnik T/H 😉
Ten termometr, który masz opisany jako temperatura głowicy, to jest pomiar z głowicy, który jest kopią temperatury z czujnika zewnętrznego (to nie jest realny pomiar czujnika głowicy) - ta różnica 0,1 stopnia wynika z błędów zaokrąglania.

Podsumowując - masz podłączony zewnętrzny termometr (ten widoczny w termostacie razem z pomiarem wilgotności) i bramka wysyła pomiar z tego termometru do głowicy, która w związku z tym "myśli", że ma taką temperaturę lokalną i porównuje ją z nastawą temperatury żeby zdecydować czy ma grzać.

Jeżeli np. wyłączysz bramkę to głowica zostanie z tym ostatnim przesłanym pomiarem, ale po 2h przełączy się z powrotem na wewnętrzny termometr.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
lukasz06
Posts: 2543
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

Lepiej bym tego nie ujął :)
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

vajera wrote: Tue Apr 22, 2025 8:50 am
Zibi_007 wrote: Mon Apr 21, 2025 9:23 pm O widzisz! Przynajmniej jest teraz jakaś reakcja :lol:

Code: Select all

>Welcome 192.168.1.117
>Use quit  to disconnect.
custom-cmd 9 0xEF00 3 SET 0 00
>Device 6567
>>custom-cmd 9 0xEF00 0x3 0x50 0x0
>Custom command async request sent
custom-cmd 14 0xEF00 3 SET 0 00
>Device 22471
>>custom-cmd 14 0xEF00 0x3 0x50 0x0
>Custom command async request sent
custom-cmd 11 0xEF00 3 SET 0 00
>Device 45999
>>custom-cmd 11 0xEF00 0x3 0x50 0x0
>Custom command async request sent

Niestety... baterii dalej nie widać. Wezmę później nową głowicę i czystą bramkę. Pomęczę je trochę ;)
A miałeś w tym czasie łączność z głowicą?


Kolejna noc i dzień testowania.
Ostatnie testy powtórzone na 0.7.51 - objawy takie same.
Zacznę od dobrych wieści. Udało mi się odpalić baterię :) Schemat wydaje się prosty, ale trzeba dobrze trafić i wykonać wszystko w odpowiedniej kolejności. Jeśli się nam uda i przy parowaniu pokaże się bateria, to sukces i nie musimy nic robić. Powinna działać i raportować wg swojego schematu (procentowo, albo stanem przerobionym na procenty przez @vajera). Aby zwiększyć szanse na pokazanie baterii juz podczas parowania, przed samym parowaniem resetujemy głowicę, schemat podobny u wszystkich - wyciągamy baterię i przy jej wkładaniu przytrzymujemy przycisk (w tych co maja jeden nie ma wyboru, w tych co mają trzy może to być auto, albo ustawienia). Jeśli nam się nie uda, to nic się nie stało. Można to zrobić w inny sposób. Trzeba z konsoli wydać polecenie:

Code: Select all

custom-cmd numer_kanału_termostatu 0xEF00 3 SET 0 00
np.

Code: Select all

custom-cmd 1 0xEF00 3 SET 0 00
i ważne. W tym momencie musi być komunikacja z głowicą. Zwykłe ustawianie temperatury (czy to w apce, czy na głowicy) nie wystarczy. Przynajmniej u mnie to było za mało, a próbowałem kilkadziesiąt razy (bez efektu). I tutaj wracamy do porady z początku. Wyjmujemy baterię z głowicy i robimy reset. Nie ma obawy, głowica się nie rozparuje, za to powinna pokazać nam się bateria. Próbowałem kilka razy i za każdym zadziałało.
To tyle odnośnie baterii i poradnika, jak sobie można poradzić.

A teraz te złe wieści. Zakładamy, że korzystamy z wewnętrznego termometru głowicy, ale wiemy, że zawyża nam pomiar. Dokonujemy więc w cloud korekty i przedtem była pętla śmierci. Teraz jej nie ma, ale z tego nie wynika nic dobrego. W Supli pojawia nam się w termostacie temperatura po korekcie, a na głowicy po staremu Zilustruję to przykładem (z obrazkami ;-)). Widzę na głowicy 30 stopni. Nie mam, aż tak ciepło. Termometr wewnętrzny zawyża o 7 stopni. Ustawiam w Supli korektę na -7 (głowica nawet pod Tuyą pozwala na +-9). No i pięknie pokazuje wszędzie 23 stopnie, poza głowicą. Bo tam dalej jest 30 stopni. I teraz zagadka. Co się stanie, jak na termostacie w apce ustawię np. 27 stopni? No pięknie pokazuje, że... chłodzi. I nic się nie zmienia nawet po godzinie. W głowicy też oczywiście zawór zamknięty. Dopiero po ustawieniu powyżej 30 stopni reaguje termostat w Supli (pokazuje grzanie) i w głowicy.

A było już tak pięknie ;-)

A na koniec jeszcze jedna zagadka. A co się stanie, jak ustawię korektę na termometrze wewnętrznym, ustawię pomiar z termometru zewnętrznego, a później wrócę do wewnętrznego?
.
..
...
....
.....
Termometr wewnętrzny w termostacie zostanie ustawiony, jak ten zewnętrzny i dodatkowo potraktowany korektą (w efekcie mamy, np. w odniesieniu do przykładu powyżej 23=>21=>14).

@vajera, wiem, że część tych problemów powyżej wynika z tego, że realizuję różne "dziwne" scenariusze, ale akurat ten z korektą w ustawieniach termometru w cloud jest mocno prawdopodobny u przeciętnego użytkownika.
You do not have the required permissions to view the files attached to this post.
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
Kwicol
Posts: 120
Joined: Sun Jan 03, 2021 3:08 pm

Post

-----
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Kwicol wrote: Tue Apr 22, 2025 10:51 pm-----
@Zibi_007 wystraszyłeś kolegę 🤣
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Zibi_007 wrote: Tue Apr 22, 2025 10:20 pm Kolejna noc i dzień testowania.
Ostatnie testy powtórzone na 0.7.51 - objawy takie same.
Zacznę od dobrych wieści. Udało mi się odpalić baterię :) Schemat wydaje się prosty, ale trzeba dobrze trafić i wykonać wszystko w odpowiedniej kolejności. Jeśli się nam uda i przy parowaniu pokaże się bateria, to sukces i nie musimy nic robić. Powinna działać i raportować wg swojego schematu (procentowo, albo stanem przerobionym na procenty przez @vajera). Aby zwiększyć szanse na pokazanie baterii juz podczas parowania, przed samym parowaniem resetujemy głowicę, schemat podobny u wszystkich - wyciągamy baterię i przy jej wkładaniu przytrzymujemy przycisk (w tych co maja jeden nie ma wyboru, w tych co mają trzy może to być auto, albo ustawienia). Jeśli nam się nie uda, to nic się nie stało. Można to zrobić w inny sposób. Trzeba z konsoli wydać polecenie:

Code: Select all

custom-cmd numer_kanału_termostatu 0xEF00 3 SET 0 00
np.

Code: Select all

custom-cmd 1 0xEF00 3 SET 0 00
i ważne. W tym momencie musi być komunikacja z głowicą. Zwykłe ustawianie temperatury (czy to w apce, czy na głowicy) nie wystarczy. Przynajmniej u mnie to było za mało, a próbowałem kilkadziesiąt razy (bez efektu). I tutaj wracamy do porady z początku. Wyjmujemy baterię z głowicy i robimy reset. Nie ma obawy, głowica się nie rozparuje, za to powinna pokazać nam się bateria. Próbowałem kilka razy i za każdym zadziałało.
To tyle odnośnie baterii i poradnika, jak sobie można poradzić.
Wiedziałem, że łatwo się nie poddasz ;)
A teraz te złe wieści. Zakładamy, że korzystamy z wewnętrznego termometru głowicy, ale wiemy, że zawyża nam pomiar. Dokonujemy więc w cloud korekty i przedtem była pętla śmierci. Teraz jej nie ma, ale z tego nie wynika nic dobrego. W Supli pojawia nam się w termostacie temperatura po korekcie, a na głowicy po staremu Zilustruję to przykładem (z obrazkami ;-)). Widzę na głowicy 30 stopni. Nie mam, aż tak ciepło. Termometr wewnętrzny zawyża o 7 stopni. Ustawiam w Supli korektę na -7 (głowica nawet pod Tuyą pozwala na +-9). No i pięknie pokazuje wszędzie 23 stopnie, poza głowicą. Bo tam dalej jest 30 stopni. I teraz zagadka. Co się stanie, jak na termostacie w apce ustawię np. 27 stopni? No pięknie pokazuje, że... chłodzi. I nic się nie zmienia nawet po godzinie. W głowicy też oczywiście zawór zamknięty. Dopiero po ustawieniu powyżej 30 stopni reaguje termostat w Supli (pokazuje grzanie) i w głowicy.

A było już tak pięknie ;-)
Tutaj bym polemizował - było i jest cały czas tak samo ;) -"gdyby nie Twoja dociekliwość, to nie przyszedłby mi do głowy scenariusz, w którym użytkownik ustawia korektę na termometrze głowicy. Nie zmienia to faktu, że oczywiście masz rację - prędzej czy później ktoś by na to wpadł - bo skoro można ustawić to dlaczego nie 😉
Widzę tutaj dwa rozwiązania:
  1. mogę napisać klasę dziedziczącą po VirtualThermHygroMeter, która będzie wysyłała korektę do głowicy, ale to nie będzie dobrze działać i wprowadzi jeszcze więcej zamieszania, zwłaszcza z pozycji przeciętnego użytkownika lub
  2. mogę zastosować rozwiązanie, o którym pomyślał już @klew:

    Code: Select all

      /**
       * Set whether correction should be applied or not.
       * By default temperature and humidity corrections are applied on Channel
       * level, so raw value is read from sensor, then it is corrected and
       * send to server.
       * However correction may be applied by a sensor device itself. In this
       * case, correciton is send to that device and value read from sensor is
       * already corrected.
       *
       * @param applyCorrections true if correction should be applied by SD
       */
      void setApplyCorrections(bool applyCorrections);
    
A na koniec jeszcze jedna zagadka. A co się stanie, jak ustawię korektę na termometrze wewnętrznym, ustawię pomiar z termometru zewnętrznego, a później wrócę do wewnętrznego?
.
..
...
....
.....
Termometr wewnętrzny w termostacie zostanie ustawiony, jak ten zewnętrzny i dodatkowo potraktowany korektą (w efekcie mamy, np. w odniesieniu do przykładu powyżej 23=>21=>14).
Kolejny argument za rozwiązaniem nr 2 😉
@vajera, wiem, że część tych problemów powyżej wynika z tego, że realizuję różne "dziwne" scenariusze, ale akurat ten z korektą w ustawieniach termometru w cloud jest mocno prawdopodobny u przeciętnego użytkownika.
Właśnie o to chodzi - bo Ty wymyślasz scenariusz brzegowy, ale od razu go identyfikujesz i rozbierasz na czynniki pierwsze. Przeciętny użytkownik napisze "nie działa" albo "działa źle" i od razu się zniechęci.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
LukiSpajder
Posts: 1548
Joined: Tue Aug 18, 2020 2:22 pm
Has thanked: 25 times
Been thanked: 34 times

Post

Jeśli chodzi o to drugie rozwiązanie to czy da się tak zrobić żeby z clouda wysłać korektę do urządzenie np. Termometru . Czy te korekty zablokować w cloudzie a ustawić w telnet przesyłając odpowiednią komendę do urządzenia . Czy to możliwe
Bo podobny problem jest z termometrami z wyświetlaczem ustawiając korektę temperatury w cloudzie w apce zobaczymy natomiast na wyświetlaczu jest bez korekty .
Czy to można zrobić ?
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

LukiSpajder wrote: Wed Apr 23, 2025 7:39 am Jeśli chodzi o to drugie rozwiązanie to czy da się tak zrobić żeby z clouda wysłać korektę do urządzenie np. Termometru . Czy te korekty zablokować w cloudzie a ustawić w telnet przesyłając odpowiednią komendę do urządzenia . Czy to możliwe
Bo podobny problem jest z termometrami z wyświetlaczem ustawiając korektę temperatury w cloudzie w apce zobaczymy natomiast na wyświetlaczu jest bez korekty .
Czy to można zrobić ?
Miałem odpisać, że jak dotąd nie natknąłem się na jakikolwiek czujnik temperatury/wilgotności Zigbee, który umożliwiałby przesłanie kalibracji, ale dla zasady postanowiłem to najpierw zweryfikować i...okazuje się, że te SONOFFy SNZB-02D (w wyświetlaczem) mają możliwość przesłania do urządzenia korekty temperatury(-50°C...+50°C, krok 0,1°C) i wilgotności (-50%...+50%, krok 0,1%).
To oznacza, że tworząc obiekt termometru powinienem sprawdzać czy dany model obsługuje kalibrację i w zależności od tego włączać lub wyłączać możliwość ustawiania tejże albo zablokować dla wszystkich i zostawić użytkownikowi możliwość ustawienia przez konsolę.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
LukiSpajder
Posts: 1548
Joined: Tue Aug 18, 2020 2:22 pm
Has thanked: 25 times
Been thanked: 34 times

Post

Fajnie było by to z clouda przestawiać ale to chyba dużo pracy dla Ciebie oznacza 😉, ale w telnet myślę że my użytkownicy to ogarniemy 😁.
W sumie jak zrobisz tak będzie lepiej niż bez możliwość ustawienia korekty na urządzeniu .


Xaomi termometr też ma :

https://github.com/pvvx/ZigbeeTLc

Code: Select all

 Additional settings

ClusterID: 0x0000 (Basic)

Attr: 0x0005, CHAR_STR (id: 0x42), ModelIdentifer (Device Name): 3..23 Chars.

ClusterID: 0x0204 (Thermostat User Interface Configuration)

Attr: 0x0000, ENUM8 (id:0x30). 0 – Celsius, 1- Fahrenheit. Default 0.
Attr: 0x0002, ENUM8 (id:0x30). 0 - Show smiley, 1 - Don't show smiley. Default 0.
Attr: 0x0100, INT16 (id:0x29), Temperature offset, in 0.01° steps, range: -32767 (-327.67°)..32767(+327.67°). Default 0.
Attr: 0x0101, INT16 (id:0x29), Humidity offset, in 0.01% steps, range: -32767 (-327.67%)..32767(+327.67%). Default 0.
Attr: 0x0102, INT16 (id:0x29), Comfort temperature minimum, in 0.01° steps, range -32767..+32767 (-327.67° ..+327.67°). Default 2000 (20.00°C).
Attr: 0x0103, INT16 (id:0x29), Comfort temperature maximum, in 0.01° steps, range -32767..+32767 (-327.67° ..+327.67°). Default 2500 (25.00°C).
Attr: 0x0104, UINT16 (id:0x21), Comfort humidity minimum, in 1% steps, range 0..9999 (0..99.99%). Default 4000 (40.00%).
Attr: 0x0105, UINT16 (id:0x21), Comfort humidity maximum, in 1% steps, range 0..9999 (0..99.99%). Default 6000 (60.00%).
Attr: 0x0106, ENUM8 (id:0x30), Turn off the display. 1 - Display Off. Default 0 - Display On.
Attr: 0x0107, UINT8 (id:0x20), Measurement interval, range: 3..255 seconds. Default 10 seconds.

lukasz06
Posts: 2543
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

@Vajera zamontowałem drugą głowicę i ustawiłem termometr główny z głowicy.
Teraz zauważyłem, że głowica poprawnie reaguje na programy suplowego termostatu, ale...
Wiem, że jeszcze nie przerabiałeś w niej wszystkich funkcji, ale jest mały błąd.
Tzn jak głowica jest w trybie programu to u mnie po zmianie temp w aplikacji przełącza się w tryb manualny
(tak mam zaznaczone w Cloud) i wszystko by grało, ale jak zmienimy temp na głowicy w trakcie programu, to
wraca do nastawy z programu. Przyjrzysz się temu?

Ps: Fajnie by było zmieniać temp w apce co 0,5 stopnia, ale czytając Twoje rozmowy z @Klew wnioskuję, że się tak nie da, szkoda ;)

Return to “Bramka ZigBee”