Evo nastavljamo dalje s sitnicama oko akvarija pa da napisem i jedan epic fail sto sam popusio

Dakle glavni akvarijski computer mi je Profilux 2 PLUS (stari model) i za bilo sto raditi na njemu treba se spojiti s serijskim kabelom na njega, i onda s klasicnom windows aplikacijom se zakacimo na njega i konfiguriramo ga i ocitavamo vrijednosti. Memorije ima nesto i sam biras koliko ce se koristiti. Tipa ima 600 blokova free i sada ako imas recimo temperaturnu i pH sondu to je 2 bloka po intervalu, i sad mozes staviti da ti svako minutu uzima vrijednos i onda ce ti za 5 sati napuniti memoriju (i onda nastavlja overwrite starijih) ili ces staviti svako sat vremena i onda ce ti trajati 10-15 dana, ali nece biti tako precizno.
Iz samog programa se mogu dobiti neki grafovi vrijednosti tipa ovako nesto :

Sto generalno je ok ALI, nemogu imati dulji period ili se trebam logirati svako tjedan dva da snimim grafove (podrzava export podataka u CSV) i pobrisem memoriju i sl. I sad kombinirajmo to s spajanjem na profilux s serijskim kabelom na laptop, pain in the ass. I sad najdem ja da ima LAN (WLAN je smjesno skupa, a nije mi problem dovuci mrezu do tanka) kartica, i onda to sve radi se iz remotea preko mreze. Gledam slike ima web sucelje, memorija neogranicena, snima podatke externo i sl. Divno. Idemo traziti po ebay-u karticu. Kupimo karticu, spojimo karticu, i izgubimo pola dana na konfiguraciju kartice (izmedju ostaloga i flashiranje cijelog profiluxa na najnoviji firmware) i to kao radi. Iz windows aplikacije se na profilux spajam preko mreze. Super. Ali nikako pronaci web sucelje, gledam sve moguce portove na tom IPu i jedino sto ima neki web GUI je aplikacija za konfiguriranje kartice. Sux. Idemo vidit s profiluxom gdje grijesim.
Nakon 2 dana dobijem odgovor: "U verziji za Profilux 2 ne postoji webGUI za administraciju profiluxa, nego samo za verziju 3. Na verziji 2 sve sto mozes napraviti je pristupati iz remotea na profilux, s onim istim windows programom s kojim sam se i do sada spajao preko serial porta". Divno

Mislim naravno da ima koristi mrezna kartica, jer nemoram se za svaku sitnicu grčit ispod postolja i kaciti se s serijlom na profilux ali iskreno sam mislio da ce biti i web interface.
I onda ide razmisljanje sto i kako da napravim..........
Zatim ide sljedeca ideja:
1. U podrumu ionako imam neko racunalo spojeno da glumi neki file server koji je up 24/7. Na to racunalo dignem profiluxov program i na neki sistem automatkih klikova i micanja mise napravim da mi se exportira onaj CSV negdje.
2. Te CSVove parsirati da mi ostanu samo podaci datum, vrime, vrijednost temperature i vrijednost pH
3. Uploadati te CSVove na hosting server i tamo nesto napraviti da se ti podaci spreme u neku bazu
4. Iz te baze pokusati napraviti grafove

Razrada ideje sljedi:
1. Na kucnom "serveru" je instaliram Profilux proggy
2. S jednim automatizacijskim programom napravimo sljedece:

I kao sto se moze shvatiti iz ovoga sto on napravi: pokrene program, izklika sve opcije da dođe do opcije za snimanje vrijednosti u CSV, snimi taj CSV na disk, pobrise memoriju i ubije aplikaciju. Nakon toga se generalno parsira ovaj file i brise mu se prva i zadnja linija, brisu mu se stupnjevi celzijus i pH tako da nam ostane cist file s vrijednostima. Taj file se snimi sa strane i ZIPne te se uploada na hosting server. Ostaci lokalno se pobrisu.
3. Na serveru ima se job koji svako 5 minuta provjeri jel postoji onaj file sto je uploadan u koraku 2. Ako nema nikom nista, ako ima pokrene storu da se vrijednosti iz tog filea importaju u bazu, i nakon toga pobrise ostatke.
4. (ovaj dio mi je pomogao kolega iz firme) Sada te podatke iz baze se trebaju pretvoriti u JSON podatke i to nekako prikazati graficki. Implementacija aplikacije za graficki prikaz, optimizacija za mobilne uređaje (jer mi je bitno da na mobitelu/tabletu mogu provjeriti podatke), te dodavanje nekih sitnica.
5. Graf sam napravio samo jedan i na njemu s min i max vrijednostima za pojedinu vrijednost sam dobio da se mogu čitko prikazati 2 vrijednosti na jednom grafu. Ovo mi je bilo bitno tako da imam na mobitelu na jednom ekranu prikaz svega.
6. Glavni prikaz mi prikazuje zadnja 2 dana u podjeli po satima. Ovo mi je bitno da nemoram nista klikati, badati nego samo klik na bookmark na mobitelu i imam most recent podatke. Nakon toga sam dolje dodao par botuna za najcesce upite, tipa zadnja 3 dana u satima, zadnjih 10 dana u satima, i zadnjih mjesec i 3 mjeseca dana u danima. Bitno je napisati da se podaci uzimaju svako 10 minuta, i onda s aggregate funkcijama se uzima max/average/minimum vrijednost. Dakle ako on prikaze neku vrijednost za jedan sat, to nije ta vrijednost u satu, nego average od 6 vrijednosti (svako 10 minuta), ista stvar s danima. I izmedju ostaloga tu je i biranje proizvoljnog datuma i podjeli pa mozemo raditi kakva hocemo grafove.
7. Sada kada vec imamo podatke u bazi onda mozemo raditi i monitoriranje vrijednosti, i recimo napravim kada vrijednost temperature je ispod 24 ili iznad 29 da posalje mail, a taj mail ide mail2sms na mobitel i odmah u roku od 10 minuta dobijem da nesto nije u redu s temperaturom, ista stvar i za pH.
Aplikacija se moze jos nadogradjivati i neke ideje imam u buducnosti ali za sada ovo mi je minimalno potrebno za kvalitetan prikaz i monitoriranje.
Prikaz na tabletu izgleda:
A na mobitelu:

A ofc moze se vidjeti i na compu na
http://app.netekipa.com/aquariumZnaci generalno sam popusio debelo jer sam ocekivao da i ovo i jos vise bude vec u onoj kartici, al eto barem osnovno smo dobili s malo kemijanja.
Ako nekome bude trebalo nesto slicno ili pomoc oko ovoga slobodno neka se javi
