BLE Supla Gateway - wyzwanie dla programistów

djack2017
Posts: 784
Joined: Mon Nov 27, 2017 7:36 am
Been thanked: 1 time

Post

Czy ktoś z Was analizował ten skrypt (LYWSD03MMC.py). Bo według mnie coś jest w nim nie tak. Jak odblokować poziom debugowania
level=logging.DEBUG
to na ekranie wyświetlane są różne informacje, np takie, że wartość zmierzona temperatury wynosi np. 17.3 C, a mimo to wysyłana jest wciąż wartość wcześniejsza np. 17.2 C. Daje to w efekcie wrażenie, że temperatura się nie zmienia albo brak jest łączności z czujnikiem (co nie jest prawdą).
Linia 77 ma postać:
params = args.name + " " + str(mea.temperature) + " " + str(mea.humidity) + " " + str(mea.voltage)
Wysyłana jest wartość mea.temperature (dotyczy to zresztą wszystkich parametrów), tylko nie widzę aby ta zmienna była za każdym razem poprawnie aktualizowana.
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Nie ma mnie teraz w domu, więc nie mam jak sprawdzić, ale zerknij co będzie jak usuniesz parametr --debounce.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

djack2017 wrote: Fri Feb 28, 2020 9:30 am Czy ktoś z Was analizował ten skrypt (LYWSD03MMC.py). Bo według mnie coś jest w nim nie tak. Jak odblokować poziom debugowania
level=logging.DEBUG
to na ekranie wyświetlane są różne informacje, np takie, że wartość zmierzona temperatury wynosi np. 17.3 C, a mimo to wysyłana jest wciąż wartość wcześniejsza np. 17.2 C. Daje to w efekcie wrażenie, że temperatura się nie zmienia albo brak jest łączności z czujnikiem (co nie jest prawdą).
Linia 77 ma postać:
params = args.name + " " + str(mea.temperature) + " " + str(mea.humidity) + " " + str(mea.voltage)
Wysyłana jest wartość mea.temperature (dotyczy to zresztą wszystkich parametrów), tylko nie widzę aby ta zmienna była za każdym razem poprawnie aktualizowana.

Możesz zapytać autora, ale po pobieżnym przejrzeniu IMO jest ok. Po prostu wartość tej temperatury jest aktualizowana w osobnym "zdarzeniu" które następuje w momencie przesłania przez czujnik danych. To co jest przesyłane na ekran to wartość tej temperatury pobrana z listy (FIFO) nie musi być ona w danym momencie taka sama odczytana z czujnika w metodzie handleNotification która dopiero zostanie do tej listy dodana. Widzę że tam zastosowana jest popleft czyli metoda FIFO.

handleNotification dodaje do listy odczyty metodą append a thread_SendingData czyta je stosując popleft czyli FIFO.
djack2017
Posts: 784
Joined: Mon Nov 27, 2017 7:36 am
Been thanked: 1 time

Post

Beku wrote: Fri Feb 28, 2020 10:34 am Widzę że tam zastosowana jest popleft czyli metoda FIFO.
handleNotification dodaje do listy odczyty metodą append a thread_SendingData czyta je stosując popleft czyli FIFO.
Fakt. Teraz to jest jasne. Dzięki.
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

U mnie czujnik działał cały luty i teraz nowa wersja skryptu pokazuje

Code: Select all

Battery voltage: 2.693
Battery level: 59
Więc jak teraz faktycznie się poprawi to będzie dobrze ;-)

A dziś przyszły 4 kolejne, więc po weekendzie będzie 5 sztuk działających.
djack2017
Posts: 784
Joined: Mon Nov 27, 2017 7:36 am
Been thanked: 1 time

Post

Beku wrote: Fri Feb 28, 2020 10:34 am Widzę że tam zastosowana jest popleft czyli metoda FIFO.
handleNotification dodaje do listy odczyty metodą append a thread_SendingData czyta je stosując popleft czyli FIFO.
U mnie to FIFO działało kiepawo. Szybciej się napełniało niż się opróżniało. W efekcie dane były dalece nieaktualne.
Jednym prostym ruchem zlikwidowałem to FIFO i teraz mam w końcu właściwe dane na bieżąco.
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Wątek viewtopic.php?p=63759#p63759 został zamknięty, dlatego w tym miejscu chciałem podziękować Wojtkowi (@fracz) za pomysł na supla-filesensors oraz Łukaszowi (@Beku) za dalszy rozwój tego projektu w postaci supla-virtual-device.

U mnie od wczoraj działają bez żadnych problemów 4 szt. LYWSD03MMC :) .

Dzięki Panowie za kawał świetnej roboty.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

Ja 5 działających i 6 zastanawiam się gdzie przyczepić ... jeszcze mam 2 okrągłe do podpięcia 😄 masakra ...

Image
You do not have the required permissions to view the files attached to this post.
djack2017
Posts: 784
Joined: Mon Nov 27, 2017 7:36 am
Been thanked: 1 time

Post

Robert Błaszczak wrote: Fri Feb 28, 2020 7:09 pm U mnie od wczoraj działają bez żadnych problemów 4 szt. LYWSD03MMC :) .
Czy robiłeś może takie doświadczenie:
podgrzej trochę czujnik tak aby wskazanie na nim dość szybko wzrosło o jakieś np. 2 stopnie i sprawdź czy w pliku tekstowym,
do którego skrypt zapisuje wyniki masz na bieżąco (z dokładnością do kilkunastu sekund) cały czas takie same wartości jak na wyświetlaczu czujnika
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
User avatar
wojtas567
Posts: 2334
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Post

Te moduły wyświetlają parametry na bieżąco, a wysyłają po BT co jakiś czas, zainstaluj sobie aplikację mijia w sklepie play są dwie obie są dosyć ciekawe mijiaTemp podaje nawet czas od ostatniej aktualizacji.
Pozdrawiam
Wojtek

Return to “Ogólna dyskusja”