Používáte-li firmware airRohr (https://github.com/opendata-stuttgart/airrohr-firmware-flasher), máte možnost odesílat data ven na API ve formátu JSON přes HTTP POST a TMEP umí tato data zpracovat. Firmware data posílá přes HTTP POST s v hlavičce definovaným „application/json“, validním JSONem v těle requestu. TMEP poté ze struktury bere a páruje všechny dvojice value_type a value pod uzlem sensordatavalues.
Neměříte ještě kvalitu ovzduší? Podívejte se výborný projekt https://www.senzorvzduchu.cz - mají skvěle zpracovaný návod jak na to, krok za krokem.
Právě „value_type“ následně můžete v nastavení čidla na TMEPu vyplnit do GUID (1-3) pro ukládání jejich hodnot do naší služby.
V konfiguraci pod „APIs“ zaškrtněte zasílání dat na custom API
:
Server: Vyplňte doménu pro zasílání hodnot, kterou naleznete v nastavení čidla na TMEPu.
Path: /
Port: 80
Na TMEPu následně můžete u čidla jako GUID (tedy měřenou hodnotu pro ukládání) použít libovolný parametr, který zařízení zasílá.
Níže naleznete příklad volání se senzorem ovzduší Sensirion SPS30. Libovolný value_type můžete použít do GUID, tedy v našem případě (viz příklad volání níže) můžete vyplnit:
SPS30_P0
SPS30_P2
SPS30_P4
SPS30_P1
SPS30_N05
SPS30_N1
SPS30_N25
SPS30_N4
SPS30_N10
SPS30_TS
BME280_temperature
BME280_pressure
BME280_humidity
samples
min_micro
max_micro
interval
signal
TMEP převede signal
automaticky na rssi
, aby byla vidět síla signálu na Wi-Fi.
V případě jiného čidla bude pojmenování hodnot rozdílné. Např. Nova SDS011 posílá dvě hodnoty pro kvalitu ovzduší a sice SDS_P1
a SDS_P2
.
Typické nastavení pro PM10, PM2.5 a teplotu:
V nastavení Základní údaje
u typu čidla zvolte nějaké dvou/tří hodnotové, pokud budete využívat více než jednu hodnotu (tedy např. teplota/vlhkost/tlak). Případně můžete přepsat názvy hodnot a jejich jednotek na záložce Zasílané hodnoty
, kde vyplňujete i právě GUID. Nezapomeňte pod Korekce hodnot
nastavit max. povolenou hodnotu pro uložení na např. 2000 ppm, ať hodnota není jen 100 (která je typicky dostatečná pro měření teploty).
Chcete ukládat a grafovat více než tři hodnoty? Pak je potřeba založit více čidel a hodnoty do nich přerozdělit přeposílačem hodnot, což je funkce kterou TMEP za tímto účelem disponuje. Je to lehce komplikovanější, ale funkční.
Hodnoty vám už chodí na nějaké čidlo a u něj potřebujete definovat, jak mají být přerozdělené. Založte rovnou nové čidlo, kam chcete ukládat další hodnoty. Pokud existuje u nějakého čidla přeposílač, tak je potřeba přeposílač založit nejen pro další čidlo a přeposílané hodnoty, ale i pro to stávající. Je to totiž buď a nebo - buď mi na doménu chodí měření, která mám na ní, nebo řeším přeposílače a pak je potřeba příchozí měření rozdělit do patřičných domén včetně té aktuální.
V našem případě si necháme na jednu doménu ukládat čistě měření částic a na druhou si budeme grafovat teplotu, vlhkost a tlak z připojeného čidla BME280.
Vložte nový přeposílač, který bude ukládat chodící hodnoty do stávajícího čidla:
test
(tam mi chodí hodnoty)moje aktuální doména
to, co jsem měl jako GUID nastaveno nyní nebo to co teprve chci ukládat, jedná se o až tři měřené parametry
Pokud nemáte, tak založte další čidlo a vložte další přeposílač:
test
(stále ta samá doména, kam chodí hodnoty)moje druhé čidlo
další až tři parametry, v našem případě z čidla BME280 (viz obrázek)
{ "esp8266id": "123456", "software_version": "NRZ-2020-133", "sensordatavalues": [ { "value_type": "SPS30_P0", "value": "49.56" }, { "value_type": "SPS30_P2", "value": "54.98" }, { "value_type": "SPS30_P4", "value": "57.12" }, { "value_type": "SPS30_P1", "value": "58.20" }, { "value_type": "SPS30_N05", "value": "337.65" }, { "value_type": "SPS30_N1", "value": "391.93" }, { "value_type": "SPS30_N25", "value": "395.14" }, { "value_type": "SPS30_N4", "value": "395.55" }, { "value_type": "SPS30_N10", "value": "395.65" }, { "value_type": "SPS30_TS", "value": "0.59" }, { "value_type": "BME280_temperature", "value": "7.03" }, { "value_type": "BME280_pressure", "value": "100267.53" }, { "value_type": "BME280_humidity", "value": "58.01" }, { "value_type": "samples", "value": "4898709" }, { "value_type": "min_micro", "value": "29" }, { "value_type": "max_micro", "value": "7016" }, { "value_type": "interval", "value": "145000" }, { "value_type": "signal", "value": "-76" } ] }