Przepisanie firmware do czujników smogu

Tak. Myślałem o tym dzisiaj. Chciałem to dodać niedługo. Tylko musi ten fakt rozgłaszać w mDNS.

Czy coś trzeba zmieniać w konfigu bo przestało mi “wrzucać” dane do influxa? Od migracji na NAMF-2020 nie mam żadnych danych. Aktualnie wersja NAMF-2020-18
Wcześniej logi wyglądały tak:

[httpd] 10.0.180.100 - luftdaten [18/Feb/2020:19:54:50 +0100] "POST /write?db=luftdaten HTTP/1.1" 204 0 "-" "-" 2476de6b-5280-11ea-83db-00505600581e 11428

od wersji NAMF-2020 wyglądaja tak ale danych w bazie nie ma:

[httpd] 10.0.180.100 - luftdaten [18/Feb/2020:20:07:09 +0100] "POST /write?db=luftdaten HTTP/1.1" 204 0 "-" "NAMF-2020-15/6518554" dc8ee396-5281-11ea-83dc-00505600581e 303

U nas cały czas raportują dane do influxdb. Tych danych jest znacznie więcej, bo doszły dane diagnostyczne.

Po wyrzuceniu usera i hasła dane zaczęły docierać do influxa.

1 polubienie

Dzięki za info.

Mam wrażenie ze ten przepisany firmware pokazuje poprawniej temperaturę.
Nic nie zmieniając temperatura spadła mi o 2-3 stopnie. A już myślałem ze łapię ciepło od elektroniki, bo w pokoju gdzie mam czujnik jest około 22-24 stopnie, a nie jak mi pokazywało 26-27.
Teraz mi pokazuje 24, co jest dla mnie poprawnym pomiarem.

Druga opcja, to to ze optymalizacja kodu zmniejsza grzanie się wemosa i stąd poprawny pomiar.

Jeszcze sam jakiś czas temu pisałem też :

A teraz:
IMG_20200222_172558
I dla porównania :
IMG_20200222_171914 IMG_20200222_171825

1 polubienie

W NAMF-2020-20 dodaliśmy obsługę czujnika Winsen CO2 MH-Z14A. Po informacje co to jest i jak działa odsyłam do opisu, który zrobiłem:

@Tomek jakbyś chciał podejrzeć jak wyglądają dane to czujnik z ChipID 1374854 je od 2 dni do aqi.eco wysyła :slight_smile:

1 polubienie
{"value_type":"conc_co2_ppm","value":"419"}

No tak, trzeba by to zintegrować. Jakieś sugestie co do miejsca gdzie można by wrzucić wskazania? Na tym samym poziomie co dane pogodowe?

1 polubienie

A czy nie dałoby się w miarę prosto zrobić ogólnie wykresów? Tzn z punktu widzenia użytkownika tak jak jest robione mapowanie, tylko poza obecnymi ‘temperature’ itp dodać np chart1 i byłby to taki wykres użytkownika, który sam by definiował co ma być wyświetlone.

Chodzi o to, że jeśli będą się pojawiały kolejne sensory/dane to za każdym razem jest wymagana Twoja interwencja w kod. A tak można by zrobić kilka wykresów użytkownika i on sam w konfiguracji by decydował co ma być wyświetlona na dodatkowych wykresach. Np jak już @irukard zrobi sensor promieniowania to już będzie gotowy mechanizm wyświetlania.
Ale nie wiem jak wygląda od zaplecza aqi.eco więc nie wiem czy to w miarę proste zadanie czy znacznie bardziej skomplikowane :wink:

1 polubienie

Wykres OK, ale ja bym również wrzucił dodatkowy rząd w tabelce tuż pod PM10. Brzmi logicznie i ma sens.

Cześć @netmaniac! Nie wiem czy pamiętasz, ale 9 lat temu współpracowaliśmy przy przenoszeniu kilku postów z mojego starego bloga https://newton.net.pl na https://starter-kit.nettigo.pl :slight_smile:

A czy nie dałoby się w miarę prosto zrobić ogólnie wykresów?

W tej chwili lista wartości które zapisujemy jest zdefiniowana na poziomie schematu bazy danych MySQL (listy kolumn). Taki stan rzeczy ma kilka zalet:

  • wydajność,
  • mniejsze użycie dysku,
  • łatwiejsza implementacja zbierania i agregacji danych.

I jedną podstawową wadę: trudność w dodawaniu nowych typów wartości.

Jak dotąd, z powodu zalet j/w (głównie prostoty implementacji) taki schemat się sprawdzał. Oczywiście, bardziej elegancko byłoby dać możliwość definiowania kolumn. Jest to jednak dość sporo pracy - pytanie, jak wiele osób skorzysta z nowej funkcji i czy się to opłaci: w sensie relacji ilość godzin spędzonych nad developmentem / zysk dla znacznej części użytkowników.

Obawiam się też nieco https://en.wikipedia.org/wiki/Inner-platform_effect - czy ostateczny efekt i tak nie będzie gorszy od zahardcodowania nowej kolumny np. CO2 i dodania wykresów w odpowiednim miejscu.

Rozumiem sugestie power-userów którzy chcieliby maksymalnie zwiększyć możliwości konfiguracji, ale są też głosy, że aqi.eco już teraz jest skomplikowne w użyciu od strony administracyjnej. Oczywiście można dodać nowe funkcje bez zwiększania komplikacji (wizardy, domyślnie konfiguracje, itd.) ale to sprawia, że implementacja ta będzie jeszcze bardziej kosztowna.

1 polubienie

Byłbym zainteresowany czujnikami H2S (siarkowodór) i SO2 (dwutlenek siarki). Czy wiesz, czego używa Airly?

Jak dokonać aktualizacji dla 2020 20 -czy to wersja beta? bo mam ustawione aktualizacje automatyczne
rozumiem ze forceUpdate i ok…? i wtedy jaka wersja się załaduje?

Nie, to tak nie działa. Po pierwsze w obecnej chwili przejście na NAMF-2020 oznacza całkowite zaoranie pamięci flash (SPIFFS) i konieczność konfiguracji od zera. Nowy FW to jedna wielka beta. Na tym etapie nie ma stabilnej wersji. Taka pojawi się jak rozprawimy się z zaszłościami historycznymi. FW jest wyposażony w narzędzia ułatwiające nam pisanie i debugowanie. W planie jest też mechanizm płynnego przejścia ze starej konfiguracji do nowej.

Przed migracją

Potrzebne będą:

  • Adres IP sensora
  • Hasło i SSID do sieci WiFi
  • Przydać się może ID sensora (w nagłówku strony sensora, obok logo Nettigo)
  • Sensor musi mieć włączoną opcję autoaktualizacji

Zadbaj o to aby znajdować się blisko sensora, by móc w czasie konfiguracji podłączyć do sieci WiFi utworzonej przez sensor.

Jeśli bieżąca wersja software czujnika to NAMF-2019-019 (lub wcześniejsza) to trzeba zmienić zrestartować czujnik - jeśli jest włączona autoaktualizacja. Jeśli nie to trzeba ja włączyć.

Migracja

Wejdź na stronę http://IP.SENSORA/config.json Zwróci ona bieżącą konfigurację sensora jako JSON. Zapisz ją sobie. Jeśli po wejściu na http://IP.SENSORA/config.json dostajemy komunikat “not found” oznacza to, że obecnie w urządzeniu jest stara wersja oprogramowania. Wymuś aktualizację.

UWAGA! Ze względów bezpieczeństwa w konfiguracji tej nie ma hasła do sieci WiFi. Zostało zastąpione przez trzy gwiazdki. Dlatego ściągnięty JSON trzeba przed wgrywaniem poprawić, zastępując gwiazdki hasłem do sieci WiFi. Przykładowy fragment konfiguracji:

"wlanssid":"NAZWA SSID","wlanpwd":"***"

Zastąpić

"wlanssid":"NAZWA SSID","wlanpwd":"TWOJE HASŁO"

Uważaj aby nie zmienić formatu JSON, tylko wpisać hasło między cudzysłowowy. Należy wkleić cały JSON, nie pomijać żadnych pól.

Nie testowaliśmy czy biblioteka JSON poradzi sobie ze zmianą formatu (jeśli wpiszecie Enter lub spację przed czy po przecinku) lub jakimś błędem składniowym.

Jeśli w haśle występuje znak “ zastąpić go sekwencją \”

Teraz wejdź na stronę http://IP.SENSORA/forceUpdate i wypełnij pola:

  • HOST: beta.fw.nettigo.pl
  • PORT: 80
  • PATH: /NAMF-BOOT/

Kliknij ‘Zapisz i zrestartuj’. Czujnik ściągnie nowe oprogramowanie i wykasuje zawartość systemu plików w pamięci sensora. Dlatego po restarcie uruchomi się ponownie w trybie access-pointa (jak przy pierwszym uruchomieniu). Odszukaj sieć WiFi o nazwie NAM-ID_SENSORA. Po podłączeniu się do niej odwiedź adres http://192.168.4.1/configSave.json

W pole tekstowe wklej zapisaną wcześniej konfigurację (pamiętaj o wpisaniu właściwego hasła do WiFi). Kliknij ‘Save and restart’. Czujnik powinien zrestartować się i podłączyć się do właściwego WiFi. Następnie ściągnie najnowsze oprogramowanie, już w pełni funkcjonalne. Przy włączonej autoaktualizacji nie potrzeba żadnych dodatkowych kroków.

Oczywiście zamiast wklejania konfiguracji w configSave.json można skonfigurować sensor ręcznie, procedura nie uległa zmianie.

Jak rozpoznać udaną migrację

Po wejściu na stronę czujnika wersja powinna mieć format np NAMF-2020-NUMER. Oznacza to udaną migrację. Wersja NAMF-2020-boot to wersja pośrednia, nowy firmware, ale okrojone funkcjonalności Trzeba wymusić aktualizację. Jeśli wersja jest NAMF-2019-NUMER to jest stare oprogramowanie.

Jeżeli zobaczysz ikonki przy opcjach w głównym menu, to wiedz, że jesteś na nowym FW.

scrnli_2-03-2020_10-15-12

Strona z aktualnymi pomiarami ciągnie się długo… bo na dole są dane diagnostyczne.

scrnli_2-03-2020_10-17-01

W konfiguracji w sekcji "Czujnik WiFi pole Nazwa jest zarazem nazwą dla trybu Access Point (etap rozgłaszania własnej sieci), nazwą mDNS (Bonjour/Zeroconf) oraz nazwą dla serwera DHCP. A więc polskich znaków diakrytycznych używasz na własną odpowiedzialność.

scrnli_2-03-2020_10-19-04

Wyświetlacz znakowy wybiera się z rozwijanej listy. Jest też możliwość ustawienia mocy nadawczej urządzenia. W niektórych przypadkach zmniejszenie mocy może powodować wzrost stabilności.

Pojawiła się też opcja włączenia Winsena MH-Z14A. Czy ma to sens w badaniu ilości CO2 na zewnątrz - czas pokaże. Na tym etapie zbieramy dane z Winsenów do InfluxDB. Jak będziemy mieć ich wystarczająco dużo, poddamy je analizie. Równocześnie monitorujemy temperaturę w środku obudowy (z użyciem DS18B20)

scrnli_2-03-2020_10-24-37

Wielkie dziękuje za szczegółowe informacje:-) chce własnie dokupić czujnik CO2.
Dla mnie jeszcze ważne aby wysyłać dane do domoticz i szukałem dużo ale nie znalazłem info jak to zrobić:-(
Czujnik pracuję od ponad tygodnia bez zarzutów na razie i korzystam z Aqi.eco do podglądu.
Całość projektu super!!!

Ja właśnie sobie piszę coś na kształt aqi.eco, żeby agregować swoje wszystkie czujniki w domu.
Całość pisana w .NET Core (jeszcze 2.2, bo taki hosting) + Vue + Vuetify.
Kierunek danych jest następujący: NAM (wysyła do) -> Moje API (wysyła do) -> aqi.eco.
Moje api może agregować wiele stron - do api dolatuje czysty JSON z czujnika, więc mogę z nim zrobić co tylko chcę.
Link do wersji mocno dev (moje domowe czujniki są ukryte i widoczne pod innym adresem): http://meteo.pkozak.aspnet.pl/

Przyznam się bez bicia, że chcę dążyć do czegoś w stylu api.eco w przypadku danych o czystości powietrza, tym bardziej, że teraz wykresy pokazują dane chwilowe - aqi agreguje dane.

Myślę, że mógłbyś coś nakodzić i odpalić tam gdzie masz postawiony domoticz -> czyli coś w moim stylu, jakieś api agregujące Twoje serwisy, czyli:
NAM -> Twoje API -> Domoticz i aqi.eco

https://nettigo.aqi.eco/pl/ogrod
https://nettigo.aqi.eco/pl/ogrod/graphs

Ostatecznie dodanie nowego pola w bazie poszło całkiem sprawnie:

2 polubienia

Fajne, tylko przydałaby się informacja co to znaczy :wink: czy to dużo, czy mało :wink:

Nie znalazłem żadnych norm dot. CO2 w atmosferze, jedynie takie mówiące o CO2 w zamkniętym pomieszczeniu (np. 600 ppm - granica odczuwania “świeżego powietrza”, pow. 1500 ppm - spadek koncentracji).

Z drugiej strony, nie chciałbym oznaczać aktualnych 473 ppm jako stanu niskiego, bo musimy - jako ludzkość - zrobić coś, żeby tę wartość zmniejszyć lub przynajmniej zahamować jej wzrost.

W związku z tym pomyślałem, że może lepszym miejscem dla wartości CO2 będzie pasek z informacjami pogodowymi:

https://nettigo.aqi.eco/pl/ogrod

1 polubienie