Skip to content
Tomasz Jabłonowski edited this page Jul 27, 2026 · 2 revisions

Usage — opcje CLI

Odczyt:

python smartess_client.py <IP_DATALOGGERA> <REGISTER> [--count N] [--localip X.X.X.X] [--tcp-port 502] [--udp-port 58899] [--debug]

Zapis wielu rejestrów (od wersji 1.1.1):

python smartess_client.py <IP_DATALOGGERA> <REGISTER> --set "100,200" [--localip X.X.X.X] [--tcp-port 502] [--udp-port 58899] [--debug]

Argumenty:

  • IP_DATALOGGERA — adres IP urządzenia SmartESS
  • REGISTER — adres startowy rejestru (liczba całkowita)
  • --count — liczba rejestrów do odczytu (domyślnie 1)
  • --localip — wymuszony lokalny adres interfejsu (autodetekcja jeśli brak)
  • --tcp-port — port TCP Anenji (domyślnie 502)
  • --udp-port — port UDP (domyślnie 58899)
  • --debug — włącza dodatkowe logi
  • --set — zapisuje wartości do kolejnych rejestrów od adresu REGISTER, np. "230,250" albo "0x00e6,0x00fa" (dziesiętne i heksadecymalne)

Przykład wynikowego JSON (odczyt):

{"ts":"2025-09-30T12:00:00","100":123,"101":-5}

Przykład wynikowego JSON (zapis):

{"ts":"2025-09-30T12:00:05","written_base":326,"written_qty":2,"values":[230,250]}

Opis działania (odczyt):

  1. Skrypt wysyła UDP notify do dataloggera (port domyślny 58899).
  2. Otwiera nasłuch TCP (domyślnie port 502) i akceptuje połączenie, które inicjuje datalogger.
  3. Wysyła tunelowaną ramkę Modbus (funkcja 3 — odczyt holding registers) i parsuje odpowiedź.
  4. Zwraca wynik jako JSON z timestampem.

Opis działania (zapis, --set):

  1. Jak wyżej, ale wysyłana jest funkcja 0x10 (Write Multiple Registers) z podanymi wartościami.
  2. Odpowiedź zawiera potwierdzony adres bazowy i liczbę zapisanych rejestrów.

Utrzymywana sesja TCP (od wersji 1.1.1):

  • smartess_open_session(...) otwiera sesję (SmartESSSession), którą można przekazać do smartess_read(...)/smartess_write(...) przez parametr session=, unikając ponownego UDP notify i akceptacji TCP przy każdym wywołaniu.

Clone this wiki locally