Dodawanie urządzenia Modbus
Dodanie czujnika Modbus jest całkiem proste.
Postępuj zgodnie z przewodnikiem dewelopera w tej sekcji, skopiuj np. plik sdm120.json, aby użyć go jako szablonu (https://raw.githubusercontent.com/boneIO-eu/app_black/dev/boneio/sensor/modbus/sdm120.json)
Zmienne konfiguracyjne:
- model - model do pokazania w Home Assistant.
- registers_base - tablica rejestrów. Możesz odczytywać wiele rejestrów jednocześnie, jest to bardziej przyjazne dla procesora.
- base - indeks początkowy do odczytu
- length - ile rejestrów odczytać
- registers - tablica definiująca, jak interpretować dane otrzymane z urządzenia Modbus
- name: Nazwa czujnika
- address - adres do odczytu
- unit_of_measurement - jednostka miary
- state_class - jedna z wartości:
measurement,total,total_increasing. Czytaj więcej: https://developers.home-assistant.io/docs/core/entity/sensor/ - device_class - klasa urządzenia do wyświetlenia w HA - https://developers.home-assistant.io/docs/core/entity/sensor/
- return_type: której funkcji użyć do parsowania danych - sprawdź kod źródłowy czujnika Modbus.
- value_type: zdefiniuj to lub
return_type. Możliwe typy wartości są wymienione poniżej.
VALUE_TYPES = {
"U_WORD": {"f": "decode_16bit_uint", "byteorder": Endian.Big},
"S_WORD": {"f": "decode_16bit_int", "byteorder": Endian.Big},
"U_DWORD": {"f": "decode_32bit_uint", "byteorder": Endian.Big},
"S_DWORD": {"f": "decode_32bit_int", "byteorder": Endian.Big},
"U_DWORD_R": {"f": "decode_32bit_uint", "byteorder": Endian.Little},
"S_DWORD_R": {"f": "decode_32bit_int", "byteorder": Endian.Little},
"U_QWORD": {"f": "decode_64bit_uint", "byteorder": Endian.Big},
"S_QWORD": {"f": "decode_64bit_int", "byteorder": Endian.Big},
"U_QWORD_R": {"f": "decode_64bit_uint", "byteorder": Endian.Little},
"FP32": {"f": "decode_32bit_float", "byteorder": Endian.Big},
"FP32_R": {"f": "decode_32bit_float", "byteorder": Endian.Little},
}