Web Master · Modbus IP · API · narzędzia. Wydanie 1.0, 06.11.2026.
Web Master odczytuje stan centrali i opraw przez lokalne HTTP API zgodne z adapterem EZ2, schemat ges-v2. Interfejs udostępnia dane do nadzoru. Uruchamianie testów opisuje osobno Modbus IP.
/data/systeminfo.php i /lumlist.php./data/errorcodes.php.Adres 192.168.1.50 w przykładach zastąp adresem swojej centrali. Usługi udostępniaj w zaufanej sieci nadzorczej. Ten interfejs lokalny nie wymaga tokenu; nie wystawiaj go bezpośrednio do Internetu.
| Żądanie GET | Format | Zastosowanie |
|---|---|---|
/data/systeminfo.php |
JSON | Stan systemu, liczniki, schemat danych |
/lumlist.php |
TSV, 10 kolumn | Inwentaryzacja i statusy opraw |
/data/errorcodes.php |
JSON | Słownik opisów błędów |
/data/luminaire.php?id=196618 |
JSON | Diagnostyka jednej oprawy, w tym NVG |
Pełne przykłady i obsługę HTTP znajdziesz w API — odczyt danych.
ID oprawy wylicza się jako kanał × 65536 + adres fizyczny. Kanały: 1 = BUS1, 2 = BUS2, 3 = AirBus. Fizyczny adres 10 daje odpowiednio 65546, 131082 i 196618. Pole adresse zapisuj w całości; nie ograniczaj go do 16 bitów.
Po przejściu ze starszej integracji używającej samych adresów fizycznych wykonaj ponowną synchronizację inwentarza. Usuń stare rekordy zgodnie z procedurą Web Mastera, aby uniknąć zdublowanych opraw. Przeniesienie oprawy do innego kanału zmienia jej ID.
| Kolumna | Interpretacja |
|---|---|
| adresse | Unikalne ID kanał/adres |
| geraetetyp | AW, PIKTO, KOMBI, NVG lub UNKNOWN |
| gruppe | Numer grupy zapisany w centrali |
| ueberwachung | 1 = nadzorowana, 0 = indywidualnie wyłączona z nadzoru |
| schaltungsart | DS = praca jasna, BS = praca ciemna; może być pusta |
| betriebszeit | LTM_1H / LTM_2H / LTM_3H / LTM_8H; może być pusta |
| letzte_testdauer | Puste, gdy zmierzony czas ostatniego testu jest niedostępny |
| fehlercode | Cztery znaki szesnastkowe |
| ortstext | Opis lokalizacji |
| aktualisiert_am | Puste, gdy czas ostatniej aktualizacji jest niedostępny |
Nie zastępuj pustych pól zerem ani aktualną datą. Ustawiony czas autonomii nie jest pomiarem czasu ostatniego testu. Dla NVG tryb jest podawany tylko wtedy, gdy oba wyjścia mają ten sam tryb; przy utracie komunikacji tryb i autonomia pozostają puste.
Lokalny symulator pomaga sprawdzić integrację. Odbiór wymaga próby na rzeczywistej centrali i docelowym Web Masterze. Zobacz programy i materiały do pobrania.
Centrala EZF jest serwerem Modbus TCP; BMS lub tester jest klientem. Opis dotyczy mapy v1, dostępnej od firmware 10.38.
| Parametr | Wartość |
|---|---|
| Host | Bieżący adres IP centrali |
| Port | 502 |
| Protocol ID MBAP | 0 |
| Klienci jednocześnie | Maksymalnie 2 |
| Odczyt | FC03 albo FC04, 1–125 rejestrów |
| Zapis polecenia | FC16, dokładnie 7 rejestrów od 0x0100 |
| Słowo | 16 bitów, big endian |
| uint32 | Starsze słowo, potem młodsze |
| Adresy w podręczniku | Zerowe, bez prefiksu 4xxxx |
Połączenie bez ruchu może zostać zamknięte po 3 sekundach; klient powinien umieć ponownie je otworzyć. Modbus nie ma uwierzytelniania — dostęp ogranicz do zaufanej sieci nadzorczej.
0x455A, a rejestr 1 — wersję mapy 1.TCP, RTU i zezwolenie na zdalne testy są domyślnie wyłączone. Skrót TCP używany przy wyniku oprawy oznacza także test czasu pracy/autonomii; kontekst odróżnia go od transportu Modbus TCP.
| Adres HEX (dziesiętny) | Liczba słów | Zawartość |
|---|---|---|
| 0x0000 (0) | 2 | Sygnatura i wersja mapy |
| 0x0002 (2) | 1 | Flagi stanu centrali |
| 0x0007 (7) | 1 | Zezwolenie na zdalne testy 0/1 |
| 0x0008 (8) | 2 | Czas od uruchomienia w sekundach |
| 0x0010 (16) | 2 | Identyfikator uruchomienia |
| 0x0020 (32) | 16 | Numer seryjny ASCII, 2 znaki na słowo |
| 0x0100 (256) | 8 | Ostatnie zadanie i jego stan |
| 0x0200 (512) | 16 | Grupa AirBus A; B=0x0210, C=0x0220, D=0x0230 |
Flagi rejestru 0x0002: bit 0 awaria, 1 błąd komunikacji, 2 blokada, 3 wyszukiwanie, 4 inicjalizacja/konfiguracja, 5 błąd pamięci FRAM. Rejestru 0 nie wpisuj jako 40001, chyba że używany klient świadomie przelicza notację 4xxxx na adres zerowy.
BUS1 zaczyna się od 0x1000 (200 slotów), BUS2 od 0x3000 (200), AirBus od 0x5000 (500). Każdy slot zajmuje 16 słów. Adres slotu i, liczonego od 1, to baza + 16 × (i−1). Slot jest pozycją na liście, a nie fizycznym adresem oprawy. Pusty slot ma wszystkie słowa zerowe.
| Offset w slocie | Zawartość |
|---|---|
| 0 / 1 / 2 | Kanał / adres fizyczny / obecność 0 lub 1 |
| 3–7 | Bajty statusu D1–D5 |
| 8 / 9 | TF / test autonomii: 0 nieustalone, 1 trwa, 2 OK, 3 błąd |
| 10 | Błąd komunikacji 0/1 |
| 11 / 12 | Typ oprawy / grupa |
| 13 | NVG: LED1 w bitach 0–1, LED2 w bitach 8–9; inne typy 0xFFFF |
| 14 | Blokada oprawy 0/1 |
| 15 | Potwierdzony wynik AirBus: 0 OK; bity 0x20 bateria/czas, 0x40 LED/prąd, 0x80 komunikacja |
W polu wyniku 0xFFFF oznacza stan nieznany, nieaktualny lub oprawę przewodową — nie wynik pozytywny. Przy zgłoszonym błędzie FRAM część statusów może być niepotwierdzona mimo odczytywalnej listy. Bieżący odczyt nie zastępuje archiwalnego raportu.
Najpierw wykonaj odczyty. Następnie lokalnie zezwól na zdalne testy, a w testerze zaakceptuj zapis, potwierdź numer seryjny i wybrane polecenie. W tej mapie sterowanie dotyczy opraw i grup AirBus; BUS1/BUS2 udostępniają nadzór. Próba startu testu przewodowego zwraca wyjątek 01.
FC16 zapisuje od 0x0100 dokładnie siedem słów:
| Słowa | Znaczenie |
|---|---|
| 0–1 | Niezerowy, rosnący identyfikator zadania uint32 |
| 2 | 1 = TF, 2 = autonomia, 3 = STOP |
| 3 | 0 = oprawa AirBus, 1 = grupa AirBus |
| 4–5 | UID oprawy lub numer grupy 0–3 (A–D) |
| 6 | Znacznik 0xA55A |
Przykład TF dla AirBus 42, UID=196650, zadanie 1:
0000 0001 0001 0000 0003 002A A55A.
UID ma wzór kanał × 65536 + adres. Przed wysłaniem sprawdź aktualny UID. Wspólny system nadrzędny powinien nadawać ID zadań dla obu transportów. Identyczne ID i polecenie nie uruchamiają drugiego testu; zmiana treści przy tym samym ID jest błędem.
Po przyjęciu FC16 czytaj 0x0100–0x0107. Stan 1 = kolejka, 2 = przyjęte/trwa, 3 = zebrano wyniki, 4 = odrzucone, 5 = przyjęto STOP. Stan 3 nie oznacza, że wszystkie oprawy przeszły test. Sprawdź wyniki opraw i liczniki grup. Stan 5 nie dowodzi odbioru STOP przez każdą oprawę. Po restarcie odczytaj identyfikator uruchomienia i bieżący stan; nie odtwarzaj automatycznie starego polecenia.
| Wyjątek | Znaczenie | Działanie |
|---|---|---|
| 01 | Nieobsługiwana funkcja | Sprawdź FC i obsługiwany kanał |
| 02 | Nieprawidłowy adres | Sprawdź adres zerowy i zakres |
| 03 | Nieprawidłowe dane | Sprawdź 7 słów, ID, UID i znacznik |
| 04 | Błąd urządzenia / niedostępne dane | Sprawdź komunikaty centrali; nie pokazuj OK |
| 06 | Zajętość | Polecenie nie zostało przyjęte; można ponowić to samo ID |
Przy braku połączenia sprawdź IP, port, włączenie TCP, restart, firewall i limit klientów. W testerze zapisz telegramy TX/RX oraz eksport JSON/CSV.
RTU używa tej samej mapy: 19200 bit/s, 8E1, adres 1–247 (domyślnie 1). Wymaga wolnego BUS1 albo BUS2 bez zapisanych opraw. Nie łącz Modbus RTU i protokołu opraw EZF na tym samym porcie. Adres rozgłoszeniowy 0 nie wykonuje poleceń.
Opis dotyczy lokalnego interfejsu Web Master/EZ2, schemat ges-v2. Cztery żądania GET służą wyłącznie do odczytu. Do sterowania testami użyj Modbus IP. W przykładach 192.168.1.50 jest przykładowym adresem centrali.
macOS / Linux:
curl --fail --max-time 10 http://192.168.1.50/data/systeminfo.php
Windows PowerShell:
Invoke-RestMethod -Uri "http://192.168.1.50/data/systeminfo.php" -TimeoutSec 10
Przykład wybranych pól odpowiedzi dla jednej oprawy bez błędów:
{
"systemtype": "EZ2",
"status_codes": ["0001"],
"error_codes": ["0000"],
"mapping_complete": true,
"luminaire_count": 1,
"communication_error_count": 0,
"fault_count": 0,
"error_schema": "ges-v2",
"address_schema": "channel16-address16-decimal",
"optional_unavailable": ["letzte_testdauer", "aktualisiert_am"]
}
To fragment ilustrujący format; wartości na instalacji zależą od jej stanu. Odpowiedź zawiera też liczniki NVG, słownik błędów i zakres statusów. mapping_complete=true nie oznacza, że dostępne są opcjonalne pomiary i daty.
| Flaga HEX | Stan |
|---|---|
| 0001 | Stan zwykły / dane opraw |
| 0002 | Blokada globalna |
| 0004 | Awaria ogólna |
| 0008 | Test funkcjonalny |
| 0010 | Test autonomii |
| 0100 | Wyszukiwanie |
| 0200 | Inicjalizacja lub konfiguracja |
Flagi mogą występować równocześnie. Oceniaj je wraz z error_codes. Brak skonfigurowanych opraw jest stanem awaryjnym/niepotwierdzonym.
curl --fail --max-time 10 http://192.168.1.50/lumlist.php -o oprawy.tsv
Windows PowerShell:
Invoke-WebRequest -Uri "http://192.168.1.50/lumlist.php" -OutFile "oprawy.tsv" -TimeoutSec 10
$oprawy = Import-Csv -Path "oprawy.tsv" -Delimiter "`t"
$oprawy | Format-Table adresse, geraetetyp, fehlercode, ortstext
Przykład (kolumny oddzielają tabulatory; puste kolumny należy zachować):
adresse geraetetyp gruppe ueberwachung schaltungsart betriebszeit letzte_testdauer fehlercode ortstext aktualisiert_am
196618 AW 0 1 DS LTM_3H 0000 Korytarz
Nagłówek i każdy rekord mają dziesięć pól. Nie dziel wiersza po dowolnych białych znakach: zgubisz puste pola. Znaczenie kolumn opisuje Web Master. Nie myl ueberwachung=0 z brakiem komunikacji.
Weź ID z pierwszej kolumny TSV:
curl --fail --max-time 10 "http://192.168.1.50/data/luminaire.php?id=196618"
Przykładowa zwykła oprawa AirBus 10:
{"id":196618,"channel":3,"physical_address":10,"error_code":"0000","nvg":null}
Dla NVG pole nvg zawiera led1, led2, mains, input_l1, input_l2, maintained1, maintained2 i communication_error. LED: 0 wyłączony, 1 włączony, 2 migający, 3 awaria. Przy communication_error=true pozostałe wartości NVG są ostatnim odebranym stanem i nie potwierdzają stanu bieżącego.
curl --fail --max-time 10 http://192.168.1.50/data/errorcodes.php
Kody zachowuj jako czteroznakowe ciągi HEX, łącznie z zerami z przodu.
| Kod | Znaczenie |
|---|---|
| 0000 | Brak błędów w odczytanych stanach |
| 0400 | Brak komunikacji z oprawą |
| F001 | Awaria źródła światła LED |
| F002 | Brak lub odłączony akumulator |
| F003 | Awaria LED i brak akumulatora |
| F004 | Przekroczona temperatura zasilacza |
| F011 / F012 / F013 | NVG: awaria LED1 / LED2 / obu wyjść |
| F100 | Awaria ogólna centrali lub brak skonfigurowanych opraw |
| FFFE | Stan niepotwierdzony lub niepełne dane |
Kody Fxxx są kodami adaptera EZF. Dodaj ich opisy do systemu integratora. Jeden kod oprawy nie opisuje wszystkich równoczesnych usterek; wykorzystaj także szczegóły NVG.
| HTTP | Znaczenie | Zachowanie klienta |
|---|---|---|
| 200 | Odpowiedź dostępna | Sprawdź format i kody stanu |
| 400 | Błędne ID lub kanał | Popraw parametr na podstawie TSV |
| 403 | API opraw wyłączone | Włącz udostępnianie danych w centrali |
| 404 | Nie znaleziono wskazanej oprawy | Odśwież inwentarz |
| 503 | Dane niedostępne lub odpowiedź nie mieści się w limicie | Pokaż brak aktualnych danych i sprawdź centralę |
Klient powinien mieć timeout i ograniczone ponawianie z opóźnieniem. Częstotliwość odczytu dobierz podczas uruchomienia instalacji. Nie uruchamiaj nieograniczonej pętli zapytań. Nie zamieniaj błędu, pustej odpowiedzi ani ostatniego zapamiętanego stanu na aktualny wynik OK.
Lista TSV ma limit 24576 bajtów w opisanym wydaniu. Przekroczenie limitu daje HTTP 503, a nie poprawną odpowiedź z uciętą listą. Odczyty różnych endpointów nie są jednym atomowym raportem.
Sprawdź poprawny odczyt, wyłączone API opraw, błędne i nieistniejące ID oraz utratę połączenia. Porównaj interpretację usterek z ekranem centrali. Narzędzia i symulatory pozwalają przygotować klienta bez podłączonego urządzenia.
Pliki są udostępnione bezpośrednio w Wiki; konto GitHub nie jest potrzebne.
| Materiał | Pobierz |
|---|---|
| Modbus IP Tester 1.0.2 — Windows | ZIP Windows |
| Modbus IP Tester 1.0.2 — Mac Apple Silicon | ZIP arm64 |
| Modbus IP Tester 1.0.2 — Mac Intel | ZIP x86_64 |
| API — tester przeglądarkowy i symulatory Windows/macOS | Pakiet klienta API |
| Podręcznik integratora offline | HTML · PDF |
| Przykłady danych i mapa rejestrów | ZIP |
| Sumy kontrolne plików | SHA-256 |
Na Macu sprawdź → Ten Mac: układ Apple M… oznacza Apple Silicon, procesor Intel — paczkę Intel. Tester nie instaluje firmware.
EZF-Modbus-Tester.exe z rozpakowanego katalogu, zachowując pliki towarzyszące.EZF-Modbus-Tester.app z właściwej paczki.Wydanie 1.0.2 nie ma podpisu Developer ID ani notaryzacji. Jeśli macOS je blokuje, zezwolenie dla tej konkretnej aplikacji można sprawdzić w ustawieniach Prywatność i ochrona. Nie wyłączaj zabezpieczeń całego systemu. Plik BUILD.txt podaje architekturę kompilacji.
127.0.0.1, port 1502.EZFDEMO0001.Symulator modeluje komunikację i przykładowe odpowiedzi. Nie bada fizycznej magistrali, radia ani pojemności akumulatora.
Zatrzymaj lub odłącz symulator, wpisz IP centrali i port 502. Zacznij od odczytu numeru seryjnego i porównania listy opraw. Zdalne testy wymagają oddzielnego zezwolenia w centrali i każdorazowego potwierdzenia w aplikacji. Tester nie ponawia automatycznie poleceń sterujących.
Rozpakuj pakiet klienta API. Zawiera tester HTML oraz gotowe symulatory dla Windows i Maca; dobierz architekturę Maca. Zacznij od pliku README_KLIENT_PL.html w paczce. 1. Uruchom właściwy symulator REST zgodnie z dołączoną instrukcją i sprawdź wyświetlony adres lokalny. 2. Otwórz tester HTML i wpisz ten adres jako bazę API. 3. Sprawdź stan systemu, listę TSV, słownik błędów i dane pojedynczej oprawy. 4. Następnie powtórz odczyty z adresem prawdziwej centrali.
Jeśli przeglądarka ogranicza dostęp strony do sieci lokalnej, użyj instrukcji dołączonej do testera lub przykładów curl/PowerShell z API EZF. Nie zmieniaj globalnych zabezpieczeń przeglądarki.
Symulatory centrali zawierają widok klasyczny EZF 10.107, METRO 10.109 i porównanie R6. Służą do nauki obsługi ekranu; nie są serwerem Modbus ani REST.
Dołącz wersję centrali i testera, używany system operacyjny, czas zdarzenia, komunikat HTTP/Modbus i telegramy lub eksport. Usuń hasła i dane dostępowe. Opisz, czy problem występuje w symulatorze, na rzeczywistej centrali czy w docelowym Web Masterze.