Przejdź do treści

Obsługa

Po przejściu procesu Instalacji, bramka jest aktywna i przekazuje bieżące dane z urządzeń OneMeter w pobliżu będących w Trybie rozgłaszania do chmury. Częsta interakcja użytkownika z bramą nie jest wymagana.

gw-product-2

Wskazówki:

  • Umieść bramę blisko obserwowanych urządzeń i w miejscu o dobrym zasięgu sieci WiFi.
  • Upewnij się co 2 tygodnie, że dane przekazywane są do chmury.
  • Przenieś bramę do miejsca, w którym dane będą mogły zostać wysłane do serwera na czas wysyłki w przypadku przedłużającego się braku połączenia z internetem.

Stan diody LED

✖ Wyłączona Aplikacja bramki jest wyłączona.
🟢 Miga wolno ① Łączenie z chmurą.
🟢 Świeci ② Połączono z chmurą.
🟢 Miga zmiennie ③ Przekazywanie danych do chmury.

Zielona dioda (a dokładniej LED ACT) jest wykorzystywana przez aplikację. Jak ją zlokalizować? Na poniższych rysunkach Raspberry Pi Zero W (po lewej) i 3B/4B (po prawej), znajduje się ona odpowiednio w prawym dolnym i lewym dolnym rogu.

pi-zero-w-clip pi-4b-clip

Szczegóły działania

Łączenie z chmurą

Aby bramka mogła rozpocząć przekazywanie danych, warunkiem niezbędnym jest zapewnienie połączenia internetowego przed uruchomieniem tak, aby po uruchomieniu aplikacja połączyła się z serwerem. Gdy bramka utraci połączenie z serwerem już w trakcie działania, po kilkudziesięciu sekundach automatycznie ponowi próbę połączenia.

Brak internetu podczas uruchomienia

Jeśli nie uda się połączyć z chmurą przez 5 min, aplikacja zakończy działanie sygnalizując błąd, następnie uruchomi się ponownie po kilkunastu sekundach.

Połączenie z chmurą

Do bieżącego przekazywania danych do chmury wymagane jest stabilne łącze internetowe. Gdy ustanowione, aplikacja niemal natychmiast (do kilku sekund od odebrania) przekazuje dane rozgłaszane przez urządzenia OneMeter znajdujące się w pobliżu.

Brak internetu przez dłuższy czas

Bramka jest przystosowana do pracy z utraconym połączeniem z chmurą przez kilka dni. Dane są przechowywane w pamięci bramki i przesyłane do serwera po przywróceniu połączenia.

Przekazywanie danych

Aplikacja na bieżąco odbiera dane z pobliskich urządzeń OneMeter do wysyłki do chmury. W przypadku, gdy jest połączenie z internetem, dane są natychmiast wysyłane do serwera. W skład przekazywanych danych wchodzą kody OBIS z ostatniego odczytu (czytaj: Tryb rozgłaszania), a także metadane informacyjne, m.in. nazwa i identyfikator bramki, siła sygnału i status urządzenia OneMeter.

Kontrola przepływu od wersji v2.2

Bramka ma włączone ograniczenie wychodzących pakietów danych do chmury. Sprawdź opcje konfiguracji.

W celu monitoringu pracy bramki, przejdź do widoku urządzenia w chmurze i sprawdź stan na liście bramek. Odświeżenie stanu na liście może potrwać kilka sekund. Ostatni otrzymany pakiet danych nie dotyczy wspomnianych wcześniej metadanych informacyjnych.

gw-cloud-rssi

Nie widzę bramki na liście

Poczekaj minutę. Odśwież stronę i poczekaj jeszcze minutę. Jeśli nadal nie widzisz bramki na liście, sprawdź stan diody LED. Jeśli jest w porządku, upewnij się, żę urządzenie OneMeter jest aktywne (spróbuj połączyć się z poziomu aplikacji mobilnej i np. zsynchronizować). Jeśli się nie udało, wymień baterię w urządzeniu. W razie dalszych problemów prosimy o kontakt.

Przechowywanie danych

W przypadku braku połączenia z internetem, aplikacja przechowuje lokalnie (nieulotnie) pakiety danych i przesyła je kolejno do serwera po ponownym ustanowieniu połączenia. Teoretycznie, bramka może bezstratnie przechować do ok. 50 dni danych z jednego urządzenia (liczba dni maleje z liczbą urządzeń OneMeter w pobliżu).

Brak internetu przez zbyt długi czas

Jeśli liczba przechowanych pakietów przekroczy wartość maksymalną, aplikacja zakończy działanie sygnalizując błąd, następnie uruchomi się ponownie po kilkunastu sekundach. Po ponownym uruchomieniu 50% najstarszych pakietów zostanie usunięte.

Należy zapewnić względnie stabilne łącze internetowe lub zmienić konfigurację bramki aby nie utracić pakietów rozgłaszanych przez urządzenia OneMeter.

Automatyczna synchronizacja

Opcja dostępna dla usługi OneMeter Enterprise.

Bramka ma możliwość automatycznej synchronizacji czasu urządzeń OneMeter w pobliżu. Jeśli synchronizacja będzie wymagana (np. po wymianie baterii lub co określony czas), bramka połączy się z urządzeniem i zaktualizuje czas, co przywróci urządzenie do działania i nie trzeba będzie synchronizować urządzenia ręcznie z pomocą aplikacji mobilnej.

Automatyczna synchronizacja jest domyślnie wyłączona. Sprawdź opcje konfiguracji.

Aby zsynchronizować dane historyczne zapisane w urządzeniu należy nadal korzystać z aplikacji mobilnej.

Aktualizacja oprogramowania

Jeśli nie czujesz swobodnie w terminalu, pobierz Obraz systemu i zainstaluj obraz na nowo. Po przeinstalowaniu bramka otrzyma nowy identyfikator (ujrzysz nową bramkę na liście bramek), a lokalnie przechowane pakiety danych zostaną usunięte.

Aby wykonać aktualizację (z zachowaniem identyfikatora bramki i przechowanych pakietów danych), wykonaj poniższą procedurę. Dla obrazu systemu (lub jeśli aktualizowano w przeszłości) można pominąć pierwszy krok.

  1. Dodaj rejestr pakietu bramki do listy znanych źródeł w pliku /etc/apt/sources.list.

    deb [trusted=yes] https://packages.onemeter.com/apt/ /

  2. Uruchom poniższą komendę.

shell sudo apt-get update && sudo apt-get install onemeter-gateway

Wybierz właściwą konfigurację

Jeśli napotkasz komunikat dotyczący plików konfiguracyjnych, dla pliku servers wybierz zainstalowanie wersji opiekuna pakietu, a dla pliku uuid wybierz zachowanie bieżącej wersji. Dla innych plików masz dowolność. Możesz np. zachować bieżącą wersję.

Plik konfiguracyjny "/etc/onemeter-gateway/servers" ==> Zmodyfikowany (przez administratora lub skrypt) po zainstalowaniu. ==> Twórca pakietu zamieścił zaktualizowaną wersję. Należy wybrać jedno z pośród wymienionych poniżej działań: Y lub I : zainstalowanie wersji opiekuna pakietu N lub O : zachowanie bieżącej wersji D : pokazanie różnic pomiędzy wersjami pliku Z : uruchomienie powłoki w celu zbadania sytuacji Domyślnym działaniem jest zachowanie bieżącej wersji.

Jeśli nie chcesz dodawać rejestru pakietu, zaktualizuj poprzez instalację Pakietu instalacyjnego.

Menedżer pakietów powinien nadpisać starszą wersję aplikacji tą, którą pobrano.

armhf · amd64

W celu skorzystania z innej/wybranej wersji, przejdź do jej szczegółów w Dzienniku Zmian.

Reset Wi-Fi

Jeśli chcesz bez kłopotów zmienić ustawienia Wi-Fi:

  1. Wyłącz bramkę.
  2. Podłącz kartę microSD do komputera.
  3. Przejdź do folderu rootfs/etc/wpa_supplicant na karcie pamięci.
  4. Utwórz kopię zapasową pliku wpa_supplicant.conf kopiując go na dysk swojego komputera.
  5. Podmień zawartość pliku wpa_supplicant.conf na poniższą. Zastąp NAZWA_SIECI I HASŁO ustawieniami Twojej sieci Wi-Fi.

    country=pl
        update_config=1
        ctrl_interface=/var/run/wpa_supplicant
        network={
            scan_ssid=1
            ssid="NAZWA_SIECI"
            psk="HASŁO"
        }
    

    Nie można nadpisać pliku

    W razie problemów z zapisem zmodyfikowanego pliku należy ponowić operację jako administrator, bo plik jest domyślnie zabezpieczony tylko do odczytu.

Na koniec wysuń kartę, przełóż ją do urządzenia i uruchom bramkę.

Jeśli chcesz przywrócić skonfigurowane urządzenie ponownie do trybu konfiguracji Wi-Fi oraz posiadasz klawiaturę i monitor, podłącz je do urządzenia, potem zaloguj się do konsoli podanym loginem i hasłem, a następnie wywołaj poniższe polecenia.

sudo python3 /usr/lib/raspiwifi/reset_device/manual_reset.py
sudo reboot

Bramka uruchomi się ponownie w trybie konfiguracji.


Administracja

Zainstalowana aplikacja działa jako serwis systemowy o nazwie onemeter-gateway.

shell $ systemctl status onemeter-gateway 🟢 onemeter-gateway.service - OneMeter Gateway Loaded: loaded (/etc/systemd/system/onemeter-gateway.service

Komendy serwisowe

```shell sudo service onemeter-gateway restart # restart serwisu sudo service onemeter-gateway stop # wyłącz serwis czasowo (do ponownego uruchomienia systemu) sudo service onemeter-gateway disable # wyłącz autostart przy uruchomieniu systemu sudo service onemeter-gateway enable # włącz autostart przy uruchomieniu systemu sudo service onemeter-gateway start # włącz serwis sudo dpkg --remove onemeter-gateway # usuń aplikację

sudo dpkg --purge onemeter-gateway # usuń aplikację wraz z konfiguracją (niezalecane)

```

Dziennik zdarzeń

W dzienniku zdarzeń znajdują się informacje o działaniu aplikacji (stan połączenia, statystyki pracy). Tam również odczytasz wersję aplikacji, jej konfigurację i napotkane błędy podczas działania.

shell journalctl -u onemeter-gateway -f --since “2 hours ago”

Przykład

App: ------------------------------------------------------------ App: OneMeter Gateway 2.1 App: 1ca456330e (24 May 2021) armhf App: ------------------------------------------------------------ App: System: Linux onemeter-gateway 5.10.11-v7l+ armv7l GNU/Linux App: Disk: 3.61 GiB of 13.92 GiB used (25.96%) App: Buf: 4,0K /var/opt/onemeter-gateway/ App: ------------------------------------------------------------ ... App: Model : Raspberry Pi Zero W Rev 1.1 App: ------------------------------------------------------------ App: 11223344-5566-7788-9900-aabbccddeeff App: ------------------------------------------------------------ App: CONSOLE: CLOUD:INFO PROTOCOL:INFO SCANNER:INFO STATS:INFO UI:INFO App: DAILY: CLOUD:OFF PROTOCOL:OFF SCANNER:OFF STATS:OFF UI:OFF App: PERIOD: LOG DAYS:7 STATS MINS:60 App: PROTO: BUFFERED DUPLICATES:NO BUFFERED IN RAM:NO BUFFERED MESSAGES:50000 App: WATCHDOG: ACKED MINS:20 FIRST CONNECTION MINS:5 App: ------------------------------------------------------------ App: [2] Kick systemd every 5 s Scanner: Opened: onemeter-gateway ... Stats: [3] Log every 60 min Stats: server ack meta conn lost read info null dev period Stats: Server 3126 9850 0 0 3126 5322 4528 22 3600 Server: Connection: lost Server: Connection: not seen Server: Connection: established Stats: server ack meta conn lost read info null dev period Stats: Server 3669 9108 1 1 3669 6237 5074 22 3600

Czas retencji logów

Jeśli /var/log jest zamontowany w pamięci RAM (dla zwiększenia żywotności karty SD), dziennik zdarzeń będzie wyczyszczony po ponownym uruchomieniu systemu.

Konfiguracja

Aby dostosować działanie aplikacji do potrzeb Użytkownika, należy dokonać zmian w pliku /etc/onemeter-gateway/settings i zrestartować aplikację. Alternatywnie, należy znaleźć plik na partycji rootfs po podłączeniu karty SD poprzez adapter do komputera. Do zapisania zmian wymagane są uprawnienia administratora. Opcja nieumieszczona w pliku przyjmuje wartość domyślną. Poniżej lista ustawień domyślnych.

Ustawienia domyślne

```shell

-- console ------------------------------------

CONSOLE_CLOUD INFO CONSOLE_PROTOCOL INFO CONSOLE_SCANNER INFO CONSOLE_STATS INFO CONSOLE_SYNC INFO CONSOLE_UI OFF

-- daily --------------------------------------

DAILY_CLOUD OFF DAILY_PROTOCOL OFF DAILY_SCANNER OFF DAILY_STATS OFF DAILY_SYNC OFF DAILY_UI OFF

-- ble ----------------------------------------

BLE_RETRY_DELAY 1000 BLE_RETRIES 2

-- proto --------------------------------------

PROTO_BUFFERED_IN_RAM

PROTO_BUFFERED_MESSAGES 50000

PROTO_BUFFERED_DUPLICATES

PROTO_FLOW_CONTROL_PERIOD_MINS 30 PROTO_FLOW_KEEPALIVE_SECONDS 30 PROTO_MAX_DEVICES 20

-- sync ---------------------------------------

SYNC_ENABLED

SYNC_FETCH_DIAG_INFO

SYNC_PERIODIC_MODE

SYNC_PERIODIC_MINS 1440 SYNC_READOUT_DURATION 4 SYNC_TIME_EXPIRATION 30 SYNC_RETRY_DELAY 2000 SYNC_RETRIES 1

-- stats --------------------------------------

STATS_PERIOD_MINS 60

-- watchdog -----------------------------------

WATCHDOG_ACKED_MINS 20

WATCHDOG_FIRST_CONNECTION_MINS 5 ```

```shell

-- console ------------------------------------

CONSOLE_CLOUD INFO CONSOLE_PROTOCOL INFO CONSOLE_SCANNER INFO CONSOLE_STATS INFO CONSOLE_UI INFO

-- daily --------------------------------------

DAILY_CLOUD OFF DAILY_PROTOCOL OFF DAILY_SCANNER OFF DAILY_STATS OFF DAILY_UI OFF

-- period -------------------------------------

PERIOD_LOG_DAYS 7 PERIOD_STATS_MINS 60

-- proto --------------------------------------

PROTO_BUFFERED_IN_RAM

PROTO_BUFFERED_MESSAGES 50000

PROTO_BUFFERED_DUPLICATES

-- watchdog -----------------------------------

WATCHDOG_ACKED_MINS 0 WATCHDOG_FIRST_CONNECTION_MINS 5 ```

Tryb synchronizacji

Aby włączyć tryb synchronizacji, ustaw opcję SYNC_ENABLED i zrestartuj aplikację. Po tej operacji bramka zsynchronizuje urządzenie, gdy je zrestartujesz lub wymienisz mu baterię.

Dodatkowe opcje poniżej.

opcja wartość domyślna szczegóły
SYNC_FETCH_DIAG_INFO wyłączony włącz opcję
SYNC_READOUT_DURATION 4 zakres ochronny odczytu [s]
SYNC_TIME_EXPIRATION 30 czas ważności synchronizacji [s]
SYNC_RETRY_DELAY 2000 opóźnienie ponownej próby [ms]
SYNC_RETRIES 1 liczba ponownych prób

Włącz SYNC_FETCH_DIAG_INFO jeśli chcesz, aby bramka pobrała informacje diagnostyczne z urządzenia podczas synchronizacji. Prześlij nam je w przypadku problemów.

Synchronizacja się nie wykona w zakresie ochronnym w pobliżu odczytu. Synchronizacja się nie powiedzie, jeśli po ustawieniu czasu, różnica względem czasu bramki przekroczy ustaloną dokładność (4 s). Czas urządzenia jest uznany za prawidłowy co najmniej przez czas ważności synchronizacji.

Okresowa synchronizacja

(Opcjonalnie) Włącz okresową synchronizację. Będzie się wykonywać automatycznie co określony czas. Należy zaczekać pełen okres ponownie jeśli nastąpi restart aplikacji.

opcja wartość domyślna szczegóły
SYNC_PERIODIC_MODE wyłączony włącz opcję
SYNC_PERIODIC_MINS 1440 okres synchronizacji [min]

Buforowanie

opcja wartość domyślna szczegóły
PROTO_BUFFERED_MESSAGES 50000 maksymalna liczba przechowanych pakietów
PROTO_BUFFERED_IN_RAM wyłączony lokalne przechowanie pakietów w pamięci RAM (ulotne)
PROTO_BUFFERED_DUPLICATES wyłączony buforowanie (nie odrzucenie) duplikatów pakietów
PROTO_FLOW_CONTROL_PERIOD_MINS 30 okres kontroli przepływu
PROTO_FLOW_KEEPALIVE_SECONDS 30 maksymalny okres bez przepuszczenia pakietu
PROTO_MAX_DEVICES 20 maksymalna liczba śledzonych urządzeń OneMeter

Okres kontroli przepływu definiuje czas w jakim pakiet może być uznany za obsłużony, aby uniknąć buforowania i wysyłki pakietów, które nie wnoszą nowych informacji. Po jego upływie, pakiet może ponownie być przepuszczony. Umożliwiono też warunkowe przepuszczanie obsłużonych pakietów co określony czas (maksymalny okres bez przepuszczenia pakietu) aby zapewnić rozsądne opóźnienie aktualizacji stanu bramki w chmurze.

Ograniczone możliwości filtrowania duplikatów pakietów

Dla wyłączonej opcji PROTO_BUFFERED_DUPLICATES duplikaty nie są na bieżąco odrzucane. Dzieje się to tylko podczas ponownego uruchomienia aplikacji po przekroczeniu maksymalnej liczby pakietów. 50% najstarszych pakietów jest wtedy usuwanych.

Logi

Aplikacja zapewnia dwa ujścia logów: standardowe wyjście (CONSOLE_*) i logowanie do dziennych plików tekstowych z auto-rotacją (DAILY_*).

W pierwszym przypadku logi są zarządzane przez moduł logów systemu operacyjnego i są widoczne podczas korzystania z journalctl. Jest to domyślny i najprostszy sposób logowania.

W drugim przypadku, aplikacja przechowuje logi w plikach w folderze /var/log/onemeter-gateway, a maksymalną liczbę dni można zdefiniować poprzez opcję PERIOD_LOG_DAYS (domyślnie 7). Jest to sposób logowania zalecany dla zwiększenia wydajności aplikacji, gdyż wtedy wątki modułów nie muszą rywalizować o zasoby, bo operują na oddzielnych plikach.

opcja wartość domyślna logowany moduł
CONSOLE_CLOUD/DAILY_CLOUD INFO/OFF transmitter danych do chmury
CONSOLE_PROTOCOL/DAILY_PROTOCOL INFO/OFF koder pakietów
CONSOLE_SCANNER/DAILY_SCANNER INFO/OFF skaner Bluetooth
CONSOLE_STATS/DAILY_STATS INFO/OFF statystyki
CONSOLE_UI/DAILY_UI INFO/OFF interfejs użytkownika

Poziomy logowania: OFF, ERROR, WARNING, INFO, DEBUG, TRACE.

Monitorowanie modułów

Aplikacja posiada możliwość monitorowania stanu kilku jej modułów tak aby zgłosić błąd i uruchomić się ponownie przypadku niezadowalającej jakości pracy, tj. kiedy w podanym okresie nie wykonano aktywności wyszczególnionej poniżej.

Aby wyłączyć działanie modułu monitorującego dla poszczególnej operacji, należy ustawić wartość danej opcji na 0.

opcja wartość domyślna szczegóły
WATCHDOG_ACKED_MINS 0 potwierdzenie przez serwer odebrania pakietu
WATCHDOG_FIRST_CONNECTION_MINS 5 pierwsze połączenie z chmurą od uruchomienia

Monitorowanie aplikacji

Aplikacja jest skonfigurowana w taki sposób, aby zawieszenie aplikacji na dłużej niż 30 s skutkowało jej zakończeniem i uruchomieniem ponownie. Aby to zmienić należy:

  1. Ustalić oczekiwaną wartość WatchdogSec w pliku /etc/systemd/system/onemeter-gateway.service.
  2. Wywołać poniższe komendy.

shell sudo systemctl daemon-reload sudo service onemeter-gateway restart

Dodatkowym mechanizmem zabezpieczającym przed zawieszeniem jest Watchdog sprzętowy, który restartuje system po przekroczeniu zdefiniowanej wartości obciążenia procesora (w przypadku zawieszenia urządzenia).

Zawieszenie sterownika Wi-Fi na Raspberry Pi Zero W

W niektórych sytuacjach zawieszenie sterownika Wi-Fi na Raspberry Pi Zero W nie skutkuje restartem systemu. Aby to zapewnić można dodać linię interface = wlan0 w pliku /etc/watchdog.conf i ponownie uruchomić system. Jest to niezalecane jeśli brak internetu może często się pojawiać, gdyż wtedy system będzie się równie często restartować.

Watchdog sprzętowy

Jeśli korzystasz z Obrazu systemu, watchdog sprzętowy jest już włączony. W celu samodzielnej konfiguracji Watchdoga wykonaj poniższe kroki.

  1. Dodaj linię dtparam=watchdog=on w pliku /boot/config.txt.
  2. Zrestartuj system. Po tej operacji Watchdog powinien być widoczny w systemie (co można sprawdzić np. dmesg | grep -i watchdog).
  3. Zainstaluj serwis systemowy Watchdoga.

    shell sudo apt-get install watchdog

  4. Skonfiguruj Watchdoga w pliku /etc/watchdog.conf. Proponowane wartości poniżej.

    shell max-load-1 = 50 # maksymalne średnie obciążenie procesora na minutę max-load-5 = 35 max-load-15 = 25 watchdog-timeout = 15

  5. Uruchom Watchdoga.

    shell sudo systemctl enable watchdog sudo systemctl start watchdog systemctl status watchdog

Aby przetestować działanie, wywołaj poniższy kod.

Wywołanie poniższej komendy skutkuje zawieszeniem systemu do czasu ponownego uruchomienia

shell sudo bash -c ':(){ :|:& };:' # !!! FORK BOMB !!!

Statystyki

Statystyki są domyślnie logowane co 60 min. Poniżej przykład i legenda.

Stats: server ack meta conn lost read info null dev period Stats: Server 3126 9850 0 0 3126 5322 4528 22 3600

Legenda

Poniższe wskaźniki dla okresu agregacji statystyk period w sekundach oznaczają liczby:

  • ack - pakietów danych odebranych i potwierdzonych przez serwer,
  • meta - pakietów metadanych wysłanych do serwera (bez potwierdzenia),
  • conn - udanych połączeń z serwerem,
  • lost - utraconych połączeń z serwerem,
  • read - pakietów danych odebranych od urządzeń OneMeter,
  • info - pakietów metadanych (informacje o urządzeniu) odebranych od urządzeń OneMeter,
  • null - pakietów metadanych (keep-alive) odebranych od urządzeń OneMeter,
  • dev - odnalezionych urządzeń OneMeter.

Aby zmienić częstotliwość wyświetlania statystyk, umieść poniższą linię z oczekiwanym okresem agregacji w pliku /etc/onemeter-gateway/settings. Jeśli wpiszesz 0, statystyki nie będą gromadzone. Po zmianie wykonaj restart serwisu.

STATS_PERIOD_MINS 60

Żywotność karty SD

Pomiń tę sekcję, jeśli korzystasz z Obrazu systemu, który ma już to zrobione.

W celu zwiększenia żywotności karty SD, możesz zamontować część katalogów w pamięci RAM. W tym celu dodaj poniższe linie do pliku /etc/fstab. Zmodyfikuj je w razie potrzeby (np. zwiększ pamięć dla /var/log i /run jeśli dysponujesz większą ilością RAMu).

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0 tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0 tmpfs /run tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0 tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0

Pomoc

Nie działa bramka lub urządzenie OneMeter?

Sprawdź częste pytania


Ostatnia aktualizacja: 2022-07-15