Device REST API

The device implements a http REST API, available at port 80. It supports the following endpoints:

  • GET /api/v1/info to read various information, e.g.
{
  "id": "3c690779cf58",
  "v": "1.6.6",
  "m": "ALL",
  "ssid": "Coverage2.4GHz",
  "localIP": "10.0.1.10",
  "mqtt": "",
  "name": "Dev C3",
  "imps": 1000,
  "t": "2023-04-05T09:19:51+0200",
  "rr": "POWERON",
  "rssi": "-53"
}
  • POST /api/v1/info to update mqtt, name and imps.
  • GET /api/v1/scan to list the scanned WiFi networks, e.g.
{
  "deviceId": "3c690779cf58",
  "version": "1.6.6",
  "networks": [
    {
      "ssid": "Coverage2.4GHz",
      "auth": true,
      "rssi": -54
    },
    {
      "ssid": "Fantastic5",
      "auth": true,
      "rssi": -72
    },
    {
      "ssid": "Awesome Foursome",
      "auth": true,
      "rssi": -72
    }
  ]
}

note: first scan response will be empty, unless the device is unconfigured / in captive mode (LED is blue).

  • POST /api/v1/restart to restart the device
  • POST /api/v1/provision to set the WiFi ssid and pass credentials, along with gmtOffset
  • POST /api/v1/fota to trigger a FOTA to specified url and md5
  • POST /api/v1/firmware to upload a new firmware binary file
  • POST /api/v1/factory_reset to clear all properties, e.g. WiFi credentials (but preserves current firmware)
  • POST /api/v1/device to change state of an appliance. Params:
    idPrefix=ID_PREFIX
    to=TO_STATE_NAME
    [actual=95]
    e.g.
    curl -v 'http://currentlyone_3c690779cf58.local/api/v1/device' -d 'idPrefix=wine_cool' -d 'to=cooling' -d 'actual=81'

Finns det planer på att även kunna få mätdata via API?

Hej Lars,
det finns tre lokala APIer som du kan konsumera redan idag:

  1. EventSource API
  2. MQTT protocol / API
  3. OBIS/telnet

Du kanske menade ett API till servern, men det är än så länge bara på vår roadmap att göra det vänligt för generella klienter att konsumera.

Hälsningar
Ola på Currently

Tack för snabbt svar!
Jag skulle vilja hämta informationen direkt från enheten till en smarthemlösning från Fibaro. Fibaro är kanske inte den största spelaren på marknaden men de har sina fördelar. Jag har gjort en QuickApp där det hade varit kul att även kunna hämta information från Currently One.
P1/HAN reader (API) | Marketplace FIBARO
Tyvärr har jag inte tillgång till någon Currently One så du får gärna kontakta mig om det skulle finnas någon som jag kan nå för att testa integrationen.
/Lars

Intressant! Det låter som om Bonjour i kombination med EventSource vore enklast för integration med Currently One.

Vad är det för APIer du använt hittills i integrationerna? Jag ser du stödjer HomeWizard, AMSreader och Smartgateways.

H / Ola

Lade även till ett enkelt exempel på Bonjour:

För de andra görs bara en GET-förfrågan efter ett givet intervall. Det motsvarar ju exemplen som du har i första posten i denna tråden, men med mätardata i JSON-strängen. Hade det varit samma i din lösning hade det varit bra :slight_smile:
De andra tre ser ganska lika ut, skiljer i princip bara på attributnamnen

Jag är tveksam till pollning, för då bygger du in en latens som är svår att få bort.
Är det åtminstone GET med If-Modified-Since?

Intervallet är på 10 sekunder så det borde inte vara några problem, gissar att det flesta elmätarna inte lämnar ifrån sig värden så mycket oftare. Så Nej, den kollar inte om värdet är det samma.

Så även om elmätaren ger nya värden varannan sekund, så vill du bara polla senaste värdet var tionde sekund?

Ja det duger fint. Jag kan inte komma på någon anledning till att man skulle behöva data tätare. Det jag skulle kunna tänka mig är elbilsladdning beroende på belastning/överskott, men då går man nog inte via Fibaro.

1 Like

Hej,
Jag har nu lagt med stöd för CurrentlyOne i Fibaro QAn. Hämtar informationen från telnet istället för via API. Kört någon vecka och det funkar bra.

1 Like