Hei vieras, tervetuloa!

Näyttää siltä, että olet uusi täällä. Kirjaudu sisään tai rekisteröidy aloittaaksesi.

Thingspeak-loggaus

monitmonit Member Viestejä: 127 ✭✭

Tarve: Cozifyssä näkyvissä olevien lämpötilojen loggaaminen säännöllisesti Thingspeak- tms. palveluun.

Minulla on isohko patterilämmitteinen talo ja siellä lämmityksenohjausautomaatiota. Sitähän tekee mieli tietysti viritellä ja koittaa hakea koko ajan parempaa optimointia, jos ei nyt isojen säästöjen toivossa, niin ainakin harrastuksen vuoksi. Lämmityksen ohjaus itsessään on Danfossin lämmityksenohjausautomaatio (Danfoss Link), mutta sekään ei pysty tallentamaan mitään historiatietoa.

Ensimmäinen käyttötapaus on tietysti huoneiden lämpötilojen loggaus ajan yli. Olisi mukava nähdä miten työpäivän aikana ja yöllä lämpötilat putoavat missäkin huoneessa ja miten nopeasti taas takaisin.

Lisäksi, maalämmön kanssa olisi kiva seurailla lämpötiloja eri putkissa ja vähän yrittää ymmärtää miten se systeemi toimii eri tilanteissa tarkemmin. Vähimmillään putket maalämpöyksiköltä puskurivaraajaan ja ne varsinaiset lämmityskierron meno- ja paluuputket puskurivaraajalta kiertoon. Jos tälläinen loggaus olisi, niin ei tarvittaisi kuin läjä Prooven lämpömittareita Cozifyyn kiinni. Parhaiten tähän käyttötapaukseen sopinee jääkaappianturi, koska siinä anturielementti on johdon päässä ja sen voisi vetää putken kylkeen kiinni eristeen sisään, jolloin mittaustarkkuus olisi hyvä. Ainoa rajoittava tekijä on tosin se, että noita Prooven antureita saa asennettua vain 8, koska ne voivat lähettää vain 8 eri kanavalla.

Tästähän voisitte tehdä hyvän paketin kauppaanne vaikka 4 kpl noita Prooven laitteita ja eristeteippiä (esim. solukumiteippi) antureiden paketoimiseksi putken ympärillle :smiley:

Lopuksi, mielestäni tämä on palvelu, josta olisin valmis maksamaan hieman. En nyt sentään kymppiä kuussa, mutta helposti euron-pari. Tosin otan toiminnallisuuden ilolla myös vastaan ilmaisena :)
«13

Viestejä yhteensä

  • LinhLinh Member Viestejä: 5
    Minulla on kanssa muutama noita monitin mainitsemia Prooven antureita juuri solukumiteipillä kiinni lämmitysverkon eri osissa. Olisi mahtavaa saada ne logattua thingspeakkiin.

    Samalla voisi liiketunnistimien ja ovi-/ikkuna-antureiden tilamuutokset saada talteen johonkin.
  • jounimjounim Member Viestejä: 141
    Käsittääkseni tämä pitäisi olla ihan helppo juttu, ja tuen tekemisestä on paljon puhuttu, ilmaiseen käyttöön ThinkSpeakiin saa yli 8000 lukua talentaa per päivä. ..


    Oliko tätä joku jo enemmän pyöritellyt Cozifyn päässä?
  • jounimjounim Member Viestejä: 141
    Onkos tämä loggaus aihe edennyt, olis ollu tässä pakkasilla kiva seurata kämpän lämpötiloja ja tietty niitä pakkaslukemia..
  • ArtanicusArtanicus Member Viestejä: 24
    Jos loytyy tee-se-itse henkea niin Pythonilla voi itse viritella valikappaleen. Yllapidan Python-cozify rajapintakirjastoa (https://github.com/Artanicus/python-cozify) ja sen paalle olen rakennellut oman lampotilaloggerin: https://github.com/Artanicus/cozify-temp

    En ole thingspeakkia kayttanyt mutta nayttaisi loytyvan sillekkin puolelle valmis kirjasto: https://pypi.python.org/pypi/thingspeak/

    Jos nyt intoudun ja ehdin niin voisin toki vasata myos suoraan tuonne syottavan esimerkin, jos ei ehdi joku toinen ensin. :-)
  • jounimjounim Member Viestejä: 141
    Jos,joku enemmän nörtti jaksais tehdä tuohon loggaukseen jotkut Step-By-Step ohjeet millä virityksellä noita arvoja saisi loggailtua... jonnekin jotenkin :)
  • ArtanicusArtanicus Member Viestejä: 24
    Olen kasannut jonkinmoisen (melko kauhean) viritelman joka tuuppaa dataa ThingSpeakkiin. En tosin aivan taysin ymmarra tuota heidan varastologiikkaa joten ehka asiaan paremmin perehtyneet voivat valottaa. Onko ideana siis luoda uusi channel per laite? Eli jos on lampomittari kahdessa huoneessa, pitaisiko luoda kaksi eri kanavaa? Vai voiko samassa kanavassa elaa useita laitteita joissa jotenkin tagattu mika arvo on miltakin laitteelta? Olen kovin tottunut tuohon tagaus logiikkaan niin ei nyt ihan taivu aivot uuteen malliin jos se toimii noin kun luulen.
  • Pasi StåhlPasi Ståhl Member, Beta-käyttäjä Viestejä: 50
    editoi maaliskuu 2018
    Minulla yhteen channeliin ladataan 8:n laitteen lämpötilat. Eli kanavia on käytössä 3 lämpötiloille ja yksi kosteuksia varten.
    Yksi channel sisältää 8 fieldiä. Nettiliittymä piirtää jokaisesta fieldistä oman kaavion. Siksi päädyin käyttämään sitä noin. Nyt näkee aina 8:n laitteen kuvaajat kerrallaan. Jokaisen fieldin olen nimennyt laitteen mukaan.
    Voisi tietysti tehdä jokaiselle laitteelle oman chanelin ja tellentaa sitten noihin fieldeihin lämpötilan, kosteuden ja muut laitteen kertomat arvot.
    Käytän kännykässä widgettiä, joka tuo osan lämpötiloista suoraan aloitusnäyttöön. Sekin hakee 2 fieldiä/channel. Pidin mukavana, että saa aina 2:n laitteen lukemat yhteen widgetruutuun, koska kosteuksien seurantaa en kännykkään kaivannut. Lähinnä kiinnostaa ulkolämpötila, patterikierron lämpö ja kaljakaapin lämpötila.
  • jounimjounim Member Viestejä: 141
    Pystyiskö joku tekeen pienen Step-by-Step ohjeen että miten tuota Thinkspeakia alkaas virittää, kun ilmeisesti tätä ns. perusominaisuutena ei vielä olla saamassa. Esim. Xiaomin loggaus on ihan riittävä seuraamaan hiemaan että mihin suuntaan lämpötilat on menneet, ja tämä löytyy Gatewayn appista suoraan...
    http://i64.tinypic.com/2zssot3.jpg
  • Pasi StåhlPasi Ståhl Member, Beta-käyttäjä Viestejä: 50
    Mun Thingspeaktallennus on pieni python ohjelma, joka pyörii kameravalvonnan tietokoneella.
    Ohjelma kyselee ensin arvot Cozifysta ja sitten lähettää ne Thingspeakiin. Tämä toistetaan 5 min välein.
    Cozify osuus on tehty pitkälti tältä foorumilta löytyneiden ohjeiden mukaan.
    Thingspeak osuus taas tehty thingspeakin sivuilta löytyvää esimerkkiä muokkaamalla. Toteutus on hieman huonohko, koska joudun koodaamaan aina uudestaan, jos lisään laitteita joiden dataa haluan tallentaa. Tai muutan laitteiden nimiä.
    Ja varmennetta taidan käyttää jotenkin väärin, koska se vanhenee aina säännöllisesti.
    Tarkoitus olisi tehdä ohjelma uudestaan niin, että data tallennettaisiin tietokantaan. Silloin ohjelma voisi paremmin mukautua lisääntyneisiin laitteisiin tai muuttuneisiin nimiin. Tuntuu vain, että ikinä ei löydy aikaa toteuttaa tätä.
  • ilkenilkeilkenilke Member, Beta-käyttäjä Viestejä: 156 ✭✭
    Mitä tietokantaa ajattelit käyttää? Mulla on ajatuksissa tunkee webbihotellin mukana tulleelle MySQL kannalle data. Projekti kärsii ajanpuutteesta myöskin. Onkos sun koodit gitissä @Pasi Ståhl ? Jos edes jakaa meinasit :blush: artanicuksen koodeja katselin kanssa mutta maailman lyhin määre estää tutustumista oikeesti asiaan.
  • Pasi StåhlPasi Ståhl Member, Beta-käyttäjä Viestejä: 50
    Ei ole koodeja gitissä, ku mun mielestä heikkolaatuisia räpellyksiä ei saa julkaista, ettei ne lähde leviämään.
    Tarkoitus olisi tosiaan käyttää webbihotellin tietokantaa. Ja ajattelin rakentaa koodit artanicuksen rajapintakoodeilla.
    Mun koodailut on aina vähän kokeellisia ja kehitystyö loppuu siihen, kun se toimii. Tämäkin oli ensimmäinen python ohjelmani.
    Kokeilin hieman noita artanicuksen koodeja ja niillä pääsisin eroon siitä varmenteen onkimisesta nettiselaimella. Samalla jos opettelisi datan tallentamisen sinne webhotellin tietokantaan, niin sittenhän Cozifyyn tuleekin thingspeak-loggaus. ;)
  • ilkenilkeilkenilke Member, Beta-käyttäjä Viestejä: 156 ✭✭
    Sehän se meitä harrastekoodareita vaivaa, vapaa ajalla ei jaksa liikaa keskittyä ja tulee kokeiltua kaikenlaista.
    Btw. Ite oon pienille kokeiluille käyttänyt gitbucketia, saa priva-repoja ilmaiseksi.
  • ArtanicusArtanicus Member Viestejä: 24
    Pasi Ståhl kirjoitti:

    Ei ole koodeja gitissä, ku mun mielestä heikkolaatuisia räpellyksiä ei saa julkaista, ettei ne lähde leviämään.
    Tarkoitus olisi tosiaan käyttää webbihotellin tietokantaa. Ja ajattelin rakentaa koodit artanicuksen rajapintakoodeilla.
    Mun koodailut on aina vähän kokeellisia ja kehitystyö loppuu siihen, kun se toimii. Tämäkin oli ensimmäinen python ohjelmani.
    Kokeilin hieman noita artanicuksen koodeja ja niillä pääsisin eroon siitä varmenteen onkimisesta nettiselaimella. Samalla jos opettelisi datan tallentamisen sinne webhotellin tietokantaan, niin sittenhän Cozifyyn tuleekin thingspeak-loggaus. ;)

    Jos tulee vastaan ongelmia tai muutenvaan tarviit apuja niin huutele ihmeessa. Juurikin tuo avaimien yllapito alkaa olla tuossa python-cozify kirjastossa aika vakaata ja toimivaa, ei ole enaa itsella vanhentunut avain pitkaan aikaan. 28 vuorokautta ne taitaa olla voimassa jonka aikana voi uusia saumattomasti.

    Julkaisen nyt oman palikkani Thingspeakin kapalointiin joka tavallaan toimii mutta ei osaa useampaa mittaria kerrallaan:
    https://github.com/Artanicus/cozify-temp/blob/master/cozify-thingspeak-loop.py

    Tuotti testeissani tollasen tuloksen: https://thingspeak.com/channels/430665
  • psysipsysi Member, Beta-käyttäjä Viestejä: 90
    editoi toukokuu 2018
    Nyt ois integraatiota testailtu, toimiihan se pienillä modiksilla:

    image

    Käytännössä Thingspeakissa on rajoitus, jossa upload -kutsuja saa tulla 15s välein. Tossa esimerkkikoodissa lähetetään vain 1 anturin data kerrallaan enkä jaksanut alkaa perkaamaan thingspeak -modulin sielunelämää vielä niin laitoin datan menemään anturi kerrallaan 15s välein palveluun.

    Eli ruma kuin mikä mutta toimii.

    Peilissäkin alkaa tietoja näkymään, siitä kuva kunhan saan napattua.

    - petri
  • jounimjounim Member Viestejä: 141
    Hieno juttu että tämä saatiin nyt Official-päivitykseen mukaan ja näytti toimivan heittämällä fiksusti. Tuota loggaustiheyttä vähä mietin että mille perusteella se toimii, täytynee seurata.

    Tämä oli ehkä paras uudistus pitkään aikaan ja oikeestaan koko uusimman päivityksen käyttökelpoisin.
  • samppasamppa Member, Cozify Viestejä: 651 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 Member, Administrator, Beta-käyttäjä Viestejä: 1,205 admin
    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
  • jounimjounim Member Viestejä: 141
    Jooh, jotain käyttötilanteita mitä kannattaa säätää ja miten olette tuota hyödyntänyt
  • samppasamppa Member, Cozify Viestejä: 651 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 Member Viestejä: 141
    Yks kiva lisä tosiaan voisi olla loggaus laitteen tilasta auki/kiinni ja päällä/pois
  • monitmonit Member Viestejä: 127 ✭✭
    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 Member, Cozify Viestejä: 651 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 Member Viestejä: 2
    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.

  • ToRoTiToRoTi Member Viestejä: 6
    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 Member, Cozify Viestejä: 651 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 Member Viestejä: 127 ✭✭
    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 Member Viestejä: 6
    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 Member, Cozify Viestejä: 651 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 Member, Cozify Viestejä: 651 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 Member Viestejä: 6
    Milloin seuraava päivitys ois luvassa?
Kirjaudu sisään tai Rekisteröidy kommentoidaksesi.