blog.vyoralek.cz

NETIO PowerCable MQTT + integrace HomeAssistant

Dnes se podíváme na domácího výrobce IoT – firmu NETIO – která chce být průkopníkem tohoto stále ještě nového oboru. Jaká je česká chytrá zásuvka a jak ji napojit na HomeAssistant – na to si odpovíme v článku.

NETIO PowerCable je WiFi elektrická zásuvka (můžeme rovnou říct i prodlužovačka), která nabízí možnost integrace za pomocí MQTT protokolu.

Kromě funkce vzdáleného zapnutí/vypnutí má podporu pro měření hned 7 veličin:

  1. Aktuální proud v ampérech [A]
  2. Aktuální výkon ve watech [W]
  3. Kumulovaná spotřeba ve watthodinách [Wh]
  4. TPF – true power factor – více o této hodnotě na webu výrobce
  5. Aktuální napětí ve voltech [V]
  6. Aktuální frekvenci napájecí sítě [Hz]
  7. Fáze [-180 – 180] ve stupních
Netio PowerCable MQTT
Netio PowerCable MQTT

Již při prvním pohledu je jasné, že se jedná o velmi odolné zařízení u kterého není problém použití v průmyslovém prostředí. Splňuje navíc stupeň krytí IP30.

Instalace

Postup instalace zásuvky Netio PowerCable je víceméně totožný s tím jak ho známe i například z firmware Tasmota.

Pojďme se podívat na jednotlivé kroky:

  1. Zařízení připojíme do elektrické sítě.
  2. Po chvíli bychom v seznamu WiFi sítí měli vidět něco jako PoweCable-AP-XX a na toto síť se rovnou připojíme.
  3. Vyskočí na nás přihlašovací obrazovka s konfigurací ve třech krocích:
    1. Nejprve vybereme WiFi síť do které chceme zásuvku připojit – je fajn, že máme již přednačtený seznam seřazený podle síly signálu a nemusíme tak nic psát – jen klikneme.
    2. V druhém kroku vyplníme heslo do zvolené WiFi, povolíme / zakážeme přiřazení IP adresy zásuvky pomocí DHCP a zařízení můžeme rovnou i pojmenovat.
    3. Poslední krok je již pouze sumář s informacemi o připojení a tak klikneme na Save & Connect

Žádné velké překvapení ani zádrhel by nás při instalaci neměl potkat – vše je jednoduché a intuitivní.

Drobnou vadou na kráse může být absence českého jazyka – vzhledem k tomu, že se jedná o českého výrobce je to trochu překvapení.

Konfigurace

Jakmile jsme hotoví s instalací – což se víceméně rovná konfiguraci WiFi připojení – můžeme pokračovat s konfigurací samotné zásuvky.

Aplikace NETIO Discover

Od výrobce je k dispozici aplikace NETIO Discover, která by nám měla s konfigurací pomoci. Aktuálně jsou k dispozici dvě verze – Windows a univerzální (java).

Já měl v plánu vyzkoušet univerzální – multiplatformní Java verzi, jelikož píšu tenhle článek z macOS Catalina, ale ouha aplikaci se mi nepodařilo spustit:

➜ ./NETIO-Discover-multiplatform.jar
zsh: exec format error: ./NETIO-Discover-multiplatform.jar

Nejsem Java programátor a tak netuším, zda nemám nainstalovanou nějakou špatnou verzi Javy, či nějaký problém v konfiguraci a nebo to souvisí s 64bitovým prostředím.

Aplikaci jsem spouštěl vůči následující verzi Javy:

java 11.0.1 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

Abych byl objektivnější zkusil jsem i Linux prostředí. Stáhnul jsem si poslední verzi Ubuntu 19.10 a nainstaloval do něj Javu. Bohužel výsledek byl téměř stejný:

jvyoralek@ubuntu:~$ ./NETIO-Discover-multiplatform.jar
-bash: ./NETIO-Discover-multiplatform.jar: cannot execute binary file: Exec format error

Nakonec jsem proto aplikaci úplně ignoroval a vrhnul se na druhou možnost konfigurace přes webové rozhraní, která je přeci jen mnohem univerzálnější.

Webové rozhraní NETIO

K přístupu na webové rozhraní budeme potřebovat IP adresu zásuvky. Tu jsme mohli vidět buď v posledním kroku instalace a nebo si ji zjistíme z DHCP serveru.

Já používám UniFi controller a tak bylo zjištění IP adresu otázkou chvilky:

Seznam zařízení a IP adres v UniFi controlleru
Seznam zařízení a IP adres v UniFi controlleru

Do prohlížeče zadáme IP adresu a vyskočí na nás přihlašovací obrazovka, kam zadáme jméno admin a heslo taktéž admin.

Přihlášení do webového rozhraní NETIO
Přihlášení do webového rozhraní NETIO

I webové rozhraní je bohužel pouze v angličtině, nicméně s tím si snad většina poradí.

Přihlašování / změna hesla

Používání přihlašování je vypadá to povinné a tak je vhodné si nejprve změnit výchozí heslo. To najedeme v menu Uživatelé (Users).

Webové rozhraní Netio - nastavení uživatele
Webové rozhraní Netio – nastavení uživatele

Firmware

Druhým krokem, který mě obvykle zajímá, je dostupnost aktualizace firmware. Informace o Firmware nejdeme v sekci Nastavení (Settings) / Firmware.

Webové rozhraní Netio - firmware
Webové rozhraní Netio – firmware

Bohužel ze seznamu nezjistíme zda je aktuální firmware aktuální či nikoliv. Co je však horší, že něco nehraje v aktuálnosti stránek se stažením firmware nebo číslováním verzí.

Když jsem se podíval na web NETIO je zde k dispozici poslední verze 2.1 z června 2019, kdežto v mém zařízení je aktuálně verze 2.3.7 z prosince 2019. Zřejmě tedy mám novější verzi, která ještě nebyla veřejně publikována?

Webové stránky Netio - Podpora - Firmware
Webové stránky Netio – Podpora – Firmware

Nastavení času

Z pro mě ne úplně jasného důvodu je v základní konfiguraci nastaveno manuální nastavení času. Já určitě preferuji získání času z NTP serveru, což je naštěstí hned druhá možnost a tak si ji nastavíme 🙂

Webové rozhraní Netio - nastavení času
Webové rozhraní Netio – nastavení času

Integrace MQTT

A nyní přichází na řadu něco opravdu zajímavého, co z této zásuvky dělá produkt o který bychom se měli zajímat, a to možnost integrace pomocí MQTT.

Sekci k nastavení MQTT najdeme v M2M API Protocols, kde je potřeba zatrhnout volbu Enable MQTT-flex.

Webové rozhraní Netio - MQTT
Webové rozhraní Netio – MQTT

Veškerá konfigurace je uložená ve formátu JSON, na což se můžeme dívat z dvou úhlů pohledu:

  1. pro neznalého uživatele to může být poněkud matoucí a uživatelsky značně nekomfortní – což je mínus
  2. pokud pro nás JSON není problém, pak máme možnost jednoduše vzít konfiguraci a aplikovat je i na další zásuvky – což můžeme brát jako pozitivní

Za mě bych zřejmě volil střední cestu pomocí YAML konfigurace – tak jak to známe například z ESPHome, která je uživatelsky lépe čitelná, ale je to jistě věc názoru.

Co si zaslouží pochválit je dokumentace k MQTT konfiguraci, i když jsem ne vždy pochopil význam položek. Například v sekci broker volba type, když má pouze jednu možnou hodnotu generic. Zřejmě je to příprava do budoucna, která je nyní ale mírně matoucí.

Nastavení brokeru

První sekce broker se věnuje nastavení MQTT serveru, které si upravíme dle vlastní konfigurace. Následující příklad je v případě zadání MQTT serveru pomocí adresy, bez SSL a se zapnutým přihlašováním:

"broker": {
    "url": "10.2.1.10",
    "protocol": "mqtt",
    "port": 1883,
    "ssl": false,
    "type": "generic",
    "username": "mqtt_user",
    "password": "mqtt_password",
    "keepalive":30
}

Oproti výchozímu nastavení tak bylo potřeba změnit pouze tři hodnoty: url, username a password.

Nastavení publikovaných MQTT zpráv – PUBLISH

V této sekci jsem si zprávy poněkud překopal do stavu, který je více podobný struktuře, kterou používám pro ostatní zařízení, nicméně je to čistě volitelná možnost.

První a základní zprávou je publikování stavu zapnutí/vypnutí zásuvky:

 "publish": [{
     "topic": "netio_${DEVICE_NAME}/stat/POWER",
     "qos": 0,
     "retain": true,
     "payload": "${OUTPUTS/1/STATE}",
     "events":[
         {
            "type":"change",
            "source":"OUTPUTS/1/STATE"
         }
     ]
 }]

Kromě stavu zapnutí zásuvka obsahuje spousta zajímavých senzorových údajů, které si můžeme pomocí MQTT taky zpřístupnit.

Webové rozhraní Netio
Webové rozhraní Netio

Například pokud nás zajímavá aktuální spotřeba připojeného zařízení pak přidáme do konfigurace sekce publish tuto část:

{
    "topic": "netio_${DEVICE_NAME}/tele/SENSOR/Energy",
    "qos": 0,
    "retain": false,
    "payload": "${OUTPUTS/1/ENERGY}",
    "events": [{
        "type": "timer",
        "period": 900
    }, {
        "type": "delta",
        "source": "OUTPUTS/1/ENERGY",
        "delta": 1
    }]
}

Jak si můžeme všimnout v sekci events máme dva záznamy. To nám umožňuje definovat podmínky, kdy má být MQTT zpráva zveřejněna.

V tomto konkrétním příkladě tak bude aktuální spotřeba zaslána pokud uplynulo 15 min a nebo změna byla větší než 1Wh.

Na kompletní konfiguraci pro tuto zásuvku se můžete podívat na mém GitHubu.

Nastavení odebíraných MQTT zpráv – SUBSCRIBE

Druhou skupinou zpráv jsou zprávy přijímané zásuvkou a ty si změníme také:

    "subscribe": [{
        "topic": "netio_${DEVICE_NAME}/cmnd/POWER",
        "qos": 0,
        "target": "OUTPUTS/1/ACTION",
        "action": "${payload}"
    }],

Při přihlášení do MQTT serveru bychom pak měli vidět hned několik typů zpráv pro naší zásuvku – aktuální stav zapnutí/vypnutí, zprávu pro zapnutí/vypnutí a aktuální data z jednotlivých sensorů.

Integrace HomeAssistant

V přechozích krocích jsme si zásuvku postupně připravili na to abychom ji mohli přidat jako entity do HomeAssistanta a to za pomocí MQTT integrace.

Nejprve si přidáme interaktivní entitu typu switch, která nám bude ukazovat aktuální stav zapnutí / vypnutí zásuvky a zároveň budeme moci pomocí ní i zásuvku vypínat / zapínat.

switch:
  - platform: mqtt
    name: "Netio PowerCable"
    state_topic: "stat/POWER"
    command_topic: "cmnd/POWER"
    payload_on: 1
    payload_off: 0
    qos: 0
    retain: true

?Více informací o nastavení MQTT Switch komponenty pro HomeAssistant si můžete přečíst v dokumentaci.

Další již volitelné entity dle naší potřeby jsou jednotlivá sensorová data, kterých máme celkem sedm.

Prvním krokem ke každému jednotlivé měřené veličině je přidání entity typu sensor:

sensor:
  - platform: mqtt
    name: "Netio PowerCable - proud"
    state_topic: "netio_PowerCable-9C/tele/SENSOR/Current"
    unit_of_measurement: "mA"

?Více informaci k nastavení MQTT Sensor komponenty pro HomeAssistant si můžete přečíst v dokumentaci.

Využíváme tak předpřipravených MQTT zpráv se sensorovými daty, ke kterým se HomeAssistant přihlásí k odběru. Kompletní konfiguraci opět najdete na mám GitHubu.

Jakmile budeme mít definovány všechny entity zbývá je přidat do uživatelského rozhraní. To můžeme udělat například pomocí Lovelace šablon. Pro tento případ jsem připravil novou záložku obsahující všechny možné entity zásuvky v jednom boxu.

---
id: netio
title: Netio
cards:
  - type: entities
    title: Netio zásuvka
    entities:
      - entity: switch.netio_powercable
      - entity: sensor.netio_powercable_faktor
      - entity: sensor.netio_powercable_frekvence
      - entity: sensor.netio_powercable_napeti
      - entity: sensor.netio_powercable_proud
      - entity: sensor.netio_powercable_spotreba     
      - entity: sensor.netio_powercable_vykon     
    show_header_toggle: false

Po restartu HomeAssistenta máme všechny údaje ze zásuvky přístupné a můžeme si s nimi už začít hrát dle potřeby.

Hodnocení

Je obdivuhodné, že se česká firma pustila do tohoto zatím stále obtížného oboru, kde dominují velcí hráči a mnoho čínských firem.

Z pohledu hardwaru je produkt velice vydařený zejména pokud potřebujeme odolný produkt, který opravdu něco vydrží. Zároveň však jak je z mého článku asi patrné softwarová stránka má stále ještě prostor ke zlepšení. To však není vůbec špatný výchozí stav, jelikož software jde zpravidla aktualizovat bez nutnosti výměny hardware.

Zádrhelem může být i cena, která je zejména pro domácí použití nastavena poměrně vysoko – cca. 3tis Kč. Na druhou stranu získáte kvalitní produkt s plnou zárukou a splňující všechny české normy.

? Pokud vás produkt zaujal mám pro vás 20% slevový kupón s platností 1 měsíce od vydání tohoto článku (do 29.2.2020).
Stačí při objednávce zadat kód: 20HomeAssistant

Doporučuji se určitě podívat na stránky výrobce. Děkuji firmě Netio za zapůjčení produktu a budoucnu se rád podělím o zkušenosti z nějakého dalšího produktu zapadající do konceptu domácí automatizace.

2 comments

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Moc pěkná zásuvka, ale pro mě, jakožto obyčejného kutila co si chce udělat chytrou domácnost, je to příliš drahé. Když pomyslím co by za to bylo Sonoffů ? Ale v průmyslu vidím potenciál zcela jasně, takže dle mě své místo na trhu NETIO určitě má ? Díky za super recenzi.

    • Díky za komentář a názor. Já to mám víceméně velmi podobně. Je to zajímavý pohled jak se dnes a v ČR produkty dají dělat a snažil jsem se o určitou zpětnou vazbu z pohledu nás „kutilů“. Určitě jim držím palce! Brzy vydám recenzi na podobný a přesto úplně odlišný produkt z opačného spektra 🙂