Abonnementen en API-toegang
De App heeft vier niveaus. De actuele prijzen staan op de prijzenpagina; onderstaande functiegrenzen bepalen welke documentatie voor een account geldt.
Abonnementsoverzicht
| Functie | Gratis | Plus | Pro | Business |
|---|---|---|---|---|
| Apparaten | Onbeperkt | Onbeperkt | Onbeperkt | Onbeperkt |
| Dashboard, live data, grafieken, trends en 12 maanden historie | Ja | Ja | Ja | Ja |
| CSV-export en instelbare cooldown voor waarschuwingen | Nee | Ja | Ja | Ja |
| Locaties | 1 | 1 | 50 | 200 |
| Alleen-lezen Cloud API en JSON-export | Nee | Nee | Ja | Ja |
| API-tokens | Alleen prijzen | Alleen prijzen | Alle API-rechten | Alle API-rechten |
| Energiecontractanalyses | 1 per 12 maanden | Onbeperkt | Onbeperkt | Onbeperkt |
| Cloud Voice-verzoeken per dag / maand | 3 / 10 | 20 / 100 | 75 / 500 | 300 / 2000 |
| Cloud Voice-internetzoekopdrachten per dag / maand | 1 / 3 | 5 / 25 | 20 / 150 | 100 / 750 |
| Eigen OpenAI API-key voor Cloud Voice | Nee | Nee | Ja | Ja |
| Zakelijk portaal en huisstijl | Nee | Nee | Nee | Ja |
Cloud Voice werkt op UltimateSensor V2 met cloudfirmware. Instellingen en verbruik staan onder Instellingen > Cloud Voice; zie de handleiding voor de spraakassistent.
De waarschuwingslimieten staan in Locaties en waarschuwingen.
Persoonlijke API-tokens
Maak tokens onder Instellingen > API Tokens. Geef ieder token een herkenbare naam. Rechten kies je niet zelf: een token krijgt de rechten van je abonnement op het moment dat je het aanmaakt. Ieder abonnement krijgt toegang tot prijzen. Pro en Business krijgen ook toegang tot apparaten, metingen, statistieken, zonnevoorspelling en export. Maak na een upgrade een nieuw token om de extra rechten te gebruiken.
Behandel een token als een wachtwoord:
- kopieer het eenmaal naar de bestemming en bewaar het in een wachtwoordmanager;
- plaats het nooit in screenshots, openbare YAML of een Git-repository;
- gebruik een apart token voor Home Assistant en iedere externe toepassing;
- trek het direct in en vervang het wanneer het mogelijk is uitgelekt.
Gedrag van de API
De API is geversioneerd onder /api/v1 op https://api.smarthomeshop.io, met een limiet van 60 verzoeken per minuut per gebruiker. Clients moeten authenticatiefouten, validatieresponsen, limieten en tijdelijke onbeschikbaarheid afhandelen. Vraag met een redelijk interval op en cache resultaten, in plaats van dezelfde historie steeds opnieuw op te halen.
Dynamische prijseindpunten zijn toegankelijk met een geauthenticeerd token met het juiste prijsrecht. De bredere Cloud API voor apparaten en metingen is beperkt tot Pro en Business. Een token krijgt nooit meer toegang dan het abonnement en de toegekende rechten toestaan.
Respons van de Energy Price API
GET /api/v1/energy/prices gebruikt de bestaande bearer-tokenauthenticatie en het recht prices:read. Naast de bestaande velden voor elektriciteit, gas, samenvatting en tarieven bevat de respons veilige bron- en contractmetadata:
{
"pricing": {
"source": "SmartHomeShop.io",
"market": "EPEX NL",
"price_type": "all_in",
"currency": "EUR",
"unit": "kWh",
"timezone": "Europe/Amsterdam"
},
"contract": {
"name": "Mijn thuiscontract",
"supplier": "Voorbeeld Energie",
"provider": "Voorbeeld Energie",
"product": "Dynamisch Energiecontract",
"type": "dynamic",
"location_id": 12,
"location_name": "Thuis",
"location": {
"id": 12,
"name": "Thuis"
},
"starts_at": "2026-01-01",
"ends_at": null,
"standing_charge_monthly": 7.5,
"import_markup_per_kwh": 0.021,
"feed_in_markup_per_kwh": 0.018,
"currency": "EUR"
}
}
Gebruik GET /api/v1/energy/prices?location=12 om het actieve contract te kiezen dat aan een locatie is gekoppeld, of ?contract=34 om direct een eigen contract vast te zetten. Een locatie zonder eigen contract gebruikt het contract op Alle locaties. name is de zelf ingestelde contractnaam, provider is de leesbare leveranciersnaam en location.name is de zelf ingestelde locatienaam.
GET /api/v1/energy/contracts geeft zowel de backwards-compatible vlakke lijst contracts als een lijst locations. Iedere locatie bevat het bijbehorende active_contract, of null als die locatie geen huidig contract heeft. Per locatie kan slechts één actief contract dezelfde periode omvatten.
Als geen toepasbaar contract kan worden bepaald, antwoordt het prijseindpunt met HTTP 422 en code energy_contract_required; stroom-, gas- en samenvattingsprijzen ontbreken dan volledig. Geldbedragen zijn JSON-nummers en optionele waarden kunnen null zijn. Klantnummers en privéreferenties worden nooit teruggestuurd.