Spring til indhold
Drainbee
Køb
Smart home · Lokalt API

Forbind Drainbee med Home Assistant, ioBroker & Node-RED

Drainbee udleverer det aktuelle niveau som JSON i hjemmenetværket. Sådan henter du værdien ind som sensor i dit smart home – med få linjer konfiguration og uden omvejen om skyen.

Se API-dokumentationen → Fra firmware 1.2.5
Forespørgsel
GET /status
Svar
niveau i cm
Adgang
kun lokalt

Det får du

Drainbee måler vandstanden i pumpebrønden med en hydrostatisk dyksonde (0–1 m, ±1 cm). Det aktuelle niveau kan du hente direkte i hjemmenetværket og bruge videre i dit smart home:

  • Niveauet som sensor i Home Assistant, ioBroker eller Node-RED – i hele centimeter.
  • Dine egne dashboards og automatiseringer, for eksempel en besked over et bestemt niveau eller en graf over ugen.
  • Kombination med andre sensorer, som nedbørsdata eller en målende smart stikkontakt ved pumpen.

Alarmerne bliver i Drainbee-appen: tærskelværdi, strømafbrydelse og mistet Wi-Fi. Den lokale aflæsning supplerer appen, den erstatter den ikke.

Forudsætninger

  • Drainbee er sat op og forbundet til dit Wi-Fi. Hvis ikke: installationsguiden fører dig igennem på 15 minutter.
  • Enhedens IP-adresse. Du finder den i Drainbee-appen under enhedsoplysningerne. Din router viser den også på listen over tilsluttede enheder.
  • Dit smart home på samme netværk. Home Assistant, ioBroker eller Node-RED skal kunne nå Drainbee direkte.

Tip: giv Drainbee en fast IP-adresse i routeren (DHCP-reservation). Ellers kan adressen ændre sig efter en genstart, og din aflæsning holder op med at virke.

Test forbindelsen

Åbn http://enhedens-ip/status i browseren på samme netværk, for eksempel http://192.168.1.50/status. I terminalen går det med curl:

Terminal
curl http://192.168.1.50/status

Drainbee svarer med et lille JSON-objekt:

Svar
{
  "deviceId": "drainbee",
  "firmwareVersion": "1.2.5",
  "uptimeMs": 86400000,
  "measurement": {
    "cm": 42,
    "ageMs": 3200
  },
  "wifi": {
    "isConnected": true,
    "localIp": "192.168.1.50",
    "rssiDbm": -61
  },
  "mqtt": {
    "isConnected": false
  },
  "memory": {
    "freeHeapBytes": 142000,
    "minFreeHeapBytes": 98000,
    "largestFreeBlockBytes": 86000
  }
}

Ét endpoint, ét felt til vandstanden: measurement.cm. Kan være null.

Aflæsningsinterval: 30–60 s er tilstrækkeligt. Forespørgsler gør ikke målingen hurtigere; brug measurement.ageMs til at opdage gamle værdier.

Home Assistant

Home Assistant har alt, hvad du skal bruge, i sin RESTful-integration. Læg blokken ind i din configuration.yaml, indsæt din IP-adresse og genstart Home Assistant:

configuration.yaml
rest:
  - resource: http://192.168.1.50/status
    scan_interval: 30
    sensor:
      - name: "Sump level"
        unique_id: drainbee_level
        availability: "{{ value_json.measurement.cm is number }}"
        value_template: "{{ value_json.measurement.cm }}"
        unit_of_measurement: "cm"
        device_class: distance
        state_class: measurement

Så har du entiteten sensor.sump_level. scan_interval: 30 spørger hvert 30. sekund, og state_class: measurement giver langtidsstatistik. I historikken ser du pumpecyklusserne som en savtak: niveauet stiger langsomt og falder brat, så snart pumpen kører. Har du allerede en rest:-post, tilføjer du bare blokken som endnu et punkt på listen.

Besked ved højt niveau

Denne automatisering melder fra, når niveauet ligger over 60 cm i to minutter. Opret en ny automatisering i Home Assistant, skift til YAML-visningen og indsæt den. Tærsklen tilpasser du til din brønd.

Automatisering · YAML
alias: "Sump: level too high"
triggers:
  - trigger: numeric_state
    entity_id: sensor.sump_level
    above: 60
    for:
      minutes: 2
actions:
  - action: notify.notify
    data:
      title: "Pump sump"
      message: "Level at {{ states('sensor.sump_level') }} cm - please check the pump."
mode: single

notify.notify går til din standardtjeneste, oftest Home Assistant-appen. Automatiseringen virker kun, så længe Home Assistant kører og kan nå Drainbee – lad derfor alarmerne i Drainbee-appen være slået til.

Idéer at bygge videre på

  • En template- eller derivative-sensor, der viser, hvor hurtigt niveauet stiger.
  • Tæl pumpecyklusser pr. døgn – hver cyklus er et brat fald i niveauet.
  • Niveau og nedbør i samme diagram, så du kan se, hvor kraftigt din brønd reagerer på regn.

Node-RED

I Node-RED er tre noder nok til at hente niveauet:

Indstil en HTTP Request-node til http://192.168.1.50/status, og vælg et fortolket JSON-objekt som svar. Udløs den med en Inject-node hvert 60. sekund, og tilføj derefter denne Function-node.

Ét endpoint, ét felt til vandstanden: measurement.cm. Kan være null.

function-node
const measurement = msg.payload?.measurement;
const cm = measurement?.cm;
if (typeof cm !== "number") return null;

msg.ageMs = measurement.ageMs;
msg.payload = cm;
return msg;

Derfra går værdien videre derhen, hvor du skal bruge den: til et dashboard (gauge eller graf), via en mqtt out-node til din broker eller ind i en database. Kan Drainbee ikke nås, melder http request-noden en fejl, som du kan fange med en catch-node.

ioBroker

Hurtigst går det med JavaScript-adapteren, hvor httpGet er til rådighed fra version 7.9. Opret et nyt script, indsæt din IP-adresse og start det:

ioBroker · JavaScript
const DRAINBEE_URL = "http://192.168.1.50/status";
const STATE_ID = "0_userdata.0.drainbee.level";

createState(STATE_ID, null, {
    name: "Sump level",
    type: "number",
    role: "value",
    unit: "cm",
    read: true,
    write: false
});

schedule("*/30 * * * * *", () => {
    httpGet(DRAINBEE_URL, { timeout: 5000 }, (err, response) => {
        if (err || response.statusCode !== 200) {
            setState(STATE_ID, null, true);
            log("Drainbee not reachable: " + (err || response.statusCode), "warn");
            return;
        }
        try {
            const cm = JSON.parse(response.data).measurement?.cm;
            setState(STATE_ID, typeof cm === "number" ? cm : null, true);
        } catch (e) {
            setState(STATE_ID, null, true);
            log("Drainbee: " + e, "warn");
        }
    });
});

Scriptet opretter datapunktet 0_userdata.0.drainbee.level og skriver det aktuelle niveau ind i det hvert 30. sekund. Derfra kan du vise det i VIS, bruge det i Blockly-regler eller gemme det med History-adapteren. Uden JavaScript-adapteren kan den samme URL læses cyklisk med Parser-adapteren.

Sikkerhed

Det lokale API er beregnet til dit betroede hjemmenetværk. Det har ingen godkendelse eller HTTPS. Alle, der kan nå Drainbee på netværket, kan læse status, men intet kan ændres via API'et.

Opret ikke portvideresendelse for port 80 til Drainbee i routeren. Brug Drainbee-appen eller en VPN til hjemmenetværket til fjernadgang.

Fejlfinding

Intet svar på forespørgslen

  • IP-adressen er ændret: tjek den aktuelle adresse i appen eller routeren, og opret en DHCP-reservation.
  • Andet netværk: gæste-Wi-Fi, adskilte VLAN'er eller et aktivt VPN på computeren blokerer adgangen. Begge enheder skal kunne nå hinanden på samme netværk.
  • Drainbee er offline: viser appen intet aktuelt niveau, så tjek først strøm og Wi-Fi ved enheden.

Wi-Fi-forbindelse

Drainbee sender kun på 2,4 GHz-båndet. Sørg for, at din router tilbyder et 2,4 GHz-netværk, og at signalet er stabilt, hvor enheden sidder.

Hvor ofte skal man spørge?

Hvert 30. til 60. sekund er rigeligt – i praksis ændrer niveauet sig sjældent hurtigere. Meget korte intervaller belaster enheden og netværket unødigt. Enkelte udfald ved svagt signal er normalt; Home Assistant viser så kortvarigt sensoren som utilgængelig.

Ofte stillede spørgsmål

Har Drainbee et lokalt API?
Ja. I hjemmenetværket svarer Drainbee på GET http://enhedens-ip/status med JSON som {"measurement":{"cm":37,"ageMs":3200}} – det aktuelle niveau i hele centimeter. Grænsefladen er skrivebeskyttet, kræver ingen login og kan ikke nås fra internettet.
Virker Drainbee med Home Assistant?
Ja, via Home Assistants RESTful-integration. Få linjer YAML gør niveauet til en sensor, som du kan bruge i dashboards, historik og automatiseringer. Der findes ingen særskilt Drainbee-integration – og den er heller ikke nødvendig.
Kræver det skyen?
Ikke til den lokale aflæsning: Home Assistant, ioBroker eller Node-RED henter værdien direkte fra enheden på netværket. Opsætning, app og alarmer kører derimod via Drainbee-skyen, så Drainbee har fortsat brug for Wi-Fi med internet, for at du kan blive alarmeret, når du er væk.
Virker Drainbee med HomeKit?
Ikke direkte: Drainbee understøtter hverken HomeKit, Matter, Bosch Smart Home eller FRITZ!Box indbygget. Home Assistant kan til gengæld sende entiteter videre til Apple Home via sin HomeKit-bro. Hvilke sensortyper der når frem, bestemmer HomeKit; en farbar vej er en binær sensor afledt af niveauet, for eksempel “niveau for højt”.
Kan jeg give Drainbee en fast IP-adresse?
Ja, i routeren. De fleste routere tilbyder en DHCP-reservation i indstillingerne for den enkelte netværksenhed. Så beholder Drainbee sin adresse efter en genstart, og din aflæsning bliver ved med at virke.

Har du ikke en Drainbee endnu?

Sonde, app og lokal aflæsning for 298 € én gang – uden abonnement.