Hei vieras, tervetuloa!

Vaikuttaa siltä että olet uusi täällä? Jos haluat osallistua keskusteluihin, rekisteröidy valitsemalla joku painikkeista ohessa!

Thingspeak-loggaus

24

Viestejä yhteensä

  • samppasamppa Viestejä: 533Member, Cozify mod
    Tieto logataan aina kun anturi sen lähettää, yleensä X minuutin tasavälen tai useammin, jos mitattava suure muuttuu.

    t. Samppa \ Cozify
    t. Samppa \ Cozify
  • PudemanPudeman Viestejä: 637Member, Beta-käyttäjä ✭✭✭
    editoi syyskuu 2018
    Ihan kivaa jälkeähän tällä saa. Oisko opastaa (=koodin pätkää) kuinka saada historiatietoa esim. viimeisen kuukauden ajalta viivadiagramina?
    Post edited by Pudeman on
    321DD299-3AA3-44B6-A2EC-397B6C251662.png
    1025 x 668 - 81K
  • jounimjounim Viestejä: 99Member
    Jooh, jotain käyttötilanteita mitä kannattaa säätää ja miten olette tuota hyödyntänyt
  • samppasamppa Viestejä: 533Member, Cozify mod
    Itse käytin tuota ThingSpeakia aikoinaan kylppärin kuivatuksen ja ilmanvaihdon tehostuksen seurantaan siten että samaan kuvaajaan laitoin lämpötilat, ilmankosteudet ja tehostusajat fieldeinä. Graafi auttoi sitten määrittelemään sopivat rajat milloin tehostus tulisi alkaa ja loppua. Todellisuudessa kuivatus pitäisi myös huomioida ulkoilman kosteus ja laskea kannattaako ilmaa vaihtaa, eli auttaako se kosteuteen ollenkaan. Joskus kesällä meinaa muuten ilmanvaihto pyöriä nonstop. Tuon laskennan ja logiikan tein Arduinolla, mutta saman voisi tehdä Cozfiyyn.

    Cozifyyn voisin lisätä myös laitteen ja teeman tilan raportoinnin ThingSpeakiin että sen voi lisätä graafeihin merkkaamaan noita tapahtumia.

    t. Samppa / Cozify
    t. Samppa \ Cozify
  • jounimjounim Viestejä: 99Member
    Yks kiva lisä tosiaan voisi olla loggaus laitteen tilasta auki/kiinni ja päällä/pois
  • monitmonit Viestejä: 44Member
    editoi syyskuu 2018
    Pitihän tätä heti kokeilla... tuli vaan pikku ongelma heti vastaan. Minulla on Develcon anturi, joka mittaa kosteutta ja lämpötilaa. Laitoin siis kaksi erillistä sääntöä, joista eka heittää kosteuden kanavan X kenttään 1 ja lämpötilan kanavan X kenttään 2. Nyt kuitenkaan Thingspeak ei suostu ottamaan noita molempia vastaan, vaan ainoastaan toista.

    Johtuuko tämä siitä, että ilmaista kanavaa saa päivittää vain 15 s välein? Käytännössä arvatenkin Develcon päivittäessä nuo molemmat ne lähtevät tasan samalla hetkellä Thingspeakiin ja se joka sattuu tulemaan vähän jäljessä jää aina pois, koska on sen 15 s sisällä.

    Miten tämän voi kiertää?

    Eikö oikeastaan Cozifyssä pitäisi olla tuolle Develcolle vain yksi sääntö, jossa voisi antaa kanavat kosteudelle ja lämpötilalle ja ne lähtisivät sitten samassa viestissä Thingspeakille?

    EDIT: Tajusinkin nyt, että se 15 s raja on kanavakohtainen. Ratkaisu siis on, että sen saman Develcon kosteus ja lämpötila pitää ohjata eri kanaville.
  • samppasamppa Viestejä: 533Member, Cozify mod
    Pitäisiköhän tuon rajoituksen kiertämiseksi ThingSpeak datan lähetykseen tehdä vaikka keskiarvoistava rajoitin, eli määritellään maksimi lähetystahti per sääntö ja jos dataa tulee useammin, niin näytteet keskiarvoistetaan.

    Useamman mittauksen lähettäminen samasta säännöstä on tällä hetkellä teknisesti haastavaa, sillä laitteet eivät välttämättä aina ole samassa deterministisessä järjestyksessä, ja siksi mittarit ja field ID:t on hankala pitää aina samoina. Eli käytännössä säännön luomisessa pitäisi pystyä määrittelemään kullekkin laitteelle se field ID, mutta UI ei vielä tue sellaista konseptia.

    Useammalla säännöllä asian saa kuitenkin luotettavasti toimimaan.

    t.Samppa \ Cozify
    t. Samppa \ Cozify
  • ippetiusippetius Viestejä: 2Member
    editoi syyskuu 2018
    Itsekin sain liitettyä nuo Develcon anturit ja tehtyä pienen harjoittelun myötä valvontanäytöt.
    Todella kätevä lisäys Cozifyn palveluun.

    Seuraavaksi ajattelin opetella kuinka muokata twitter -hälytystä uusiksi ja lisätä pidemmän ajanjakson trendinäytön.

    thingspeak.jpg
    2275 x 1503 - 262K
  • ToRoTiToRoTi Viestejä: 6Member
    Itsellänkin toimii hyvin Proove lämpö&kosteus antureiden kanssa. Niitä on nyt kaksi kytkettynä eli neljä eri lähetyssääntöä. Ongelmaksi muodostui kun koitan liittää Prooven sisä-ulkoilma lämpötila ja kosteusanturia. Eli laitteessä lämpötila sisälle ja ulos sekä kosteus vain sisälle. Cozify näyttää tuon kahtena laitteena eli sisä läm+kos ja ulko läm. Laitte antaa oikeaa singnaalia Cozifyn appiin, mutta datalähetys ThingSpeakin toimii vain sisä lämmölle ja kosteudella. Ulkolämpötilaa en saa loggaamaan oikein kunnolla. Se saattaa lähettää alussa muutamia hittejä ja sit pari päivässä kun muut anturit lähettää nopealla syklillä. Olen koittanut myös muuttaa kanavaa jolla anturi on, mutta ei auta. Oisko vinkkejä kellään vain onko kyseessä mahdollisesti bugi?
  • samppasamppa Viestejä: 533Member, Cozify mod
    Tuossa on varmaan kysymys ThingSpeakin ilmaisversion rajoituksesta per channel, joka estää liian nopean datan siirron 15 sekunnin välein, eli neljästi minuutissa.

    Voin yrittää tehdä bulk datan siirron kerran minuutissa ja katsoa saisiko sen avulla suuremman datamäärän läpi.
    Jos se ei auta, niin dataa on alettava keskiarvoistamaan ja lähetämään harvemmin.

    t. Samppa
    t. Samppa \ Cozify
  • monitmonit Viestejä: 44Member
    Tuo pelkkä keskiarvoistaminenkaan ei auta sikäli, että jos ne keskiarvot lähtevät samaan aikaan, niin taas jää dataa pois. Cozifyn pitää kuitenkin hallita se, että lähetykset eivät lähde yhtäaikaa. Tässä pari ideaa, joista ei ehkä mikään ratkaise ongelmaa täysin.

    1) Keskitetty puskurointi
    Joku puskurointi voisi toimia, eli kanavakohtaisesti lähtevät signaalit menee puskuriin ja ne lähtevät sieltä 15 s välein. Ongelmaksi jää tilanne, jossa puskuroituu liikaa lähetyksiä, jolloin vanhimmat on vaan pakko heittää roskiin. Esim. vanhemmat kuin 30 s.

    Ja siis Thingspeakissahan on se Home-lisenssi, jolla saa lyhennettyä odotusajan 1 sekuntiin. Tällöin puskurointi toimisi hyvin esim. 2 s puskuroinnilla.

    2) Sämpläys
    Toinen mahdollinen ajatus voisi olla raaka random-sämpläys. Eli thingspeak-säännölle sämpläysparametri. Vaikka prosentteina. Jos asettaa prosentin 50%, niin sääntö arpoo lähetyshetkellä random-luvun 0-1. Jos random luku on alle 50%, niin lähetys lähetetään Thingspeakille. Muutoin ei. Tämäkin jättää edelleen sen ongelma, että randomilla saman laitteen eri säännöt voivat yrittää lähettää samaan aikaan ja toinen jää pois.

    3) Säännön odotusaika
    Oisko yksinkertaisin kuitenkin sitten se, että tuolle thingspeak-säännölle asettaisi odotusajan. Esim. jos asettaa 20 s, niin se odottelee anturin lukuhetkestä 20 s ennenkuin lähettää sen Thingspeakiin. Tässä ongelmaksi jää se, että jos käyttäjä asettaa suuremman odotusajan kuin anturin päivitysväli. Tämän ehkä voisi hanskata sillä, että jos anturilta tulee päivitys, ja odotuksessa on vielä joku edellinen päivitys, niin se uusi päivitys jätetään huomiotta ja odotuksessa oleva lähtee sitten kun lähtee.

    Tätä voisi siis käyttää niin, että anturin kosteudelle laittaisi odotusajan 0 s ja lämpötilalle 20 s, jos ne haluaa siis samaan kanavaan.


    YHTEENVETONA

    Jos tosissaan halutaan, että Cozifystä voi kerätä luotettavasti kanavan 8 eri kenttään dataa, niin näkisin, että tuo keskiketty puskurointi olisi toimivin vaihtoehto yhdistettynä Home-lisenssiin Thingspeakissa (1 s jäähdyttelyaika).

    Vaihtoehdoissa 2 ja 3 tullaan kuitenkin helposti tilanteeseen, että dataa yrittää lähteä jäähdyttelyajan sisällä. Vähemmän tietysti, jos käytössä Home-lisenssi Thingspeakissa.

    Mutta, ylipäätään en näe, että tässä on kovin isosta ongelmasta kysymys, koska jäähdyttelyaika on kanavakohtainen. Tämä on siis kierrettävissä aina sillä, että jaetaan kaikki datat eri kanaviin. Tällöin voivat lähteä vaikka ihan yhtäaikaa.
  • ToRoTiToRoTi Viestejä: 6Member
    Minulle riittäisi vallan mainiosti jos lähetys toimisi vaikka vain kerran minuutissa per mittaus eli 10 kymmenen muuttujan kanssa per field refresh rate oli 10min. Ihan riittävä taajuus perus lämpöjen seurantaan. Silloin ei tarvitsisi maksaa 90$ home lisenssistä. Kuten aikaisemmin oli jo mainittu yhden Thingspeak channelin voisi ryhmittää yhdeksi paketiksi jossa voisi määrittää myös noita näytetään osat.

    Myös hieman ajattelin että eihän ongelma tässä tapauksessa olisi kanssa se että nyt molemmat lämpötilat tulee samalta kanavalta cozifylle ja varmaankin samaan aikaan jolloin arvoja yritetään lähettää samaan aikaan eteenpäin?
  • samppasamppa Viestejä: 533Member, Cozify mod
    Keskiarvoistuksessa siis mittaustukolset lähetetään esim. 10 minuutin välein ja tulos siltä ajalta keskiarvoistettuna. Tietysti tarkkuus riippuu käyttökohteesta. Ehkä se pitäisi olla valittavissa, eli jos haluaa tarkempaa tarkkuutta niin tulokset pitää laittaa eri Channeliin.

    Kokeilen vielä tuota bulk lähetystä josko se ratkaisisi koko ongelman..

    t. Samppa \ Cozify
    t. Samppa \ Cozify
  • samppasamppa Viestejä: 533Member, Cozify mod
    Tuo ThingSpeakin bulk-update API näyttää toimvan ja näin ollen datan siirtorajoitus poistuu seuraavan päivityksen myötä. Kerääntynyt data siirretään siis 5 min välein, eikä mittauksia kuitenkaan hukata (eikä tarvetta keskiarvoistamiselle ole).

    Muutoksen myötä käyttäjän pitää määritellä asetuksiin ThingSpeak palvelun channel numero, eli asentaminen on hieman hankalampaa (toinen copy-paste). Lisäksi, jo olemassa olevat loggaus-säännöt eivät enää toimi, vaan ne pitää luoda uudelleen (ja määrittää tuo channel numero). Tuo on toki harmillista ominaisuutta testanneille käyttäjille.

    t. Samppa \ Cozfiy
    t. Samppa \ Cozify
  • ToRoTiToRoTi Viestejä: 6Member
    Milloin seuraava päivitys ois luvassa?
Kirjaudu sisään tai Rekisteröidy kommentoidaksesi.