EZF Wiki/Integracje i API
Artykuł · PL

API EZF — JSON, TSV i obsługa błędów

Przykłady zapytań HTTP, identyfikatory opraw, diagnostyka NVG i interpretacja kodów.

Zakres

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.

Stan systemu w JSON

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.

Lista TSV

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.

Diagnostyka pojedynczej oprawy

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.

Słownik błędów

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.

Obsługa odpowiedzi i odświeżanie

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.

Próba integracyjna

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.

EZF Wiki · Wiedza pod ręką.