Einfache RESTful API

Dieser Adapter ermöglicht das Lesen und Schreiben von ioBroker-Objekten und den Status mit der Web-RESTful-API

Aktueller Release
3.0.7
Entwickler
bluefox, Apollon77, Marco.K
Lizenz
MIT

Simple-API

Dies ist eine RESTful-Schnittstelle zum Lesen der Objekte und Zustände von ioBroker und zum Schreiben/Steuern der Zustände über HTTP-Get/Post-Anfragen.

Dieser Adapter nutzt die Sentry-Bibliotheken, um Ausnahmen und Codefehler automatisch an die Entwickler zu melden. Weitere Details und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie in der Sentry-Plugin-Dokumentation ! Die Sentry-Berichterstattung wird ab js-controller 3.0 verwendet.

Besser nutzenioBroker.rest-api anstelle dieses Adapters.

Verwendung

Aufruf im Browserhttp://ipaddress:8087/help Um Hilfe zur API zu erhalten. Das Ergebnis lautet:

{
  "getPlainValue": "http://ipaddress:8087/getPlainValue/stateID",
  "getPlainValue": "http://ipaddress:8087/getPlainValue/stateID?json",
  "get": "http://ipaddress:8087/get/stateID/?prettyPrint",
  "getBulk": "http://ipaddress:8087/getBulk/stateID1,stateID2/?prettyPrint",
  "set": "http://ipaddress:8087/set/stateID?value=1&prettyPrint",
  "toggle": "http://ipaddress:8087/toggle/stateID?prettyPrint",
  "setBulk": "http://ipaddress:8087/setBulk?stateID1=0.7&stateID2=0&prettyPrint",
  "objects": "http://ipaddress:8087/objects?pattern=system.adapter.admin.0*&prettyPrint",
  "objects": "http://ipaddress:8087/objects?pattern=system.adapter.admin.0*&type=adapter&prettyPrint",
  "states": "http://ipaddress:8087/states?pattern=system.adapter.admin.0*&prettyPrint"
  "search": "http://ipaddress:8087/search?pattern=system.adapter.admin.0*&prettyPrint",
  "query": "http://ipaddress:8087/query/stateID1,stateID2/?prettyPrint"
  "query": "http://ipaddress:8087/query/stateID1,stateID2/?noHistory=true&prettyPrint"
  "query": "http://ipaddress:8087/query/stateID1,stateID2/?dateFrom=2019-06-06T12:00:00.000Z&d&prettyPrint"
  "query": "http://ipaddress:8087/query/stateID1,stateID2/?dateFrom=2019-06-06T12:00:00.000Z&dateTo=2019-06-06T12:00:00.000Z&aggregate=minmax&count=2000&prettyPrint"
}

getPlainValue

Anrufbeispiel:

http://ipaddress:8087/getPlainValue/system.adapter.admin.0.alive

Ergebnis:

true

Zusätzlich können Sie einen Abfrageschlüssel verwenden.json um das Parsen des gespeicherten Werts zu erzwingen:

http://ipaddress:8087/getPlainValue/javascript.0.value?json

Ergebnis:

{"a":1}

Und ohnejson Das Ergebnis wäre

"{\"a\": 1}"

Eine weitere nützliche Flagge könnte ebenfalls verwendet werden.noStringify :

http://ipaddress:8087/getPlainValue/javascript.0.stringValue?noStringify

Ergebnis:

VALUETEXT

Und ohnenoStringify Das Ergebnis wäre

"VALUETEXT"

erhalten

Anrufbeispiel:http://ipaddress:8087/get/system.adapter.admin.0.alive

Ergebnis:

{"val":true,"ack":true,"ts":1442432193,"from":"system.adapter.admin.0","lc":1442431190,"expire":23437,"_id":"system.adapter.admin.0.alive","type":"state","common":{"name":"admin.0.alive","type":"boolean","role":"indicator.state"},"native":{}}

oder rufen Sie z.B. an:

http://ipaddress:8087/get/system.adapter.admin.0.alive?prettyPrint

Ergebnis:

{
  "val": true,
  "ack": true,
  "ts": 1442432238,
  "from": "system.adapter.admin.0",
  "lc": 1442431190,
  "expire": 28494,
  "_id": "system.adapter.admin.0.alive",
  "type": "state",
  "common": {
    "name": "admin.0.alive",
    "type": "boolean",
    "role": "indicator.state"
  },
  "native": {}
}

getBulk

Mehrere Zustände mit einer Anfrage abrufen, zurückgegeben als Array von Objekten in der Reihenfolge einer Liste in der Anfrage und id/val/ts als Unterobjekt.

Satz

Anrufbeispiel:http://ipaddress:8087/set/javascript.0.test?value=1

Ergebnis:

{"id":"javascript.0.test","value":1}

oder rufen Sie z.B. an:http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint

Ergebnis:

{
  "id": "javascript.0.test",
  "value": 1
}

Natürlich der Datenpunktjavascript.0.test muss existieren.

Darüber hinaus könnte der Werttyp definiert werden:http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&type=string

und es könnte auch ein Bestätigungsflag definiert werden:http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true

Umschalten

Schaltet den Wert um:

  • boolescher Wert: true => false, false => true
  • Zahl ohne Grenzen: x => 100-x
  • Zahl mit Grenzen: x => max - (x - min)

setBulk

Mehrere Zustände können mit einer einzigen Anfrage festgelegt werden. Diese Anfrage unterstützt auch die POST-Methode; die POST-Daten müssen sich im Anfragetext und nicht in der URL befinden.

Bitte verwenden Sie den Inhaltstyptext/plain dafür.

setValueFromBody

Mit diesem Befehl kann der Wert eines bestimmten Zustands durch den Inhalt des POST-Bodys festgelegt werden.

Anrufbeispiel:http://ipaddress:8087/setValueFromBody/0_userdata.0.example_state mit Körperhello Wo0_userdata.0.example_state ist die Kennung des Staates.

Bitte verwenden Sie den Inhaltstyptext/plain dafür.

Objekte

Objekte eines definierten Typs aus der Datenbank lesen.

Anrufbeispiel:http://ipaddress:8087/objects?pattern=enum.*&type=enum - alle Enumerationen lesen

oder

http://ipaddress:8087/objects?pattern=system.adapter.admin.0.* - alle Zustände im Zweig lesensystem.adapter.admin.0

Staaten

suchen

Wenn in der Konfiguration eine Datenquelle (Verlauf, SQL) festgelegt ist, werden nur die dieser Datenquelle bekannten Datenpunkte aufgelistet. Ist die Option „Alle Datenpunkte auflisten“ aktiviert oder wurde keine Datenquelle angegeben, werden alle Datenpunkte angezeigt. Dieser Befehl wird für das Grafana JSON-/SimpleJSON-Plugin benötigt.

Abfrage

Wenn in der Instanzkonfiguration eine Datenquelle (Verlauf, SQL) angegeben wurde, werden die Daten der angegebenen Datenpunkte für den angegebenen Zeitraum ausgelesen; andernfalls wird nur der aktuelle Wert ausgelesen. Dieser Befehl wird für das Grafana JSON-/SimpleJSON-Plugin benötigt.

helfen

Gibt diese Ausgabe zurück

Verwendung

Angenommen, wir haben keine Sicherheitsvorkehrungen getroffen und der Server läuft auf dem Standardport 8087.

Bei allen Anfragen kann der Name oder die ID des Bundeslandes angegeben werden.

Für jede Anfrage, die JSON zurückgibt, können Sie einen Parameter festlegen.prettyPrint um die Ausgabe in einer für Menschen lesbaren Form zu erhalten.

Wenn die Authentifizierung aktiviert ist, sind zwei weitere Felder obligatorisch:?user=admin&pass=iobroker

getPlainValue

Lesen Sie den Statuswert als Text. Sie können mehrere IDs durch Semikolon getrennt angeben.

http://ip:8087/getPlainValue/admin.0.memHeapTotal =>31.19

http://ip:8087/getPlainValue/admin.0.memHeapTotal, admin.0.memHeapUsed =>

  31.19
  17.52

erhalten

Zustands- und Objektdaten werden als JSON gelesen. Sie können mehrere IDs durch Semikolon getrennt angeben. Bei Anforderung mehrerer IDs wird ein JSON-Array zurückgegeben.

http://localhost:8087/get/admin.0.memHeapTotal/?prettyPrint =>

  {
    "val": 31.19,
    "ack": true,
    "ts": 1423154619,
    "from": "system.adapter.admin.0",
    "lc": 1423153989,
    "_id": "system.adapter.admin.0.memHeapTotal",
    "type": "state",
    "common": {
      "name": "admin.0.memHeapTotal",
      "type": "number",
      "role": "indicator.state",
      "unit": "MB",
      "history": {
        "enabled": true,
        "changesOnly": true,
        "minLength": 480,
        "maxLength": 960,
        "retention": 604800,
        "debounce": 10000
      }
    },
    "native": {}
  }

http://ip:8087/get/admin.0.memHeapTotal,admin.0.memHeapUsed/?prettyPrint =>

  [
    {
      "val": 31.19,
      "ack": true,
      "ts": 1423154544,
      "from": "system.adapter.admin.0",
      "lc": 1423153989,
      "_id": "system.adapter.admin.0.memHeapTotal",
      "type": "state",
      "common": {
        "name": "admin.0.memHeapTotal",
        "type": "number",
        "role": "indicator.state",
        "unit": "MB",
        "history": {
          "enabled": true,
          "changesOnly": true,
          "minLength": 480,
          "maxLength": 960,
          "retention": 604800,
          "debounce": 10000
        }
      },
      "native": {}
    },
    {
      "val": 16.25,
      "ack": true,
      "ts": 1423154544,
      "from": "system.adapter.admin.0",
      "lc": 1423154544,
      "_id": "system.adapter.admin.0.memHeapUsed",
      "type": "state",
      "common": {
        "name": "admin.0.memHeapUsed",
        "type": "number",
        "role": "indicator.state",
        "unit": "MB",
        "history": {
          "enabled": true,
          "changesOnly": true,
          "minLength": 480,
          "maxLength": 960,
          "retention": 604800,
          "debounce": 10000
        }
      },
      "native": {}
    }
  ]

getBulk

Lesen Sie die Zustände mehrerer IDs mit Zeitstempel. Sie können mehrere IDs durch Semikolon getrennt angeben. Es wird immer ein JSON-Array zurückgegeben.

http://ip:8087/getBulk/admin.0.memHeapTotal,admin.0.memHeapUsed/?prettyPrint =>

  {
      "admin.0.memHeapTotal": {
          "val": 31.19,
          "ts": 1423154754
      },
      "admin.0.memHeapUsed": {
          "val": 15.6,
          "ts": 1423154754
      }
  }

Satz

Schreiben Sie die Zustände mit den angegebenen IDs. Sie können die Wartezeit in Millisekunden angeben, um auf eine Antwort vom Treiber zu warten.

http://ip:8087/set/hm-rpc.0.IEQ12345.LEVEL?value=1&prettyPrint =>

{
       "id": "hm-rpc.0.IEQ12345.LEVEL",
       "value": 1
     }

http://ip:8087/set/hm-rpc.0.IEQ12345.LEVEL?value=1&wait=5000&prettyPrint =>

{
       "val": 1,
       "ack": true,
       "ts": 1423155399,
       "from": "hm-rpc.0.IEQ12345.LEVEL",
       "lc": 1423155399
     }

Wenn innerhalb der vorgegebenen Zeit keine Antwort eingeht,null Es wird ein Wert zurückgegeben. Im ersten Fall wird die Antwort sofort zurückgegeben.ack ist falsch. Im zweiten Fallack Das stimmt. Das bedeutet, es war eine Reaktion des Fahrers.

setBulk

  • Die meisten IDs in einer einzigen Anfrage senden.

http://ip:8087/setBulk?hm-rpc.0.FEQ1234567:1.LEVEL=0.7&Anwesenheit=0&prettyPrint =>

  [
    {
      "id": "hm-rpc.0.FEQ1234567:1.LEVEL",
      "val": "0.7"
    },
    {
      "error": "error: datapoint \"Anwesenheit\" not found"
    }
  ]

Sie können diese Anfrage auch als POST-Anfrage senden. Bitte verwenden Sie den Inhaltstyp.text/plain und fügen Sie die Daten in den Textkörper ein.

Objekte

Gibt die Liste aller Objekte zurück, die einem bestimmten Muster entsprechen. Wird kein Muster angegeben, werden alle Objekte als JSON-Array zurückgegeben.

http://ip:8087/objects?prettyPrint =>

  {
  "system.adapter.admin.0.uptime": {
    "_id": "system.adapter.admin.0.uptime",
    "type": "state",
    "common": {
      "name": "admin.0.uptime",
      "type": "number",
      "role": "indicator.state",
      "unit": "seconds"
    },
    "native": {}
  },
  "system.adapter.admin.0.memRss": {
    "_id": "system.adapter.admin.0.memRss",
    "type": "state",
    "common": {
      "name": "admin.0.memRss",
      "desc": "Resident set size",
      "type": "number",
      "role": "indicator.state",
      "unit": "MB",
      "history": {
        "enabled": true,
        "changesOnly": true,
        "minLength": 480,
        "maxLength": 960,
        "retention": 604800,
        "debounce": 10000
      }
    },
    "native": {}
  },
  ...

Alle Steuerungsobjekte des Adapters system.adapter.admin.0 abrufen:http://ip:8087/objects?pattern=system.adapter.admin.0*&prettyPrint =>

    {
    "system.adapter.admin.0.uptime": {
      "_id": "system.adapter.admin.0.uptime",
      "type": "state",
      "common": {
        "name": "admin.0.uptime",
        "type": "number",
        "role": "indicator.state",
        "unit": "seconds"
      },
      "native": {}
    },
    ...

Staaten

Gibt die Liste aller Bundesstaaten für ein bestimmtes Muster zurück. Wird kein Muster angegeben, werden alle Bundesstaaten als JSON-Array zurückgegeben.

http://ip:8087/states?prettyPrint =>

  {
    "system.adapter.admin.0.uptime": {
      "val": 32176,
      "ack": true,
      "ts": 1423156164,
      "from": "system.adapter.admin.0",
      "lc": 1423156164
    },
    "system.adapter.admin.0.memRss": {
      "val": 41.14,
      "ack": true,
      "ts": 1423156164,
      "from": "system.adapter.admin.0",
      "lc": 1423156119
    },
    "system.adapter.admin.0.memHeapTotal": {
      "val": 31.19,
      "ack": true,
      "ts": 1423156164,
      "from": "system.adapter.admin.0",
      "lc": 1423155084
    },
  ...

Alle Steuerungsobjekte des Adapters system.adapter.admin.0 abrufen:

http://ip:8087/states?pattern=system.adapter.admin.0*&prettyPrint =>

    {
      "system.adapter.admin.0.uptime": {
        "val": 32161,
        "ack": true,
        "ts": 1423156149,
        "from": "system.adapter.admin.0",
        "lc": 1423156149
      },
      "system.adapter.admin.0.memRss": {
        "val": 41.14,
        "ack": true,
        "ts": 1423156149,
        "from": "system.adapter.admin.0",
        "lc": 1423156119
      },
      "system.adapter.admin.0.memHeapTotal": {
        "val": 31.19,
        "ack": true,
        "ts": 1423156149,
        "from": "system.adapter.admin.0",
        "lc": 1423155084
      },
      "system.adapter.admin.0.memHeapUsed": {
        "val": 19.07,
        "ack": true,
        "ts": 1423156149,
        "from": "system.adapter.admin.0",
        "lc": 1423156149
      },
      "system.adapter.admin.0.connected": {
        "val": true,
        "ack": true,
        "ts": 1423156149,
        "from": "system.adapter.admin.0",
        "lc": 1423128324,
        "expire": 28100
      },
      "system.adapter.admin.0.alive": {
        "val": true,
        "ack": true,
        "ts": 1423156149,
        "from": "system.adapter.admin.0",
        "lc": 1423128324,
        "expire": 28115
      }
    }

suchen

Wenn in der Konfiguration eine Datenquelle (Verlauf, SQL) festgelegt ist, werden nur die dieser Datenquelle bekannten Datenpunkte aufgelistet. Ist die Option „Alle Datenpunkte auflisten“ aktiviert oder wurde keine Datenquelle angegeben, werden alle Datenpunkte aufgelistet.

http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint =>

  {
    "system.adapter.admin.0.outputCount",
    "system.adapter.admin.0.inputCount",
    "system.adapter.admin.0.uptime",
    "system.adapter.admin.0.memRss",
    "system.adapter.admin.0.memHeapTotal",
    "system.adapter.admin.0.memHeapUsed",
    "system.adapter.admin.0.cputime",
    "system.adapter.admin.0.cpu",
    "system.adapter.admin.0.connected",
    "system.adapter.admin.0.alive"
  }

Abfrage

Wenn eine Datenquelle (Historie, SQL) angegeben wird, werden Daten von den angegebenen Datenpunkten für den angegebenen Zeitraum abgerufen.

http://ip:8087/query/system.host.iobroker-dev.load,system.host.iobroker-dev.memHeapUsed/?prettyPrint&dateFrom=2019-06-08T01:00:00.000Z&dateTo=2019-06-08T01:00:10.000Z =>

  [
    {
      "target": "system.host.iobroker-dev.load",
      "datapoints": [
        [
          0.12,
          1559955600000
        ],
        [
          0.46,
          1559955601975
        ],
        [
          0.44,
          1559955610000
        ]
      ]
    },
    {
      "target": "system.host.iobroker-dev.memHeapUsed",
      "datapoints": [
        [
          23.01,
          1559955600000
        ],
        [
          22.66,
          1559955601975
        ],
        [
          22.69,
          1559955610000
        ]
      ]
    }
  ]

Wenn keine Datenquelle angegeben wurde oder der Parameter noHistory übergeben wird, wird nur der aktuelle Wert des Datenpunkts ausgelesen.

http://ip:8087/query/system.host.iobroker-dev.load,system.host.iobroker-dev.memHeapUsed/?prettyPrint&noHistory=true =>

  [
    {
      "target": "system.host.iobroker-dev.load",
      "datapoints": [
        [
          0.58,
          1559970500342
        ]
      ]
    },
    {
      "target": "system.host.iobroker-dev.memHeapUsed",
      "datapoints": [
        [
          21.53,
          1559970500342
        ]
      ]
    }
  ]

Sie können in der Abfrage relative Zeitangaben verwenden. Zum Beispiel:dateFrom=-1h oderdateTo=today Die

Folgende relative Muster werden unterstützt:

  • hour oderthisHour oderthis hour - Beginn der aktuellen Stunde
  • last hour oderlastHour - Beginn der vorherigen Stunde
  • today - Beginn des heutigen Tages
  • yesterday - Beginn des Vortages
  • week oderthisWeek oderthis week - Beginn der aktuellen Woche
  • lastWeek oderlast week - Beginn der Vorwoche
  • month oderthisMonth oderthis month - Beginn des laufenden Monats
  • lastMonth oderlast month - Anfang des Vormonats
  • year oderthisYear oderthis year - Beginn des laufenden Jahres
  • lastYear oderlast year - Beginn des Vorjahres
  • -Nd - vor N Tagen
  • -NM - vor N Monaten
  • -Ny - vor N Jahren
  • -Nh - vor N Stunden
  • -Nm - vor N Minuten
  • -Ns - vor N Sekunden

CORS

Mit der Option „Ursprung zulassen (CORS)“ können Sie dieAccess-Control-Allow-Origin Header, um Anfragen von anderen Domains zu ermöglichen.

Wenn Sie das Feld leer lassen, wird die Kopfzeile nicht festgelegt.

Modifikatoren

Sie können einige Optionen nutzen, um die Antwort zu ändern:

  • prettyPrint - um die Ausgabe in einer für Menschen lesbaren Form zu erhalten
  • json - um das Parsen des Wertes imgetPlainValue Befehl
  • timeRFC3339 - um die Zeit von Zeitstempeln zu erhalten (ts Undlc ) im RFC3339-Format, wie2019-06-08T01:00:00.000Z
  • callback - Antwort im JSONP-Format.callback=<CALLBACK> DieCALLBACK ist der Name der Callback-Funktion

Authentifizierung

Dieser Adapter unterstützt die folgenden Authentifizierungstypen:

  • Abfrageparameteruser Undpass
  • Basisauthentifizierung
  • Der OAuth2-Bearer-Token befindet sich im Header. Weitere Informationen zum Abrufen von Tokens finden Sie im Webadapter.

Changelog

3.0.7 (2025-06-16)

  • (@GermanBluefox) corrected reading of history data

3.0.6 (2025-03-15)

  • (bluefox) Added support for 'Access-Control-Allow-Origin'
  • (bluefox) Removed letsencrypt information
  • (bluefox) Added basic and OAuth2 authentication
  • (bluefox) Implemented JSONP response
  • (bluefox) Implemented relative times for query

3.0.5 (2025-03-13)

  • (bluefox) Corrected the indication of running mode in admin
  • (bluefox) Corrected the writing of numeric values
  • (bluefox) Clear cache after 10 minutes

3.0.0 (2025-03-09)

  • BREAKING: When the adapter is configured to work as a web extension, no own local port is opened anymore
  • (bluefox) Updated packages
  • (bluefox) Migrated to TypeScript
  • (bluefox) If State/Object not found, the response will be 404 (and not 500)
  • (bluefox) If a user has no permission, the response will be 403 (and not 401)

2.8.0 (2024-05-23)

  • (foxriver76) ported to @iobroker/webserver

2.7.2 (2022-10-08)

  • (Apollon77) Prepare for future js-controller versions

2.7.1 (2022-08-29)

  • (bluefox) Check if the port is occupied only on defined interface
  • (bluefox) Added JSON config

2.7.0 (2022-05-31)

  • (crycode-de) Allow use of ack flag for setBulk post requests
  • (Apollon77) Return an ack flag too on getBulk

2.6.5 (2022-04-14)

  • Added support for aggregate and count for queries

2.6.4 (2022-03-17)

  • (Apollon77) Optimize performance, especially when using names instead of object ids

2.6.3 (2022-02-19)

  • (Apollon77) Optimize error message for multi-language objects
  • (Apollon77) Do not overwrite state properties by object properties

2.6.2 (2021-11-12)

  • (bluefox) Support of new flags for getPlainValue: json and noStringify

2.6.1 (2021-05-13)

  • (Apollon77) Catch error in request parsing when malformed (Sentry IOBROKER-SIMPLE-API-16)

2.6.0 (2021-05-09)

  • (Apollon77) Also URL-Decode the path parts like state ids
  • (Apollon77) Optimize for js-controller 3.3

2.5.3 (2021-01-25)

  • (Apollon77) Make sure that delayed answers are not crashing (Sentry IOBROKER-SIMPLE-API-Z)

2.5.2 (2021-01-09)

  • (bluefox) Support of new Let's Encrypt (only with js-controller 3.2.x)

2.4.8 (2020-09-17)

  • (Apollon77) Make sure missing favico file locally is not throwing exceptions (Sentry IOBROKER-SIMPLE-API-G)

2.4.7 (2020-08-17)

  • (Apollon77) check that targets are an array for "query" requests (Sentry IOBROKER-SIMPLE-API-F)

2.4.6 (2020-06-11)

  • (Apollon77) Make sure that the adapter is showing the correct error when webserver cannot be initialized (Sentry IOBROKER-SIMPLE-API-7)

2.4.5 (2020-05-04)

  • (Apollon77) webserver initialization optimized again to prevent errors with invalid certificates

2.4.4 (2020-05-02)

  • (Apollon77) Make sure Permission errors do not crash adapter (Sentry IOBROKER-SIMPLE-API-3)

2.4.3 (2020-04-30)

  • (Apollon77) Optimize web server error handling

2.4.1 (2020-04-23)

  • (bluefox) Caught the web server errors

2.4.0 (2020-04-12)

  • (Apollon77) Add Sentry support with js-controller 3.0
  • (Apollon77) fix potential crash

2.3.3 (2019-11-16)

  • (bluefox) Added response code for unknown commands

2.3.2 (2019-10-18)

  • (Apollon77) Fix Admin 3 support

2.3.1 (2019-10-12)

  • (bluefox) Admin 3 is now supported
  • (bluefox) NPM packages were updated

2.2.0 (2019-09-10)

  • (bluefox) New flags are supported: ack and type
  • (bluefox) Return error codes as JSON if no pretty print defined

2.1.2 (2019-09-05)

  • (Apollon77) fix compact mode

2.1.0 (2019-07-05)

2.0.5 (2019-06-26)

  • (Apollon77) remove logging

2.0.4 (2019-06-23)

  • (Apollon77) fix usage as web extension

2.0.2 (2018-12-17)

  • (Apollon77) fix decoding for state Ids with # in it

2.0.0 (2018-06-29)

  • (Giermann) BREAKING CHANGE: getBulk is returning data in a different structure

1.6.3 (2018-04-15)

  • (Apollon77) Return used character encoding (UTF-8)

1.6.2 (2017-11-27)

  • (Apollon77) Fix decoding problems

1.6.1 (2017-09-25)

  • (Apollon77) Fix statuscode for setBulk and optimize permission errors

1.6.0 (2017-07-10)

  • (Apollon77) Fix handling of URL-encoded values, they are now decoded properly
  • (Apollon77) Optimize Permission handling
  • (Apollon77) add possibility to only allow access to states where user is also owner, finally works correct with js-controller 1.1.1!

1.5.0 (2017-03-10)

  • (greyhound) Add new POST method setValueFromBody

1.4.0 (2017-01-05)

  • (bluefox) new web server plugin support

1.3.0 (2016-08-30)

  • (bluefox) compatible only with new admin

1.2.0 (2016-08-27)

  • (bluefox) support of letsencrypt certificates

1.1.1 (2016-07-06)

  • (bluefox) support of chained certificates

1.1.0 (2016-02-09)

  • (bluefox) fix toggle, objects, states, setBulk, POST
  • (bluefox) add tests

1.0.0 (2015-09-30)

  • (bluefox) stop adapter before update

0.1.2 (2015-06-28)

  • (bluefox) add description in readme.md
  • (bluefox) change "toggle" for boolean and numbers

0.1.1 (2015-06-28)

  • (bluefox) change setForeignState api
  • (bluefox) add type to io-package.json
  • (bluefox) enable run from "web"
  • (bluefox) add default user

0.1.0 (2015-06-10)

  • (bluefox) change setForeignState api
  • (bluefox) support of user permissions

0.0.4 (2015-03-11)

  • (bluefox) remove socket.io from file

0.0.3 (2015-02-13)

  • (bluefox) remove socket.io from dependencies

0.0.2 (2015-02-12)

  • (bluefox) enable be a part of "web"

0.0.1 (2015-02-06)

  • (bluefox) initial commit

License

The MIT License (MIT)

Copyright (c) 2015-2025 bluefox dogafox@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.