Внешние интерфейсы
В конечном итоге, для связи с ioBroker потребуется нечто иное, помимо адаптера: скрипт оболочки, Node-RED, Grafana, метеостанция, система домашней автоматизации соседа или специально разработанное приложение. Существуют адаптеры, обеспечивающие внешний доступ для этой цели.
Три пути внутрь. Разница заключается в том, должна ли программа задавать вопрос или же она сама узнает об изменениях.
Какой доступ
| адаптер | Искусство | Порт с завода | Подходит для |
|---|---|---|---|
| простой API | HTTP, статические адреса | 8087 | Чтение или установка значения из скрипта или браузера. |
| rest-api | HTTP, REST с использованием Swagger | 8093 | Программы, которые ожидают понятного интерфейса и авторизации с помощью токенов. |
| вс | Вебсокет | на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 лишь эмулируется. Пример доступен в репозитории .
Безопасность
Эти адаптеры предоставляют доступ к вашим точкам данных, и без регистрации доступ открыт для любого, кто знает адрес. Этого может быть достаточно в вашей собственной сети, но не за её пределами.
Для того чтобы интерфейс мог работать за пределами домашней сети, необходимо выполнить три условия:
- Включите авторизацию в соответствующем экземпляре. См. раздел «Аутентификация» .
- Создать отдельного пользователя с правами, необходимыми только для вызывающей программы, невозможно.
adminСм. раздел «Управление доступом» . - Зашифруйте ваше соединение; в противном случае ваши учетные данные будут передаваться в открытом виде. См. раздел «Шифрование» .
!> Вsimple-api Имя пользователя и пароль включены в адресную строку и, следовательно, попадают в журналы и историю браузера. Это важно для внешнего доступа.rest-api Токены — лучший выбор.
Обеспечить удаленный доступ можно и без открытого порта через IoT-адаптер . Переадресация портов на один из этих интерфейсов — наихудшее из возможных решений.
Обратный путь
Если данные не нужно запрашивать, а нужно передавать в виде отчета , то есть внешняя система отправляет что-то в ioBroker, возможны другие методы:
- MQTT через одноименный адаптер, если другая система его поддерживает.
- Сервисы URL через облако используются, когда сообщение исходит из интернета и не требует открытия портов. См. раздел «Сервисы» .
- простой API с
set, если иностранная система может просто получить доступ к адресу.