Siirry sisältöön
Drainbee
Osta
Älykoti · Paikallinen API

Yhdistä Drainbee Home Assistantiin, ioBrokeriin ja Node-REDiin

Drainbee antaa nykyisen pinnankorkeuden JSONina kotiverkossa. Näin tuot arvon anturiksi älykotiisi – muutamalla rivillä asetuksia, ilman kiertotietä pilven kautta.

Katso API-dokumentaatio → Laiteohjelmistosta 1.2.5 alkaen
Kysely
GET /status
Vastaus
pinta senttimetreinä
Käyttö
vain kotiverkossa

Mitä saat

Drainbee mittaa pumppukaivon vedenpintaa hydrostaattisella upotettavalla anturilla (0–1 m, ±1 cm). Nykyisen pinnankorkeuden voit hakea suoraan kotiverkossa ja käyttää sitä älykodissasi:

  • Pinnankorkeus anturina Home Assistantissa, ioBrokerissa tai Node-REDissä – tasasenttimetreinä.
  • Omat näkymät ja automaatiot, esimerkiksi viesti tietyn rajan ylittyessä tai viikon kuvaaja.
  • Yhdistäminen muihin antureihin, kuten sademääriin tai pumpun kulutusta mittaavaan älypistorasiaan.

Hälytykset pysyvät Drainbee-sovelluksessa: raja-arvo, sähkökatko ja Wi-Fi-yhteyden katkeaminen. Paikallinen kysely täydentää sovellusta, ei korvaa sitä.

Edellytykset

  • Drainbee on käyttöönotettu ja yhdistetty Wi-Fi-verkkoosi. Jos ei vielä ole: asennusopas vie sinut läpi 15 minuutissa.
  • Laitteen IP-osoite. Löydät sen Drainbee-sovelluksesta laitetiedoista. Myös reitittimesi näyttää sen liitettyjen laitteiden listassa.
  • Älykotijärjestelmäsi samassa verkossa. Home Assistantin, ioBrokerin tai Node-REDin on tavoitettava Drainbee suoraan.

Vinkki: anna Drainbeelle kiinteä IP-osoite reitittimessä (DHCP-varaus). Muuten osoite voi vaihtua uudelleenkäynnistyksen jälkeen eikä kysely enää osu kohteeseen.

Testaa yhteys

Avaa samassa verkossa selaimeen http://laitteen-ip/status, esimerkiksi http://192.168.1.50/status. Päätteessä onnistuu curlilla:

Pääte
curl http://192.168.1.50/status

Drainbee vastaa pienellä JSON-objektilla:

Vastaus
{
  "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
  }
}

Yksi päätepiste ja yksi vedenpinnan kenttä: measurement.cm. Arvo voi olla null.

Kyselyväli: 30–60 s riittää. Pyynnöt eivät nopeuta mittausta. Tunnista vanhentuneet arvot measurement.ageMs-kentän avulla.

Home Assistant

Home Assistantissa on kaikki tarvittava RESTful-integraatiossa. Lisää tämä lohko tiedostoon configuration.yaml, vaihda IP-osoite ja käynnistä Home Assistant uudelleen:

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

Sen jälkeen käytössäsi on entiteetti sensor.sump_level. scan_interval: 30 kysyy 30 sekunnin välein ja state_class: measurement tallentaa pitkän aikavälin tilastot. Historiassa näet pumppausjaksot sahalaitana: pinta nousee hitaasti ja laskee jyrkästi heti kun pumppu käy. Jos sinulla on jo rest:-osio, lisää lohko siihen uutena listakohtana.

Ilmoitus korkeasta pinnasta

Tämä automaatio ilmoittaa, kun pinta pysyy yli 60 cm:ssä kahden minuutin ajan. Luo Home Assistantissa uusi automaatio, vaihda YAML-näkymään ja liitä se. Säädä raja oman kaivosi mukaan.

Automaatio · 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 menee oletuspalveluusi, yleensä Home Assistant -sovellukseen. Automaatio toimii vain niin kauan kuin Home Assistant on käynnissä ja tavoittaa Drainbeen – pidä siksi Drainbee-sovelluksen hälytykset päällä.

Ideoita jatkoon

  • Template- tai derivative-anturi, joka näyttää kuinka nopeasti pinta nousee.
  • Laske pumppausjaksot vuorokaudessa – jokainen jakso näkyy jyrkkänä pudotuksena.
  • Pinnankorkeus ja sademäärä samassa kuvaajassa, jotta näet kuinka voimakkaasti kaivo reagoi sateeseen.

Node-RED

Node-REDissä pinnan hakemiseen riittää kolme solmua:

Aseta HTTP Request -solmun osoitteeksi http://192.168.1.50/status ja vastaukseksi jäsennetty JSON-objekti. Käynnistä pyyntö Inject-solmulla 60 sekunnin välein ja lisää sen jälkeen tämä Function-solmu.

Yksi päätepiste ja yksi vedenpinnan kenttä: measurement.cm. Arvo voi olla null.

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

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

Sieltä arvo jatkaa minne tarvitset: näkymään (mittari tai kuvaaja), mqtt out -solmun kautta brokeriin tai tietokantaan. Jos Drainbee ei vastaa, http request -solmu tuottaa virheen, jonka voit napata catch-solmulla.

ioBroker

Nopeinta on käyttää JavaScript-adapteria, jossa httpGet on käytettävissä versiosta 7.9 alkaen. Luo uusi skripti, vaihda IP-osoite ja käynnistä se:

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");
        }
    });
});

Skripti luo tietopisteen 0_userdata.0.drainbee.level ja kirjoittaa siihen nykyisen pinnankorkeuden 30 sekunnin välein. Sieltä voit näyttää sen VIS-näkymässä, käyttää sitä Blockly-säännöissä tai tallentaa History-adapterilla. Ilman JavaScript-adapteria saman osoitteen voi lukea säännöllisesti Parser-adapterilla.

Tietoturva

Paikallinen API on tarkoitettu luotettuun kotiverkkoosi. Siinä ei ole tunnistautumista eikä HTTPS-salausta. Kuka tahansa, joka saa yhteyden Drainbeehen verkossa, voi lukea tilan, mutta API:n kautta ei voi muuttaa mitään.

Älä tee portinohjausta portista 80 Drainbeehen reitittimessäsi. Käytä etäyhteyteen Drainbee-sovellusta tai VPN-yhteyttä kotiverkkoosi.

Vianetsintä

Kysely ei vastaa

  • IP-osoite on vaihtunut: tarkista nykyinen osoite sovelluksesta tai reitittimestä ja tee DHCP-varaus.
  • Eri verkko: vierasverkko, erilliset VLANit tai tietokoneella päällä oleva VPN estävät yhteyden. Molempien laitteiden on tavoitettava toisensa samassa verkossa.
  • Drainbee on offline: jos sovellus ei näytä ajantasaista pintaa, tarkista ensin laitteen virta ja Wi-Fi.

Wi-Fi-yhteys

Drainbee toimii vain 2,4 GHz:n taajuudella. Varmista, että reitittimessäsi on 2,4 GHz:n verkko ja että signaali on vakaa asennuspaikalla.

Kuinka usein kysyä?

30–60 sekunnin väli riittää hyvin – käytännössä pinta muuttuu harvoin nopeammin. Hyvin lyhyet välit kuormittavat laitetta ja verkkoa turhaan. Yksittäiset katkokset heikolla signaalilla ovat normaaleja; Home Assistant näyttää anturin silloin hetken ei-saatavilla olevana.

Usein kysytyt kysymykset

Onko Drainbeessä paikallinen API?
Kyllä. Kotiverkossa Drainbee vastaa kyselyyn GET http://laitteen-ip/status JSONilla, esimerkiksi {"measurement":{"cm":37,"ageMs":3200}} – nykyinen pinnankorkeus tasasenttimetreinä. Rajapinta on vain luettava, se ei vaadi kirjautumista eikä siihen pääse internetistä.
Toimiiko Drainbee Home Assistantin kanssa?
Kyllä, Home Assistantin RESTful-integraation kautta. Muutama rivi YAMLia tekee pinnankorkeudesta anturin, jota voit käyttää näkymissä, historiassa ja automaatioissa. Omaa Drainbee-integraatiota ei ole – eikä sitä tarvita.
Tarvitaanko tähän pilveä?
Paikalliseen kyselyyn ei: Home Assistant, ioBroker tai Node-RED hakee arvon suoraan laitteelta kotiverkossa. Käyttöönotto, sovellus ja hälytykset kulkevat sen sijaan Drainbee-pilven kautta, joten Drainbee tarvitsee edelleen internetiin yhdistetyn Wi-Fi-verkon, jotta saat hälytykset myös matkalla.
Toimiiko Drainbee HomeKitin kanssa?
Ei suoraan: Drainbee ei tue natiivisti HomeKitiä, Matteria, Bosch Smart Homea eikä FRITZ!Boxia. Home Assistant voi kuitenkin välittää entiteettejä Apple Homeen HomeKit-sillan kautta. Mitkä anturityypit siellä näkyvät, määräytyy HomeKitin mukaan; toimiva tapa on pinnasta johdettu binäärianturi, esimerkiksi ”pinta liian korkea”.
Voinko antaa Drainbeelle kiinteän IP-osoitteen?
Kyllä, reitittimessä. Useimmat reitittimet tarjoavat DHCP-varauksen kyseisen verkkolaitteen asetuksissa. Silloin Drainbee säilyttää osoitteensa uudelleenkäynnistyksen jälkeenkin ja kyselysi pysyy voimassa.

Eikö sinulla ole vielä Drainbeetä?

Anturi, sovellus ja paikallinen kysely 298 € kertamaksulla – ilman tilausta.