IoT grafikon felhőben

Van nekem egy szoba-automatizálási projektem (https://github.com/gaborauth/RoomAutomation), ami ugye nyílt forrású meg ilyesmi, tud néhány dolgot, mér ezt-azt és a mérés eredményét elküldi a saját felhőmbe:

A kérdésem az lenne, hogy van-e érdeklődés szerintetek egy olyan "felhős" megoldásra, ahova egyszerűen be lehet küldeni adatokat, amelyek ott megőrződnek és grafikonon ábrázolódnak? Tehát (egyelőre) semmi komplexitás, csak annyi, hogy beküldött mérési eredményeket tárol és azokból rajzol grafikont?

Update

Na, kiraktam publikusan elérhetően, hogy miről is van szó nagyjából: https://iothub.live/

Elvileg működik a lehető legegyszerűbb workflow:
- signup -> kapsz egy azonosítót és egy jelszót
- login -> be tudsz lépni
- nodes -> az IoT mérőeszközök listája
- field -> egy tetszőleges mérés
-> measurement -> a kiválasztott mérés grafikonja

A grafikonokon 5 percenként aggregálva jelennek meg az adatok.

Hozzászólások

Ha SaaS-ban gondolkodsz, akkor van ilyen. Ha otthoni, self-hosted megoldást értünk felhő alatt, olyat nem ismerek (de ettől még létezhet).

Szerintem ha rendkívüli egyszerűség a cél, akkor jó ötlet. Valami faék API és kész. Minél kevesebb kapcsoló meg paraméter. Találja ki a szerver oldal hogyan jó megjeleníteni, ne kelljen az adat küldőnek ezzel foglalkozni.

Adat bányász technológiával és tanuló algoritmusokkal is megtoldhatod.

Amúgy nem foglalkoztam a kérdéssel, tehát nem tudom hogy van-e hasonló.

Amit jelenleg használok, az egyszerű, mint a faék: REST interfészen megy be a mért érték és ebből rajzolok grafikont vagy grafikonokat. És ennyi... :)

Azt nem tudom, hogy van-e igény ilyen faék egyszerű megoldásra, mert akkor beleteszek egy kis munkát és kinyitom, hogy akárki használhassa.

az https://xkcd.com/927/ .

van sok jo monitoring rendszer (nagios, icinga, zabbix, grafana, stbstb), valamelyik mar most is fut sokaknal. na azokhoz csinalni valami konnyu kapcsolodasi lehetoseget. pl zabbix agent/trapperkent nyomna be az adatot. ha van valami rele/vezerlo cucc, akkor azt tudna iranyitani (magas a paratartalom -> nyissa ki a szeloztetot)

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

marmint hogy a zabbix ami monitorozza a cpu homersekletet nemvalo arra hogy monitorozza a szobam homersekletet? :o

lehet en allok furcsan, de ahhoz hogy figyeljem a szoba/garazs/utca homerleklet adatait, nem akarok felrakni megegy rendszert, hanem a meglevo infraba akarom illeszteni. home automatizalasra meg van millio-es-egy rendszer, itt a hupos is volt egy arc aki egesz jot rakott ossze.

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

"marmint hogy a zabbix ami monitorozza a cpu homersekletet nemvalo arra hogy monitorozza a szobam homersekletet? :o"

Így van. Teljesen más use-case, más szempontokkal. Van valamennyi átfedés közöttük, de az általában kevés.

"lehet en allok furcsan, de ahhoz hogy figyeljem a szoba/garazs/utca homerleklet adatait, nem akarok felrakni megegy rendszert, hanem a meglevo infraba akarom illeszteni."

Meglepő dolog, de az IoT próbálgató embereknek általában nincs meglévő infrastruktúrája és nem is akarnak olyat. Szóval egy apró kisebbség vagy azzal, hogy te ezt így oldanád meg.

Pár hónapja egy időre megszakadt otthon az internet. Gondoltam, ez egy jó alkalom a Home Assistant pátyolgatására. Egy darab grafikont nem tudott kirajzolni. Ugyan nem nyomoztam a dolog után, de arra tippelek, hogy az is felhősen oldja meg. Azóta időnként arra gondolok, hogy kell-e nekem ez a Home Assistant.

most csinalom a weboldalt, meg a csomagokat egy hasonlo projekthez :-) Mondjuk en nem iot-ben utazom, hanem kifejezetten a piler-hez dobtam ossze egy dashboard-ot: https://tick01.mailpiler.com/dashboard/snapshot/x87j4NnGhHp6yND14DUQVTw…

Btw. ez itt a reklam helye: ~3 het mulva a konferencian arrol is beszelek majd, hogy raktam ossze :-)

--
'Amikor az embernek rossz szerencséje van, az rossz szerencse' - Best of Leekens, a foci feltamasztoja (muhahaha)

kosz, bar epp azon gondolkozom, hogy atteszem wordpress ala, csak kene valami utos grafika hozza.

Btw. archivalas szolgaltatasban (ha erre gondoltal) egyelore nem gondolkozom, mert egyreszt en a vendor vagyok, es a programot arulom, masreszt ehhez azert nagy infrastruktura kell (bar elindulni kicsiben is lehet).

(Egy kis insider info zarojelben: van egy arc (kulfoldi), akivel ugy volt, hogy csinalunk valami joint venture-t, aminek kereteben archivalas szolgaltatast nyujtunk. O a hw-t/infrastrukturat adja bele, en meg a szoftvert, aztan felezunk. Viszont az enterprise verzio nem open source, es a jelek szerint besertodott, hogy nem kapott hozzaferest a forrasahoz, igy semmi nem lett belole)

--
'Amikor az embernek rossz szerencséje van, az rossz szerencse' - Best of Leekens, a foci feltamasztoja (muhahaha)

Paktálj le egy VPS szolgáltatóval viszonteladói kedvezményhez (vagy még az sem kell) megírva egy jó ÁSZF-et meg adatvédelmi nyilatkozatot ennek fényében, és ügyfelenként foglalj a cégnek egy VPS-t és azt annyi kapacitással veszi meg amennyivel akarja.

Így nem a te gondod az infrastruktúra meg redundancia. Illetve a kód is nálad marad.

lehet igy is, de lehet egyszerubb azt mondani az ugyfelnek, hogy vegyen kedvenc random felhoszolgaltatojatol egy vps-t / vagy bereljen vasat, en meg leveszek az sla-jukbol 1 db 9-est (vagy meg 1-et, ha annyira jok).

--
'Amikor az embernek rossz szerencséje van, az rossz szerencse' - Best of Leekens, a foci feltamasztoja (muhahaha)

En csinaltam egy pont ilyet:) Igaz nem homerseklet, hanem watchdog es ip cimre (lan discovery, url redirect, ilyesmi).

De az api kb. ugyanilyen rest api.

Par 5let:
- legyen eldobhato id amire postolhat. Mar eleve kelloen random, szoval nem kell "regisztralni". Ami nalad egy random id + jelszo + node id.
Ezt barki elerheti, aki tudja az id-t.
- legyen olyan account, ahol tobb node-ot (id-ket) lehet egy csoportba fogni, es elnevezni. Baratno lakasa (5 sensor), Ausztriai baratno lakasa (6 sensor). ilyesmi
- ha egy id-t levedtel jelszoval, akkor arra ne lehessen postolni (auth error). Ha veletlenul ugyanarra az cimre postolgatnanak a kliensek. (ugye akkor az api ugy modosulna, hogy a node id lenne random)

- nem tudom, hogy barmilyen key-value part lehet-e postolni

Kicsit pilotavizsgas, a login-nal nem enged belepni.
Szerintem tul hosszu az id. Marmint a kotojelek nem kellenenek bele. Rossz masolgatni.

Lehet a post nem sikerult, es azert nem enged belepni.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

A regisztráció egy random UUID és egy random jelszó és bárki elérheti, ha tudja ezt az UUID-t (és amíg nincs private flag), például: https://iothub.live/nodes/4ca6ff41-4408-11e8-94bd-3dd310e71935

Össze lehet fogni több node-ot, van combined nézet, csak nincs még hozzá UI: https://iothub.live/combined/4ca6ff41-4408-11e8-94bd-3dd310e71935

Csak jelszavas ID-re lehet adatot beküldeni.

"Kicsit pilotavizsgas, a login-nal nem enged belepni. Szerintem tul hosszu az id. Marmint a kotojelek nem kellenenek bele. Rossz masolgatni."

Jelenleg épp reszeltem, de most elvileg kell menjen. :)

Nyilván nem minden esetben probléma ha pörgeti a kliens oldalt egy lib, én személy szerint szeretek erre figyelni, mert csak összeadódik a folyamatos használat közben az erőforrás és számítani fog hogy mennyi idő alatt szívja le az aksit mobilon vagy notin.

Direkt van az hogy látszódik hogy lassan rajzolja ki? Ha direkt animáció, akkor ok.

Amúgy a betöltés relatíve sok idő, olyan 5-6 másodperc mire minden betölt és kirajzolódik. Ez szerintem pörgeti a kliens oldalt és mobilon szerintem főleg számít, mert ott a CPU még gyengébb. Lásd a bal oldali kimenetet, kb. a második bejegyzéstől tölt a cuccod, és látszik hogy addig megy amíg a terhelés 0-1 közötti nem lesz, ezt megelőzően a te kódod dolgozik. És ez 4 mag levetítve a 100%-ra vagyis 4-gyel felszorozhatjuk és akkor látjuk hogy 1 magon kb mennyit eszik.

http://log69.com/temp/s1.png

Par metrikat huzok be egy prometheus-sal esp-krol (homerseklet, COx szintek), az elegge egyszeru tortenet. Grafana-t meg nem kell bemutatnom, mint vizualis output-ot.

(Csak gondolatebresztokent mondom, mert nem ertem ezeket a bonyolult api torekveseket. :D (Latom, hogy kicsit mas a cel, nekem meg minden kalapacs.))

Mondom, ertem. Csak azt nem, hogy miert kell az api.

Az esp-im szolgaltatnak egy /metrics-et http-n, amibe belerakjak ezt:

temperature 22
co1 4e-3
co2 4e-3

Oszt ennyi. :)

Prometheus meg pullozza ezeket korbe-korbe, tarol, grafikont is rajzol - de grafikonban a grafana sokkal-sokkal jobb.

Szoval az api reszt tenyleg nem vagom... :( Nem esik le a 20filler. (Ugy ertem ubidots, freeboard, adafruit stb. mellett.)

"Az esp-im szolgaltatnak egy /metrics-et http-n, amibe belerakjak ezt:"

Ez egészen addig jó, amíg mondjuk nem akkuról mennek hónapokat és az idejük nagy részében mélyen alszanak, így nem igazán tudsz semmit lekérdezni róluk, így csak push-t tudnak.

"Prometheus meg pullozza ezeket korbe-korbe, tarol, grafikont is rajzol - de grafikonban a grafana sokkal-sokkal jobb."

Ehhez neked kell egy Prometheus, kell alá egy hardver és kell valami, ahol tárolod, az eltárolt dolgokat mented és aztán kell valami, mivel rajzolsz. Értem, hogy neked ez mind megvan, nekem is megvan, de nagyon sok IoT felhasználónak ennek töredéke sincs meg.

"Sejtettem en, hogy egy masik iranyba mozgo lovon ulok. Valoban fix tapjuk van az esp-knek."

Úgy könnyű... :)

"Mondjuk kicsit tartok az ilyenfele IoT felhasznaloktol, akik nem tudnak egy leharcolt netbooknyi infrat a projekt moge tenni..."

Miért kellene értenie mindenkinek egy komplett rendszergazdasághoz? Szerintem neked is bőven előbb volt üzemeltetési tapasztalatod, mint IoT és ezért gondolod, hogy mindenkinek van, aki megrendel egy ESP8266-ot és feltesz rá egy példaprogramot.

"...Szerintem neked is bőven előbb volt üzemeltetési tapasztalatod, mint IoT..."

Nabazzeg, micsoda kormonfont leoregezes..! :DDD

Igazabol az motoszkal a fejemben, hogy egy ESP*-ra egy peldaprogram letoltese szvsz pilotavizsgasabb tortenet, mint egy random IoT szerver vm letoltese akarhonnan.

(Ha meg nincs ilyen vm, akkor surgosen csinalni kell. vbox vmware docker verziot ;) )

Javasolnám hogy megvizsgálás után ha nincs adott random UUID-éknek nagy szerepe biztonságilag, akkor generálj egyszerűbbet, mert kevésbé lesz fárasztó befogadni az oldalon megjelenő információt mikor ránéz az ember - akár csak számokkal, azok is ha nem kell sok, akkor rövidek stb. - illetve ha nincs szüksége rá a user-nek, akkor ne is jelenjen meg.

Magyarul dobj ki mindent (és mindent) a felületről ami nem kell a user-nek, vagy kell de csak 100-ból egyszer.

Csak javaslat.

Ahja, ezen lassan változtatni fogok, csak egyelőre így látom, hogy jól működik-e... :)

Nyilván lesz majd szerkesztés, meg majd javul az UI/UX is, ahogy van időm, illetve ahogy látom, hogy van értelme, mert mondjuk használják... :)

Egyszerűsítettem a beküldést is, mert ez volt:
http://iothub.live/rest/measurement/create/18738750-493c-11e8-81d7-31e8…

És most már ennyi:
https://api.iothub.live/measurement/create/gy8rYTk1GxtKoLAwAM0R5w/tempe…

Szóval persze, fog evolválódni a dolog, az utóbbi egy évben is sokat javult, de magamnak csiszolgattam, most már majd jobban oda kell figyelnem... :)

kis-nagybetut is kukazhatnad;)

Egyebkent nalam ugy van, hogy random es nem kell jelszo, vagy te valasztasz id-t, es akkor kell jelszo, mert kvazi lefoglaltad azt a namespace-t.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

"van-e érdeklődés szerintetek egy olyan "felhős" megoldásra, ahova egyszerűen be lehet küldeni adatokat, amelyek ott megőrződnek és grafikonon ábrázolódnak?"
Ezirányú igényeimet eddig kielégítette a ThingSpeak.

Tudom, ismerem... :)

Három bajom van vele:
1, mocskosul drága lesz nagyon hamar: nekem van 20 eszközöm, amelyek percenként küldenek adatokat, összesen 54 metrikát, ez naponta ~ 77760 mérés, ez évente 600 euró lenne, ~15 ezer forint havonta. 5 metrika lenne még ingyenes.

2, a grafikonjai eléggé "sajátosak": ilyesmiről beszélünk, ugye (szerintem ez nagyon gyér): https://thingspeak.com/channels/38675

3, nem is erre van igazából kihegyezve, hanem inkább az elemzésre, én csak ábrázolni szeretném az adatokat, online és real time, ahhoz túl sokat tud a ThingSpeak.

Azure IoT Hub B1 (napi 400.000 message)
PowerBI Free

Ez így havi ~8 euró.

-- a Microsoftnál dolgozom

> Ágyúval verébre...

Talán igen, talán nem. Szerintem amíg nagyságrendileg annyiba kerül, mint egy random filléres VPS, addig nem vészes.

> mutatnál például grafikonrajzolást?

Erre van a free-tier PowerBI, vagy tetszőleges alternatív megoldás.
Errefelé lehet példákat találni: https://powerbi.microsoft.com/en-us/features/

"Talán igen, talán nem. Szerintem amíg nagyságrendileg annyiba kerül, mint egy random filléres VPS, addig nem vészes."

Nem arról van szó, hogy vészes-e, hanem arról, hogy pilótavizsgás-e, illetve arról, hogy amíg eljutok egy grafikonig, addig mit kell tennem.

"Erre van a free-tier PowerBI, vagy tetszőleges alternatív megoldás."

Ja, csak ez teljesen másra való. Én ebben azt látom, hogy nem az IoT oldalról közelítik meg a problémát, hanem van egy nagyvállalati eszközkészletük és azt próbálják meg "eladni" az IoT felé is.

"Na igen, ha real-time kell (ti. nyitva van a dashboard, és látod ahogy változik), azt manuálisan összerakni is nehezebb, mint az épp aktuális snapshotot kirajzolni egy grafikonra."

És persze nem is nagyon tudom kitenni publikusan elérhetően. Meg ilyesmi.

"Nem jobban, mint sajátot építeni. Mindkettőnek van előnye és hátránya."

Itt most pont nem saját építéséről van szó.

"A PowerBI csak egy frontend, mindegy neki, hogy IoT szenzor adja az infót vagy egy SharePoint formot töltöget valaki."

Erre írtam, hogy én ebben azt látom, hogy nem az IoT oldalról közelítik meg a problémát, hanem van egy nagyvállalati eszközkészletük és azt próbálják meg "eladni" az IoT felé is.

szerk:

> Mert egyelőre ezt találtam: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-live-data-visual…

Na igen, ha real-time kell (ti. nyitva van a dashboard, és látod ahogy változik), azt manuálisan összerakni is nehezebb, mint az épp aktuális snapshotot kirajzolni egy grafikonra.

Fejlemények az utóbbi fél évből... :)

Váltottam nevet és logót... lehet a dologgal vitázni, de egyelőre így marad.

Lett Android alkalmazás: https://play.google.com/store/apps/details?id=live.iotguru

Lett új weboldal: https://iotguru.live

Lett MQTT támogatás: https://github.com/IoTGuruLive/mqtt_example

Lett push notification: https://github.com/IoTGuruLive/free_text_push_example

Javítottam egy csomó apró hibát, illetve belekerült egy csomó apró újítás. Van még pár dolog, ami csak privátban érhető el, de ezeket is nyitom kifelé, ahogy átnéztem, illetve megkapta az Android támogatást és a weboldal a facelift-et, ilyenek például az OTA firmware frissítés, az offline alert, a battery alert, a range alert.

Akit érdekel, lehet játszani vele. Aki korábban regisztrált és nem használta, annak valószínűleg újra kell regisztrálnia, mert 30 nap az ingyenes adatmegőrzési idő és ha minden tárolt adata kipörög, akkor törlődik az account is.

--
https://iotguru.live

Na, volt egy kis facelift: https://iotguru.live/

Lett MQTT: https://iotguru.live/tutorials/mqtt
Meg minden egyéb Tutorial: https://iotguru.live/tutorials

Arduino library: https://www.arduinolibraries.info/libraries/the-io-t-guru-integration
Néhány egyéb Arduino példa: https://github.com/IoTGuruLive/

Friss feature: OTA frissítés, firmware store. :)

Az Android alkalmazással lehet készíteni saját dashboard-ot, grafikonokkal, egyebekkel.