Внешние интерфейсы

В конечном итоге, для связи с ioBroker потребуется нечто иное, помимо адаптера: скрипт оболочки, Node-RED, Grafana, метеостанция, система домашней автоматизации соседа или специально разработанное приложение. Существуют адаптеры, обеспечивающие внешний доступ для этой цели.

simple-api, rest-api und ws zwischen einem Programm von außen und ioBroker

Три пути внутрь. Разница заключается в том, должна ли программа задавать вопрос или же она сама узнает об изменениях.

Какой доступ

адаптерИскусствоПорт с заводаПодходит для
простой APIHTTP, статические адреса8087Чтение или установка значения из скрипта или браузера.
rest-apiHTTP, REST с использованием Swagger8093Программы, которые ожидают понятного интерфейса и авторизации с помощью токенов.
всВебсокетнаweb -АдаптерПриложения, которые должны мгновенно обнаруживать изменения без запроса.

Общее правило: запрашивайте по HTTP, слушайте через WebSocket. Всем, кто обращается к одному и тому же адресу каждые десять секунд, чтобы проверить, изменилось ли что-нибудь, действительно нужен WebSocket.

простой API

Самый простой доступ. После создания экземпляра он предоставляет...http://<adresse>:8087/help Список возможных звонков. Самые важные из них:

http://<adresse>:8087/getPlainValue/<id>        nur der Wert, als Text
http://<adresse>:8087/get/<id>                  der Zustand als JSON
http://<adresse>:8087/getBulk/<id1>,<id2>       mehrere auf einmal
http://<adresse>:8087/set/<id>?value=1          einen Wert setzen
http://<adresse>:8087/toggle/<id>               umschalten
http://<adresse>:8087/setBulk?<id1>=0.7&<id2>=0 mehrere setzen
http://<adresse>:8087/states?pattern=hm-rpc.0*  Zustände suchen
http://<adresse>:8087/objects?pattern=hm-rpc.0* Objekte suchen

Прилагается к вызову, отформатированному?prettyPrint Вывод читаем. Это позволяет протестировать все варианты в браузере, прежде чем интегрировать их в скрипт.

?>getPlainValue Функция возвращает только значение, без кавычек и скобок. Именно это и нужно скрипту оболочки для передачи значения.

Ход записи также можно отслеживать, если ведется запись :

http://<adresse>:8087/query/<id>?dateFrom=2026-09-01T00:00:00.000Z&aggregate=minmax&count=2000

rest-api

Более современный подход. Звонок отhttp://<adresse>:8093/ Открывает интерфейс Swagger, где можно опробовать все вызовы, не тратя время на их предварительный поиск.

http://<adresse>:8093/v1/state/<id>             Zustand als JSON
http://<adresse>:8093/v1/state/<id>/plain       nur der Wert
http://<adresse>:8093/v1/sendto/javascript.0    eine Nachricht an eine Instanz
http://<adresse>:8093/v1/command/<name>         einen Befehl ausführen

Государства также могут подписаться на , и черезhttp://<adresse>:8093/oauth/token Есть ли возможность авторизации с использованием токена вместо имени пользователя и пароля в адресной строке?

вс

Доступ через WebSocket. Он не используется напрямую, а применяется приложением, которое устанавливает постоянное соединение и получает уведомления об изменениях, вместо того чтобы запрашивать их. vis и echarts получают свои данные таким образом.

Начиная с версии 4, адаптер работает только с WebSocket; socket.io лишь эмулируется. Пример доступен в репозитории .

Безопасность

Эти адаптеры предоставляют доступ к вашим точкам данных, и без регистрации доступ открыт для любого, кто знает адрес. Этого может быть достаточно в вашей собственной сети, но не за её пределами.

Для того чтобы интерфейс мог работать за пределами домашней сети, необходимо выполнить три условия:

  1. Включите авторизацию в соответствующем экземпляре. См. раздел «Аутентификация» .
  2. Создать отдельного пользователя с правами, необходимыми только для вызывающей программы, невозможно.admin См. раздел «Управление доступом» .
  3. Зашифруйте ваше соединение; в противном случае ваши учетные данные будут передаваться в открытом виде. См. раздел «Шифрование» .

!> Вsimple-api Имя пользователя и пароль включены в адресную строку и, следовательно, попадают в журналы и историю браузера. Это важно для внешнего доступа.rest-api Токены — лучший выбор.

Обеспечить удаленный доступ можно и без открытого порта через IoT-адаптер . Переадресация портов на один из этих интерфейсов — наихудшее из возможных решений.

Обратный путь

Если данные не нужно запрашивать, а нужно передавать в виде отчета , то есть внешняя система отправляет что-то в ioBroker, возможны другие методы:

  • MQTT через одноименный адаптер, если другая система его поддерживает.
  • Сервисы URL через облако используются, когда сообщение исходит из интернета и не требует открытия портов. См. раздел «Сервисы» .
  • простой API сset , если иностранная система может просто получить доступ к адресу.