Raspberry pi ja 1-wire

  • Viestiketjun aloittaja Viestiketjun aloittaja ilpena
  • Aloituspäivämäärä Aloituspäivämäärä
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Jostain syystä taloLoggerin talo.db on korruptoitunut. Viimeisin varmuuskopio toukokuulta toimii mutta raspilla olevaa en saa auki mozillalla enkä sqlite browserilla(avaa osan). Mitähän ekaksi kannattaisi tehdä tuon pelastamiseksi, olen kopioinut raspilta sen tietenkin ja mittauksetkin toimivat joten ei se ihan kuollut ole.
jep, eipä toimi taloLoggerGraph, sinne meni.
kyllä taloLogger kirjoittaa siihen kantaan koska rivimäärä lisääntyy, ei vaan aukene millään.
laitampa tuon herjan vielä näytille josko jollain jotain tietoa
[Exception... "Component returned failure code: 0x8052000b (NS_ERROR_FILE_CORRUPTED) [mozIStorageStatement.finalize]" nsresult: "0x8052000b (NS_ERROR_FILE_CORRUPTED)" location: "JS frame :: resource://sqlitemanager/sqlite.js :: SQLiteHandler.prototype.selectQuery :: line 701" data: no]
Loading Data failed.

Mulla firefoxin sqlite manager heitti tuon saman herjan.
Syy oli ilmeisesti siinä kun yritin kopioida tietokantaa vauhdissa. Loggerin python prosessin tappaminen auttoi ja data siirtyi korruptoitumatta.
Raspi ei taida tuolla sqlite browserilla taida jaksaa avata kovinkaan suurta tietokantaa. Taitaa olla tietokantasi yli 100Mt kokoinen kun omassani on n.400000 mittauskierrosta ja kokoa hieman yli 50Mt
 
Vs: Raspberry pi ja 1-wire

Muutaman päivän tässä tapellut pi+talologgerin kanssa... En saa millään 1wire ds18s20 anturista käppyrää. Talologger asennettu. webbisivut aukee.

Osaan sen verran että saan tietoja anturista.
pi@raspberrypi ~ $ ls /mnt/1wire/
10.EBF7A1020800 bus.0 simultaneous structure uncached
alarm settings statistics system

pi@raspberrypi ~ $ cat /mnt/1wire/10.EBF7A1020800/temperature
19.125pi@raspberrypi ~ $

Olen yrittänyt työntää noita tietoja loggerin.conf tiedostoon mutta sain aikaseksi vain sen että dummy lopetti toimintansa.
Olisiko jollain aikaa tehdä noilla tiedoilla toimiva koodin pätkä että vaikka tuon arvo tulisi Outdoor lämmöksi? Varmaan siitä pääsisin alkuun...
1wire kortti
https://www.modmypi.com/raspberry-pi-expansion-boards/owfs-breakout-boards/raspberry-pi-1-wire-expansino-module
 
Vs: Raspberry pi ja 1-wire

i2c pitää olla asennettu ja valmiissa talologgerPi imagessa anturit löytyy /home/talo/owfs hakemistosta ja /service/owfs/run pitää olla
#!/bin/sh
/sbin/modprobe fuse
exec /usr/bin/owfs -C -d/dev/--i2c -m /home/talo/owfs --foreground --allow_other --error_print 1

sitten lukee i2c adapterilla
 
Vs: Raspberry pi ja 1-wire

Pahoittelen etten täysin vielä ymmärrä komentoja...
Tuleeko minun syöttää nuo kolme riviä kehoitteeseen vuoron perään ja sitten tulisi toimia?

Alkuperäiseen isoon taloLogger.conf filuun tein muutokset
@DATASOURCE=OWFS:OWFS
@OWFS:OWFS = Outdoor:1:/mnt/1wire/10.EBF7A1020800/temperature
@MEASURE = outdoor:OWFS.Outdoor

Pitääkö muuta muuttaa?
 
Vs: Raspberry pi ja 1-wire

aktivoi vaikkapa se filestore niin näet loggaako se
 
Vs: Raspberry pi ja 1-wire

Prkl intoa riittää mutta taitoa ei...
Jos mahdollista niin kädestä pitäen :) google ei auttanut mistä löydän filestoren...
 
Vs: Raspberry pi ja 1-wire

taloLogger.conf tiedostossa risuaitoja pois mitä haluaa aktivoida
# data stores
#############################################################################

@DATASTORE=FILESTORE:FILESTORE
@DATASTORE=FILESTORE:XMLFILE
#@DATASTORE=MYSQLDB:MYSQLDB
@DATASTORE=SQLITEDB:SQLITEDB


ja sitten kohdassa filestore myös

#############################################################################
# File store configuration
#############################################################################

# Filename to log the data into
FILESTORE:NAME = /home/talo/log/data.log

# Whether the log file will be overwritten on each log run producing a
# file with only the latest log data. (default false, the log file is
# appended with new data)
#FILESTORE:OVERWRITE = false

# Pattern for the timestamp. The pattern is according to definition of the
# Python time.strftime function. (The definition and pattern directives:
# http://docs.python.org/library/time.html#time.strftime )
#
# Example: Pattern %d.%m.%Y %H:%M:%S will produce a timestamp
# DD.MM.YYYY HH:MM:SS
FILESTORE:TIMESTAMP = %d.%m.%Y %H:%M:%S

# Patterns for the data in the log file
#
# :HEADER written to the file before the data values
# :DATAVALUE pattern for one datavalue (will be inserted
# as many times as there are measured values
# :FOOTER written to the file after the data values
#
# The patterns may contain the following escapes that are replaced
# with corresponding values. Pattern names are case insensitive so
# for example %s% and %S% will produce same result:
# %S% - one space character
# %N% - one newline
# %T% - one tab char
# %A% - one newline char (0x0A)
# %R% - one carriage return char (0x0D)
# %TIME% - timestamp in form configured by :TIMESTAMP pattern
# %KEY% - in the :DATAVALUE pattern will be the key corresponding to the
# measurement.
# %VALUE% - in the :DATAVALUE pattern the data value corresponding to the
# measurement, decimal separator as is read from the source.
# %VALUE_C% - in the :DATAVALUE pattern the data value corresponding to the
# measurement, decimal points converted to commas ','.
# %VALUE_P% - in the :DATAVALUE pattern the data value corresponding to the
# measurement, decimal points converted to periods '.'.
#
# Example: the follofing patterns will produce a Excel CSV-file format
FILESTORE:HEADER = %TIME%
FILESTORE:DATAVALUE = ;%VALUE_C%
FILESTORE:FOOTER = %D%%A%

#FILESTORE:HEADER = %TIME%:%N%
#FILESTORE:DATAVALUE = %S%%S%%S%%S%%KEY%:%VALUE%%N%
#FILESTORE:FOOTER =


pitäisi ilmestyä data.log jos muut asetukset on kohillaan
 
Vs: Raspberry pi ja 1-wire

YYYYYYYYYYES! Kiiitos :)
Datastores oli aidattu. Avaamisen jälkeen lokiin tuli rivejä ja sivut alkoivat piirtämään.
Ei paha saavutus täysin tyhjästä aloittavalta :D
 
Vs: Raspberry pi ja 1-wire

Kauhean taistelun jälkeen sain lisättyä muutaman anturin lisää ja sivun piirtämään käppyrää.

Nyt olen pähkäillyt kuinka/miten lisään/kytken Ouman 201L säätimen raspiin?

Raspiin pitäisi siis saada yhtä aikaa kiinni
1. I2C 1wire moduuli(vai mikä sen oikea nimi onkaan. Pieni kortti nastojen päällä)
2. Usb 1wire sovitin
3. Ouman 201L

Mitä tulisi tehdä? Miten kytkeä? Mihin ja mitä koodata?

Edit: Käykö esim KLMA 2x0,8+0,8 1wire käyttöön kiinteissä asennuksissa?
 
Vs: Raspberry pi ja 1-wire

Voiko näin tehdä? osaako linux ajaa nuo samaan aikaan ajoitetut tehtävät peräkanaa vai sekoaako raspi muuten kun no tiedostot ovat usein epämuodostuneita, vajavaisia.
 

Liitetiedostot

  • raspi.png
    raspi.png
    50,3 KB · Lukukerrat: 543
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Voiko näin tehdä? osaako linux ajaa nuo samaan aikaan ajoitetut tehtävät peräkanaa vai sekoaako raspi muuten kun no tiedostot ovat usein epämuodostuneita, vajavaisia.
Ei aja peräkanaa, vaan yhtä aikaa (siis todellisuudessa Raspin kaltaisessa vehkeessä suorittuvat vuorotellen niin, että yksi aina pyörii silmänräpäyksen kerrallaan; vähän järeämmällä PC:llä useampi todellakin menee eteenpäin rinnakkain).

Tuolla ei ole muuta merkitystä, kuin että jos operaatiot ovat kovin raskaita, niin kokonaisuus hidastuu ja ratkaisun logiikan pitää olla sellainen, ettei rinnakkainen eteneminen haittaa (eli mikään prosessi ei voi tuottaa toiselle lähtöarvoja tai eivät saa käsitellä samaa tiedostoa ilman ns. lukitusmekanismeja; tietokantaoperaatiot tuskin sotkeutuvat, ellei toteutus kuse logiikaltaan).

Jos todellakin käsittelet samoja tiedostoja niin, että luetaan ja kirjoitetaan, on keksittävä ratkaisu (eli ajastettava niin, etteivät pyöri samaan aikaan, tai sitten on lisättävä lukitukset, mikä vaatii jo hiukan enemmän ohjelmointitaitoja).
 
Vs: Raspberry pi ja 1-wire

Sitten tuossa minun tapauksessa, kun alussa toimi, käy niin, kun tiedostojen koko on kasvanut, ettei raspi ehdi tehdä kaikkia hommia minuutissa ennen siirtoa ja siksi jotkin tiedostot siirtyvät kotisivulle keskeneräisinä.
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Sitten tuossa minun tapauksessa, kun alussa toimi, käy niin, kun tiedostojen koko on kasvanut, ettei raspi ehdi tehdä kaikkia hommia minuutissa ennen siirtoa ja siksi jotkin tiedostot siirtyvät kotisivulle keskeneräisinä.
Jos vaikka yrittäisit käynnistää skriptit vuorotellen minuutin välein, riittäisikö se noiden erotteluun vai onko tarvittava logiikka monimutkaisempi? Meinaan vaan, että on helppo tehdä tuo lomittelu crontabilla tyyliin
Korjataanpa nyt tämänkin vanhan viestin syntaksi kuntoon, lisäykset vihreällä ...
1-59/10 ...
2-59/10 ...
3-59/10 ...

jne. (siis ensimmäinen, eli minuuttisarake; kts. "man 5 crontab" ... tai googleta ko. man-sivu jostakin muualta esim. kirjoittamalla tuo rotla googleen).
 
Vs: Raspberry pi ja 1-wire

Teet yhden 'master' skriptin, jossa on tuo sekventaalinen järjestys noille 'ala' skripteille. Sitten croniin laitat vain sen master skriptin.
 
Vs: Raspberry pi ja 1-wire

puhtia raspiin
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=24&t=31844
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
puhtia raspiin
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=24&t=31844

Onhan näitä:

http://www.hardkernel.com/renewal_2011/main.php

Vaatii jo kunnon jäähdytyslevyn.
 
Vs: Raspberry pi ja 1-wire

mikä ero noissa kun tulee 2 eri tiedostoa, kumpaa tulee käyttää?
crontab -e
sudo crontab -e

ja kun ne on erilaisia
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
mikä ero noissa kun tulee 2 eri tiedostoa, kumpaa tulee käyttää?
crontab -e
sudo crontab -e

ja kun ne on erilaisia

crontabilla käyttäjän (tunnuksen jolla olet koneessa) ja sudottamalla rootin.
 
Vs: Raspberry pi ja 1-wire

jlu2006 sanoi:
crontabilla käyttäjän (tunnuksen jolla olet koneessa) ja sudottamalla rootin.
siis kun kirjaudun sisään 'pi' ja 'raspberry' käytän tuota ilman 'sudo'a
 
Vs: Raspberry pi ja 1-wire

Ilman sudoa kannattaa laittaa omat skriptit crontabiin.
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
siis kun kirjaudun sisään 'pi' ja 'raspberry' käytän tuota ilman 'sudo'a
Siis jos kirjaudut sisään 'pi' + 'rasberry', niin 'crontab -e' käsittelee käyttäjän 'pi' crontabia. Käyttäjä pi ei siis pääse esim. muuttelemaan systeemitiedostoja.

Jos taas käytät 'sudo crontab -e', käsittelet käyttäjän 'root', eli superkäyttäjän crontabia. Käyttäjä 'root' on kaikkivoipa, eli pystyy muuttelemaan mitä vain (ja myös saamaan systeemin korjauskelvottomaan kuntoon muutamalla komennolla).
 
Vs: Raspberry pi ja 1-wire

jotain mystiikkaa siinä oli
talologgerin /log hakemistossa oleva tiedosto ei suostunut generoimaan rrd kuvaa vaikka se oli molemmissa grontabeissa(toimi kyllä riviltä ja loitsuin -R 777 ym). kun siirsin tuon tiedoston toiseen kansioon ja määrittelin tarvittavat polut se alkoi toimia, joten sain nyt sen ensimmäisen rrd käyrän aikaiseksi.
http://korsteeni.com/kwh1.png
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
jotain mystiikkaa siinä oli
talologgerin /log hakemistossa oleva tiedosto ei suostunut generoimaan rrd kuvaa vaikka se oli molemmissa grontabeissa
Ymmärtänethän, että tuolla tavalla kumpikin crontab yrittää tehdä samaan aikaan samaa hommaa. Lopputulos on aivan arvaamaton ja pääsyy mystiikkaan on ihan tuossa.
 
Vs: Raspberry pi ja 1-wire

kotte sanoi:
Ymmärtänethän, että tuolla tavalla kumpikin crontab yrittää tehdä samaan aikaan samaa hommaa. Lopputulos on aivan arvaamaton ja pääsyy mystiikkaan on ihan tuossa.
ymmärrän nyt, mutta vieläkin hyvin vähän. ihmetyttää jos koneella olisikin monta käyttäjää ja ne jokainen tekisi tietämättään toisistaan samat tiedot sisältävät crontabit ja kun heillä ei ole superkäyttäjän tunnuksia...niin.....eipä tästä enempää mutta nyt tyhjennän ne samat tiedot siitä sudo alkuisesta ja käytän sitä ilman sudoa olevaa
kiitän ja kumarran vinkeistä
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
ymmärrän nyt, mutta vieläkin hyvin vähän. ihmetyttää jos koneella olisikin monta käyttäjää ja ne jokainen tekisi tietämättään toisistaan samat tiedot sisältävät crontabit ja kun heillä ei ole superkäyttäjän tunnuksia...niin...
Systeemipalvelut, jotka tarvitsevat aputiedostoja kirjoitetaan rutiininomaisesti niin, että väliaikaistiedostot nimetään yksikäsitteisesti. Järjestelmässä on erilaisia välineitä tuon varmistamiseksi (ts. yksikäsitteisen nimen löytämiseksi), mutta periaatteessa riittävä ratkaisu on esim. sellainen, jossa nimen osana käytetään nimen valitsevan ohjelman senhetkistä prosessitunnusta oletuksella, että ko. prosessi on elossa niin kauan kuin ao. tiedostonimeä käytetään. Tämä takaa jopa sen, että samakin käyttäjä voi käynnistää ohjelmaketjun monta kertaa samaan aikaan suoritettavaksi, vaikka kaikki väliaikaistiedostot luotaisiinkin esim. '/tmp/'-hakemistoon.

Jos on tarkoituksena kirjoittaa enemmänkin noita tuloksenmuokkausfiltteriketjuja, kannattaisi alusta alkaen opetella näitä vakiokäytäntöjä ja etsiä verkosta vaikkapa systeemikirjastofunktioiden 'mktemp', 'mkstemp', 'mkdtemp' jne. manuaalisuja ja opiskella, mitä nuo pitävät sisällään.
 
Vs: Raspberry pi ja 1-wire

kotte sanoi:
Jos vaikka yrittäisit käynnistää skriptit vuorotellen minuutin välein, riittäisikö se noiden erotteluun vai onko tarvittava logiikka monimutkaisempi? Meinaan vaan, että on helppo tehdä tuo lomittelu crontabilla tyyliin
Korjataanpa nyt tämänkin vanhan viestin syntaksi kuntoon, lisäykset vihreällä ...
1-59/10 ...
2-59/10 ...
3-59/10 ...

jne. (siis ensimmäinen, eli minuuttisarake; kts. "man 5 crontab" ... tai googleta ko. man-sivu jostakin muualta esim. kirjoittamalla tuo rotla googleen).

kokeilempa uudestaan, se ensimmäinen versio ei minulla toiminut, on pakko kaikkea yrittää kun tuo raspi nääntyy. Loggaaminen taloLoggerilla menee vielä jouhevasti vaikka tietokannat ovat paisuneet puolessa vuodessa, palvelimen pudotin pois pelistä kun sqlite kanta alkoi taas korruptoitua, noista omista python sqlite kyselystä on päästävä ja kokeiltava rrd llä, josko kevyemmin toimisi jne.

edit:
tämä formaatti toimii, ei sekoa tiedostot yhtään.

pähkäiltävää riittää kyllä tulevillekin sadepäiville ja ehkä lumillekin

kukahan osaisi sanoa mihin kohtaan tai miten tuo
>>> (datetime.datetime.strptime('2013-08-11 06:10:00,179375', "%Y-%m-%d %I:%M:%S,%f")+datetime.timedelta(hours=3)).strftime('%Y-%m-%d %I:%M:%S,%f')
laitetaan tuhon minun python kyselyyn jotta lopputuos .csv tiedostossa olisi paikallinen aika
tuolla vastaus, mitä en osaa soveltaa
http://stackoverflow.com/questions/18181164/convert-time-from-sqlite-utc-to-csv-local-time
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
kukahan osaisi sanoa mihin kohtaan tai miten tuo
>>> (datetime.datetime.strptime('2013-08-11 06:10:00,179375', "%Y-%m-%d %I:%M:%S,%f")+datetime.timedelta(hours=3)).strftime('%Y-%m-%d %I:%M:%S,%f')
laitetaan tuhon minun python kyselyyn jotta lopputuos .csv tiedostossa olisi paikallinen aika

Onko kyseessä taloLoggerin konffikseen tuleva juttu, jolla aika pitäisi saada lokina tehtävään CSV-tiedostoon vai joku ihan muu skripti?
 
Vs: Raspberry pi ja 1-wire

olammi sanoi:
Onko kyseessä taloLoggerin konffikseen tuleva juttu, jolla aika pitäisi saada lokina tehtävään CSV-tiedostoon vai joku ihan muu skripti?
Ei ole, ihan on vain siitä sqlite tietokannasta kysely mikä on edellä olevassa linkissä. Muutenhan se toimii mutta ajat ovat utc. Kun sitten kotisivulla piirtää käyrän, on siinä ne utc ajat http://korsteeni.com/day.htm . En tiedä voisiko noita taloLoggerin csv tiedostoja aikarajata (viikko tai kuukausi) niissähän kelloaika on niinkuin pitääkin. Nyt sain kyllä taloLoggerin rrd toimimaan joten se taitaa olla ehkä kevein ratkaisu ja siinä on kelloaikakin oikein.
 
Vs: Raspberry pi ja 1-wire

Ihan sivuhuomiona: Mitenköhän aikavyöhyke on määritelty järjestelmässä?

Itselläni muuttuja $TZ antaa arvoksi Europe/Helsinki:
Koodi:
echo $TZ
Europe/Helsinki

Yleensä kaikki ajat tallennetaan UTC ajassa kantaan jolloin niiden muuttaminen menee automaattisesti.
Ja järjestelmän aika myös UTC:nä.

Lisäys: Vaikutus on todettavissa helposti:
Koodi:
pi@raspberrypi ~ $ echo $TZ
Europe/Helsinki
pi@raspberrypi ~ $ date
Tue Sep  3 20:27:25 EEST 2013
pi@raspberrypi ~ $ TZ="Europe/Stockholm"
pi@raspberrypi ~ $ echo $TZ
Europe/Stockholm
pi@raspberrypi ~ $ date
Tue Sep  3 19:28:21 CEST 2013
pi@raspberrypi ~ $

Ja kello aina samassa UTC ajassa.
Koodi:
pi@raspberrypi ~ $ date --utc
Tue Sep  3 17:32:58 UTC 2013
pi@raspberrypi ~ $
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Ei ole, ihan on vain siitä sqlite tietokannasta kysely mikä on edellä olevassa linkissä. Muutenhan se toimii mutta ajat ovat utc. Kun sitten kotisivulla piirtää käyrän, on siinä ne utc ajat http://korsteeni.com/day.htm . En tiedä voisiko noita taloLoggerin csv tiedostoja aikarajata (viikko tai kuukausi) niissähän kelloaika on niinkuin pitääkin. Nyt sain kyllä taloLoggerin rrd toimimaan joten se taitaa olla ehkä kevein ratkaisu ja siinä on kelloaikakin oikein.

Tekisin seuraavasti (jos >= Python 2.5):

Koodi:
import datetime, calendar, time

utctimestamp = '2013-08-11 06:10:00,179375'
a = datetime.datetime.strptime(utctimestamp, "%Y-%m-%d %H:%M:%S,%f")
b = a.utctimetuple()
c = calendar.timegm(b)
d = time.localtime(c)
localtimestamp = time.strftime('%Y-%m-%d %H:%M:%S', d)

Disclaimer: Oheinen koodi hukkaa nuo sekunnin osat, mutta toimii aikavyöhykkeestä huolimatta.

Esimerkin vaiheiden selvyyden vuoksi on käytetty noita välimuuttujia (a,b,c,d). Yhtenä lausekkeena tuosta tulee seuraava hirviö:

Koodi:
localtimestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(calendar.timegm(datetime.datetime.strptime(utctimestamp, "%Y-%m-%d %H:%M:%S,%f").utctimetuple())))
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
ymmärrän nyt, mutta vieläkin hyvin vähän. ihmetyttää jos koneella olisikin monta käyttäjää ja ne jokainen tekisi tietämättään toisistaan samat tiedot sisältävät crontabit ja kun heillä ei ole superkäyttäjän tunnuksia...niin.....

Normaalisti eri käyttäjät eivät pääse kirjoittamaan toistensa tiedostoihin, tiedostojen käyttöoikeudet pitävät huolen tästä. Toki kirjoitusoikeudet voidaan muillekin antaa, mutta oletuksena niitä ei ole. Tässä erikoistapauksessa toinen käyttäjistä on pääkäyttäjä (root) joka pystyy kirjoittamaan ihan mihin vaan, sen takia rootin crontab voi sotkea toisen käyttäjän crontabin kirjoittamat tiedostot. Normaalisti pääkäyttäjä on sen verran valveutunut henkilö ettei rupea kirjoittelemaan kenenkään toisen tiedostoihin. ;)
 
Vs: Raspberry pi ja 1-wire

tet sanoi:
sen takia rootin crontab voi sotkea toisen käyttäjän crontabin kirjoittamat tiedostot.
Tähän vielä lisäselvennyksenä, että jos crontabin käynnistämän sovelman kohdalla ei ole otettu huomioon mahdollisuutta sovelman yhtäaikaiseen ajoon (joko saman käyttäjän tai eri käyttäjien toimesta), ei edes se pelasta, että samanaikaisista käyttäjistä kumpikaan ei ole root. Kun ensimmäinen nimittäin käynnistää sovelman, se tekee väliaikaistiedostoja esim. '/tmp'-hakemistoon tyypillisesti. Kun toinen käyttäjä sitten yrittää luoda ja käyttää noita samoja väliaikaistiedostoja, ei se enää onnistukaan, sillä tiedostopa on tyypillisten (ja suositeltavien) oletusarvojensa takia kirjoitussuojattu jälkimmäiseltä käyttäjältä.

Jälkimmäinen käyttäjä kykenee korkeintaan lukemaan edellisen käyttäjän luoman tiedoston sisällön siinä muodossa, kuin se kullakin hetkellä sattuu olemaan. Kunnolla kirjoitetut sovelmat lisäksi tyypillisesti estävät jälkimmäistä käyttäjää edes lukemasta sisältöä (rajoittamalla muiden käyttäjien oikeuksia tiedostoon), minkä lisäksi väliaikastiedostoille annetaan yksikäsitteiset nimet, mistä jo aikaisemmin kirjoitinkin.
 
Vs: Raspberry pi ja 1-wire

Voiskos joku ystävällinen opastaa, että mitä tarvitaan ja mitenkä, että voisin muuttaa tällä hetkellä käytössä olevan 1-wire rs232 adapterin raspberry ja talologger pohjalle? Tarkoituksena hävittää vanha läppäri pois virtaa syömästä.
 
Vs: Raspberry pi ja 1-wire

Make78 sanoi:
Voiskos joku ystävällinen opastaa, että mitä tarvitaan ja mitenkä, että voisin muuttaa tällä hetkellä käytössä olevan 1-wire rs232 adapterin raspberry ja talologger pohjalle? Tarkoituksena hävittää vanha läppäri pois virtaa syömästä.

Minulle helpoin oli, kun linuxin suhteen lähdin nollilta ladata taloLoggerPi image täältä http://olammi.iki.fi/sw/taloLogger/download.php ja jos atureita on vähän, ei adaptereita tarvitse, GPIO toimii, eikä USB adapterikaan paljoa maksa, ehkä helpoin. Talologger.conf tiedostoon vaan adapterit, niin se on siinä.
Myös nimim. apophiksen malli avartaa asiaa, ja ensiaskeleet helpottuvat hyvin ja selkein esimerkein, kannattaa tutustua http://lampopumput.info/foorumi/index.php?topic=16918.15
 
Vs: Raspberry pi ja 1-wire

Korvieni välissä on kyllä niin syvä harmaa alue, sanoisinko jopa blackout siinä kohdin, mihihin kohtaan koodia/ja/tai miten tuo aikamuunnos Sqlite UTC>..csv localtime saadaan aikaiseksi, tuskin se tuon raspin ohjelmassakaan, mutta ei muutu.
Koodi:
import sqlite3
import csv
import sys

conn = sqlite3.connect('/home/talo.db')
cur = conn.cursor()

data = cur.execute('select time, value from talo_data where position_id=1 AND DATETIME([time]) >= DATETIME("now","-1 day");')

with open('/home/log/my.csv', 'wb') as f:
  writer = csv.writer(f)
  writer.writerow(['date', 'value'])
  writer.writerows(data)
for row in data:
 print >> f, row

Paljon on tullut ohjeita/neuvoja kiitos niistä mutta josko joku upottaisi sen tuohon koodiin.
täälllä yksi ehdotus
Koodi:
 >>> (datetime.datetime.strptime('2013-08-11 06:10:00,179375', "%Y-%m-%d %I:%M:%S,%f")+datetime.timedelta(hours=3)).strftime('%Y-%m-%d %I:%M:%S,%f')
linkki http://stackoverflow.com/questions/18181164/convert-time-from-sqlite-utc-to-csv-local-time

tätäkään en osaa käyttää
Koodi:
import datetime, calendar, time

utctimestamp = '2013-08-11 06:10:00,179375'
a = datetime.datetime.strptime(utctimestamp, "%Y-%m-%d %H:%M:%S,%f")
b = a.utctimetuple()
c = calendar.timegm(b)
d = time.localtime(c)
localtimestamp = time.strftime('%Y-%m-%d %H:%M:%S', d)
Koodi:
localtimestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(calendar.timegm(datetime.datetime.strptime(utctimestamp, "%Y-%m-%d %H:%M:%S,%f").utctimetuple())))
uuden oppiminen kun tällä kilometrimäärällä on yksi eteen ja kaksi taakse.
 
Vs: Raspberry pi ja 1-wire

hapokasta sano cola-olli, ei onnistu
millähän nuo sahalaidat saisi suoremmiksi rrd ssä. on niin törkeen näköistä.
 

Liitetiedostot

  • varaaja.png
    varaaja.png
    24 KB · Lukukerrat: 551
Vs: Raspberry pi ja 1-wire

aina uutta, huh
1,2 milj. vientiä sqlite kannassa niin firefox ei enää näytä mytta SQLite Database Browser toimii, alkaa tää raspihomma ahistamaan joka puolelta. Onneksi taloLogger loggaa kun olen karsinut jo kaikki oheisjutut pois. Sekään ei enää jaksanut raspissa 6*csv filestore + sqlite + 3*rrd ja muutama python kysely sqlite kannasta ja ftp siirto niin kolmas rrd tippui kyydistä. Eikä nuo virtuaalimitauksetkaan varmaan kevennä kyytiä.
Liekö tuo mysql jouhevampi kuin sqlite?
No, ainakin rajat tuli vastaan.
 
Vs: Raspberry pi ja 1-wire

timbba sanoi:

Ei välttämättä paljon auta, se on aika hölmösti toteutettu. Ainoastaan kääntää nuo pystyreunat hieman vinoon, mutta jos sampleväli on pitkä, niin vaakasuora siihen reunojen väliin tulee silti. Käytännössä slope-moden ja normaalin eroa on usein vaikea nähdä ilman suurennuslasia.

Sellaista kunnollista moodia, jossa piirrettäisiin suora datapisteiden väliin, ei RRDtoolissa ole.
 
Vs: Raspberry pi ja 1-wire

Oma seuranta toimii noin 6 vuotta noilla database vienneillä ;)

Eli vain kaksi taulua, toisessa kaikki lämpötilat stringinä ja toisessa kwh counter, tauluissa automaatti timestampit. Eli kaksi vientiä per mittauskerta ja aikaväli 5 minuuttia. Graafin piirrot sun muut sillä systeemillä, jonka tähän threadiin kirjoittelin.

Sqlite on kuulemma kevyempi kuin mysql. Omassa raspissa pyörii mysql kun en ole jaksanut vaihtaa...
 
Takaisin
Ylös Bottom