-
Notifications
You must be signed in to change notification settings - Fork 0
Usage
Tomasz Jabłonowski edited this page Jul 27, 2026
·
2 revisions
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 adresuREGISTER, 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):
- Skrypt wysyła UDP notify do dataloggera (port domyślny
58899). - Otwiera nasłuch TCP (domyślnie port
502) i akceptuje połączenie, które inicjuje datalogger. - Wysyła tunelowaną ramkę Modbus (funkcja 3 — odczyt holding registers) i parsuje odpowiedź.
- Zwraca wynik jako JSON z timestampem.
Opis działania (zapis, --set):
- Jak wyżej, ale wysyłana jest funkcja 0x10 (Write Multiple Registers) z podanymi wartościami.
- 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ć dosmartess_read(...)/smartess_write(...)przez parametrsession=, unikając ponownego UDP notify i akceptacji TCP przy każdym wywołaniu.