API-Adapter
Soll von extern auf den ioBroker zugegriffen werden, können mehrere Adapter genutzt werden
ioBroker.simple-api (deprecated)
Warnung
Der simple-api-Adapter wird nicht weiter entwickelt und wurde vollständig durch den (umfangreicheren) rest-api-Adapter abgelöst.
Leider ist es etwas undurchsichtig und im ersten Moment verwirrend, welcher Adapter für was genutzt werden sollte. Noch undurchsichtiger wird es, wenn man die Einstellungen des web
Adapters anschaut - denn dieser stellt bei bedarf eine integrierte simple-api
bereit.
Bemerkung
Viele Adapter setzen den web-Adapter voraus bzw. benötigen eine Installation des Adapters. Der Grund dafür sind sogenannte „Extensions“, welche den Funktionsumfang des web-Adapters erweitern. Andere Adapter können sich als Plugin im web-Adapter anmelden und so weitere URLs anbieten und weitere Daten ausliefern.
Tipp
Auch der rest-api-Adapter kann als Plugin für den web-Adapter gestartet werden. In diesem Fall wird dann nur ein Port (der des web-Adapters) benötigt.
Ports
Da alle genannten Adapter eigehende Verbindungen von außen (im lokalen Netzwerk) erlauben, sind Portangaben notwendig. Die Standard-Ports der verschiedenen Adapter lauten:
rest-api
: 8093 (falls nicht als web-Adapter-Plugin gestartet)simple-api
: 8087web
: 8082
Diese Ports können bei Bedarf in der jeweiligen Instanz-Konfiguration angepasst werden.
Aktionen
State lesen
Diese Funktionen geben nicht nur den Wert zurück, sondern das komplette State-Objekt als JSON - siehe Daten-Speicherung
rest-api
:http://iobroker:8093/v1/state/system.adapter.admin.0.alive
rest-api
(web-Adapter-Plugin):http://iobroker:8082/rest-api/v1/state/system.adapter.admin.0.alive
simple-api
:http://iobroker:8087/get/system.adapter.admin.0.alive
(+ zugehörige Objektdefinition, siehe unten)web
: nicht möglich
Beispiel-Reponse simple-api:
{
"val": true,
"ack": true,
"ts": 1689585976700,
"q": 0,
"from": "system.adapter.admin.0",
"lc": 1689169647888,
"expire": true,
"_id": "system.adapter.admin.0.alive",
"type": "state",
"common": {
"name": "admin.0 alive",
"type": "boolean",
"read": true,
"write": true,
"role": "indicator.state"
},
"native": {},
"user": "system.user.admin",
"acl": {
"object": 1636,
"state": 1636,
"file": 1632,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}
State-Wert lesen
rest-api
:http://iobroker:8093/v1/state/system.adapter.admin.0.alive/plain
rest-api
(web-Adapter-Plugin):http://iobroker:8082/rest-api/v1/state/system.adapter.admin.0.alive/plain
simple-api
:http://iobroker:8087/getPlainValue/system.adapter.admin.0.alive
web
:http://iobroker:8082/state/system.adapter.admin.0.alive
State schreiben
rest-api
:rest-api
(web-Adapter-Plugin):http://iobroker:8082/rest-api/v1/state/0_userdata.0.contact.doorbell?value=true
simple-api
:http://iobroker:8087/set/0_userdata.0.contact.doorbell?value=true
State umschalten (toggle)
rest-api
:rest-api
(web-Adapter-Plugin):http://iobroker:8082/rest-api/v1/state/0_userdata.0.contact.doorbell/toggle
simple-api
:http://iobroker:8087/toggle/0_userdata.0.contact.doorbell