O NasBlogKontakt
ArchivAplikacja Black v0.12Contribute

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
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},
}