O NasBlogKontakt
Zaawansowane i Poradniki

Sterowanie innym boneIO Black poprzez MQTT

Instrukcja opisująca w jaki sposób kotnrolować innym boneIOI Black przy pomocy MQTT.

Szybkie wprowadzenie

Broker MQTT

Zanim przejdziemy do właściwej części instrukcji, musimy wspomnieć o samym MQTT. Zgodnie z wcześniejszą dokumentacją, najbardziej zalecaną opcją dla brokera MQTT jest skonfigurowanie go bezpośrednio na boneIO Black. Na potrzeby tego poradnika przyjmujemy, że właśnie tak skonfigurowaliście swoje środowisko. Dodatkowo zakładamy, że oba sterowniki znajdują się we wspólnej sieci i korzystają z tego samego brokera.

Założenia

W naszej przykładowej konfiguracji posiadamy dwa sterowniki boneIO Black (32x10A). Pierwszy z nich nazwaliśmy boneio1, a drugi analogicznie boneio2. Za nazwę naszego urządzenia w sieci odpowiada sekcja linia name: w sekcji boneio - spacje są zamieniane na znak "_". Jeżeli chcemy nadać urządzeniu własna skrócona nazwe w mqtt możemy wykorzystać nagłówek - topic_prefix:, którą znajdziemy w plikumqtt.yaml. Wtedy właśnie na jego podstawie nadawana jest nazwa i w taki sposób jeden sterownik boneIO rozpoznaje drugi.

Jak sterować wyjściem drugiego sterownika za pomocą wejścia pierwszego?

Jest to niezwykle proste. W naszym scenariuszu, przy pomocy wejścia nr 1 IN_01 w boneio1 – a dokładnie akcji pojedynczego wciśnięcia przycisku – chcemy zmienić stan wyjścia 1 OUT_01 w sterowniku boneio2.

Aby tego dokonać, jedyne co musimy zrobić, to edycja pliku event.yaml na sterowniku boneio1.

Poniżej przykład konfiguracji:

- id: IN_01
  boneio_input: IN_01
  actions:
    single:
      - action: output_over_mqtt
        boneio_id: boneio2
        pin: OUT_01

Co zrobiliśmy? W stosunku do domyślnego pliku wprowadziliśmy drobne zmiany. Mianowicie w naszej sekcji - action: zmieniliśmy standardowy parametr output na output_over_mqtt ak sama nazwa wskazuje, umożliwia on zmianę stanu wyjścia poprzez protokół MQTT.

Następnie podajemy parametry:

  • boneio_id: - tutaj wpisujemy nazwę sterownika, którego wyjście chcemy kontrolować (w naszym przypadkuboneio2).
  • pin – tutaj podajemy nazwę konkretnego wyjścia, czyli OUT_01.

Co osiągamy taką konfiguracją? Wykonując akcję pojedynczego kliknięcia przyciskiem podłączonym do wejścia IN_01 w boneio1, sterujemy bezpośrednio wyjściem OUT_01 w boneio2. Wszystko dzieje się wewnątrz logicznej warstwy sterowników boneIO, a cała komunikacja odbywa się bezpośrednio między nimi.

Co to oznacza w praktyce? Tworzymy lokalny ekosystem całkowicie odporny na potencjalne awarie nadrzędnych systemów automatyki domowej (np. Home Assistant).