Talologger Muuttujat & Ohjelmointi

  • Viestiketjun aloittaja Viestiketjun aloittaja Ismo67
  • Aloituspäivämäärä Aloituspäivämäärä
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
Nyt rupeaa jo askarruttamaan koneen HW-konfiguraatio. "/dev/ttyUSB1" näkyy olevan jo käytössä ("ps"-komento aikaisemmin), mutta onko tuo "/dev/ttyUSB0" varmasti kytkettynä, se laite josta puhutaan ja päällä ilman jotakin virhetilaa? Mikä tuo palvelu on, joka käyttää "/dev/ttyUSB1":tä?

owfs käyttää "/dev/ttyUSB1":tä taloLoggerin automatic yhdessä avaamana mutta ei "/dev/ttyUSB0"

miksihän owfs' än kanssa ei ongelmia?

root@radxa:~# ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Nov 4 20:55 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 09:36 /dev/ttyUSB1
root@radxa:~#

jos aktivoin taloLoggerin 'run' scriptiin '/dev/ttyUSB0' niin siellä se kyllä toimii eikä herjaa oikeuksista

jotenkin tuntuu, en kyllä ymmärrä mitään, että tämä kokonaisuus vaatisi jotain oikeutta lisää kuten tuossa owfs rissä, taloLoggerille

root@radxa:~# ps -ef|grep -i talo
root 2105 2102 0 Nov04 ? 00:00:00 supervise taloLogger
root 2106 2104 0 Nov04 ? 00:00:02 /usr/lib/owfs/owfs -c /etc/owfs.conf -C -d /dev/ttyUSB1 -m /home/talo/owfs --foreground --allow_other --error_print 1
talo 2352 2105 0 Nov04 ? 00:00:12 /usr/bin/python /home/talo/bin/taloLogger/taloLogger.py -f /home/talo/etc/taloLogger.conf

sillä eihän tuolla 'group' ole 'owfs' käyttäjää ja silti toimii mutta 'talo' on ja ei toimi
 
Vs: Talologger Muuttujat & Ohjelmointi

Luitko ajatuksella, mitä olammi edellä kirjoitti? Minulle tulee se vaikutelma, että talologgerin conf-tiedostossa asiat ovat edelleen väärin (eli laitteeen mitää olla "head"-rivillä, ei missään tapauksessa suoraan loggerin kontrolloitavana).
 
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
Luitko ajatuksella, mitä olammi edellä kirjoitti? Minulle tulee se vaikutelma, että talologgerin conf-tiedostossa asiat ovat edelleen väärin (eli laitteeen mitää olla "head"-rivillä, ei missään tapauksessa suoraan loggerin kontrolloitavana).

olammi sanoi:
Tähän huomautuksena, että locationissa pitäisi olla vain "ajettavan" tiedoston polku eli
Koodi:
/usr/bin/head
ja sille annettavat kaikki parametrit kohdassa parameters, eli
Koodi:
-2 /dev/ttyUSB0

näin minä sen ymmärrän/tein ja se siellä on, ei anna virhettä (ainakaan vuorokauteen)

toisaalta tuo teksti ja esimerkki ovat ristiriitaiset olla vain "ajettavan" tiedoston polku eli
Koodi:
/usr/bin/head
, kuuluko 'head' polkuun?
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
näin minä sen ymmärrän/tein ja se siellä on, ei anna virhettä (ainakaan vuorokauteen)

toisaalta tuo teksti ja esimerkki ovat ristiriitaiset olla vain "ajettavan" tiedoston polku eli
Koodi:
/usr/bin/head
, kuuluko 'head' polkuun?
Virheilmoituksista viis, mutta rupesin epäilemään, että "talologger" saattaa itse avata sarjalinja-adapterin kahdesti. Ja jos tuo laite "/dev/ttyUSB0" esiintyy konfigurointiasetustiedostossa missään muualla kuin rivillä, jolla tuo "/usr/bin/head -2 /dev/ttyUSB0" sijaitsee, niin tätä on vahvasti syytä epäillä.
 
Vs: Talologger Muuttujat & Ohjelmointi

mikä?, kuka?, missä?, miksi? kun nykäsen usb kaapelin ja laitan sen paikoilleen, joku ehtii muuttaa nuo oikeudet, sama jos buuttaan

toimii
root@radxa:~# ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Nov 4 20:55 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 16:03 /dev/ttyUSB1

kaapeli irti ja takaisin kiinni
root@radxa:~# ls -l /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Nov 5 16:06 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 16:06 /dev/ttyUSB1

eikö tähän ole lääkettä, silloin ongelma olisi poissa
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
mikä?, kuka?, missä?, miksi? kun nykäsen usb kaapelin ja laitan sen paikoilleen, joku ehtii muuttaa nuo oikeudet, sama jos buuttaan

toimii
root@radxa:~# ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Nov 4 20:55 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 16:03 /dev/ttyUSB1

kaapeli irti ja takaisin kiinni
root@radxa:~# ls -l /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Nov 5 16:06 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 16:06 /dev/ttyUSB1

eikö tähän ole lääkettä, silloin ongelma olisi poissa
Juuri noin sen on tarkoituskin toimia. Eli kun vedät johdon irti, niin systeemi huomaa, että laite katosi ja poistaa laitetiedostonkin. Kun johto työnnetään takaisin, systeemi huomaa, että laite ilmestyi ja lataa sille sopivan laiteajurin, asentaa laitetiedoston jne. USB on suunniteltu sellaiseksi, että laite voidaan poistaa ja laittaa takaisin (ja systeemi osaa tunnistaa, millainen laite tilalle tuli, jos riittävät tiedot on systeemin tiedossa tämän tekemiseksi).


Ehdotanpa vielä, että annat talologgerin käynnistyä normaalisti ja etsit sitten, mitä tiedostoja se on avannut ("lsof | grep talologger" -- tai mikä tuo processi sitten nimeltään sattuu olemaankin).
 
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
Juuri noin sen on tarkoituskin toimia. Eli kun vedät johdon irti, niin systeemi huomaa, että laite katosi ja poistaa laitetiedostonkin. Kun johto työnnetään takaisin, systeemi huomaa, että laite ilmestyi ja lataa sille sopivan laiteajurin, asentaa laitetiedoston jne. USB on suunniteltu sellaiseksi, että laite voidaan poistaa ja laittaa takaisin (ja systeemi osaa tunnistaa, millainen laite tilalle tuli, jos riittävät tiedot on systeemin tiedossa tämän tekemiseksi).


Ehdotanpa vielä, että annat talologgerin käynnistyä normaalisti ja etsit sitten, mitä tiedostoja se on avannut ("lsof | grep talologger" -- tai mikä tuo processi sitten nimeltään sattuu olemaankin).
Koodi:
root@radxa:/home/talo/log# lsof | grep talo
supervise 2108            root  cwd       DIR       31,1     1024     199010 /home/talo/service/owfs
supervise 2108            root    5wW     REG       31,1        0     199313 /home/talo/service/owfs/supervise/lock
supervise 2108            root    6r     FIFO       31,1      0t0     199314 /home/talo/service/owfs/supervise/control
supervise 2108            root    7w     FIFO       31,1      0t0     199314 /home/talo/service/owfs/supervise/control
supervise 2108            root    8r     FIFO       31,1      0t0     199316 /home/talo/service/owfs/supervise/ok
supervise 2109            root  cwd       DIR       31,1     1024     199012 /home/talo/service/taloLogger
supervise 2109            root    5wW     REG       31,1        0     199090 /home/talo/service/taloLogger/supervise/lock
supervise 2109            root    6r     FIFO       31,1      0t0     199091 /home/talo/service/taloLogger/supervise/control
supervise 2109            root    7w     FIFO       31,1      0t0     199091 /home/talo/service/taloLogger/supervise/control
supervise 2109            root    8r     FIFO       31,1      0t0     199093 /home/talo/service/taloLogger/supervise/ok
owfs      2111            root  cwd       DIR       31,1     1024     199010 /home/talo/service/owfs
owfs      2111 2127       root  cwd       DIR       31,1     1024     199010 /home/talo/service/owfs
owfs      2111 2128       root  cwd       DIR       31,1     1024     199010 /home/talo/service/owfs
owfs      2111 2146       root  cwd       DIR       31,1     1024     199010 /home/talo/service/owfs
bash      2133            root  cwd       DIR       31,1     1024     196768 /home/talo/log
python    2360            talo  cwd       DIR       31,1     1024     199012 /home/talo/service/taloLogger
python    2360            talo  rtd       DIR       31,1     1024          2 /
python    2360            talo  txt       REG       31,1  2146148      33346 /usr/bin/python2.7
python    2360            talo  mem       REG       31,1    93472       2820 /lib/arm-linux-gnueabihf/ld-2.13.so
python    2360            talo  mem       REG       31,1     9816       2529 /lib/arm-linux-gnueabihf/libdl-2.13.so
python    2360            talo  mem       REG       31,1   112712        347 /lib/arm-linux-gnueabihf/libgcc_s.so.1
python    2360            talo  mem       REG       31,1    30420       8561 /lib/arm-linux-gnueabihf/libnss_nis-2.13.so
python    2360            talo  mem       REG       31,1    55244       2477 /lib/arm-linux-gnueabihf/libnsl-2.13.so
python    2360            talo  mem       REG       31,1    28628      98510 /usr/lib/python2.7/lib-dynload/_ssl.so
python    2360            talo  mem       REG       31,1     9852       2377 /lib/arm-linux-gnueabihf/libutil-2.13.so
python    2360            talo  mem       REG       31,1    34504       1991 /lib/arm-linux-gnueabihf/libnss_files-2.13.so
python    2360            talo  mem       REG       31,1    11092      98511 /usr/lib/python2.7/lib-dynload/_hashlib.so
python    2360            talo  mem       REG       31,1    67316        315 /lib/arm-linux-gnueabihf/libz.so.1.2.7
python    2360            talo  mem       REG       31,1   403056       2746 /lib/arm-linux-gnueabihf/libm-2.13.so
python    2360            talo  mem       REG       31,1   100447       2662 /lib/arm-linux-gnueabihf/libpthread-2.13.so
python    2360            talo  mem       REG       31,1   897140       8558 /lib/arm-linux-gnueabihf/libc-2.13.so
python    2360            talo  mem       REG       31,1    22392       2345 /lib/arm-linux-gnueabihf/libnss_compat-2.13.so
python    2360            talo  mem       REG       31,1   231836      33265 /usr/lib/arm-linux-gnueabihf/libssl.so.1.0.0
python    2360            talo  mem       REG       31,1   111964      98867 /usr/lib/python2.7/lib-dynload/_ctypes.so
python    2360            talo  mem       REG       31,1    54824      98875 /usr/lib/python2.7/lib-dynload/_sqlite3.so
python    2360            talo  mem       REG       31,1  1127772      33266 /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
python    2360            talo  mem       REG       31,1    63412      98858 /usr/lib/python2.7/lib-dynload/datetime.so
python    2360            talo  mem       REG       31,1   414644      33465 /usr/lib/arm-linux-gnueabihf/libsqlite3.so.0.8.6
python    2360            talo  mem       REG       31,1    13948       3376 /lib/arm-linux-gnueabihf/libnss_dns-2.13.so
python    2360            talo  mem       REG       31,1    55148       2087 /lib/arm-linux-gnueabihf/libresolv-2.13.so
python    2360            talo    0r      CHR        1,3      0t0       1227 /dev/null
python    2360            talo    1w     FIFO        0,8      0t0       5627 pipe
python    2360            talo    2w     FIFO        0,8      0t0       5627 pipe
python    2360 2363       talo  cwd       DIR       31,1     1024     199012 /home/talo/service/taloLogger
python    2360 2363       talo  rtd       DIR       31,1     1024          2 /
python    2360 2363       talo  txt       REG       31,1  2146148      33346 /usr/bin/python2.7
python    2360 2363       talo  mem       REG       31,1    93472       2820 /lib/arm-linux-gnueabihf/ld-2.13.so
python    2360 2363       talo  mem       REG       31,1     9816       2529 /lib/arm-linux-gnueabihf/libdl-2.13.so
python    2360 2363       talo  mem       REG       31,1   112712        347 /lib/arm-linux-gnueabihf/libgcc_s.so.1
python    2360 2363       talo  mem       REG       31,1    30420       8561 /lib/arm-linux-gnueabihf/libnss_nis-2.13.so
python    2360 2363       talo  mem       REG       31,1    55244       2477 /lib/arm-linux-gnueabihf/libnsl-2.13.so
python    2360 2363       talo  mem       REG       31,1    28628      98510 /usr/lib/python2.7/lib-dynload/_ssl.so
python    2360 2363       talo  mem       REG       31,1     9852       2377 /lib/arm-linux-gnueabihf/libutil-2.13.so
python    2360 2363       talo  mem       REG       31,1    34504       1991 /lib/arm-linux-gnueabihf/libnss_files-2.13.so
python    2360 2363       talo  mem       REG       31,1    11092      98511 /usr/lib/python2.7/lib-dynload/_hashlib.so
python    2360 2363       talo  mem       REG       31,1    67316        315 /lib/arm-linux-gnueabihf/libz.so.1.2.7
python    2360 2363       talo  mem       REG       31,1   403056       2746 /lib/arm-linux-gnueabihf/libm-2.13.so
python    2360 2363       talo  mem       REG       31,1   100447       2662 /lib/arm-linux-gnueabihf/libpthread-2.13.so
python    2360 2363       talo  mem       REG       31,1   897140       8558 /lib/arm-linux-gnueabihf/libc-2.13.so
python    2360 2363       talo  mem       REG       31,1    22392       2345 /lib/arm-linux-gnueabihf/libnss_compat-2.13.so
python    2360 2363       talo  mem       REG       31,1   231836      33265 /usr/lib/arm-linux-gnueabihf/libssl.so.1.0.0
python    2360 2363       talo  mem       REG       31,1   111964      98867 /usr/lib/python2.7/lib-dynload/_ctypes.so
python    2360 2363       talo  mem       REG       31,1    54824      98875 /usr/lib/python2.7/lib-dynload/_sqlite3.so
python    2360 2363       talo  mem       REG       31,1  1127772      33266 /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
python    2360 2363       talo  mem       REG       31,1    63412      98858 /usr/lib/python2.7/lib-dynload/datetime.so
python    2360 2363       talo  mem       REG       31,1   414644      33465 /usr/lib/arm-linux-gnueabihf/libsqlite3.so.0.8.6
python    2360 2363       talo  mem       REG       31,1    13948       3376 /lib/arm-linux-gnueabihf/libnss_dns-2.13.so
python    2360 2363       talo  mem       REG       31,1    55148       2087 /lib/arm-linux-gnueabihf/libresolv-2.13.so
python    2360 2363       talo    0r      CHR        1,3      0t0       1227 /dev/null
python    2360 2363       talo    1w     FIFO        0,8      0t0       5627 pipe
python    2360 2363       talo    2w     FIFO        0,8      0t0       5627 pipe
lsof      2391            root  cwd       DIR       31,1     1024     196768 /home/talo/log
grep      2392            root  cwd       DIR       31,1     1024     196768 /home/talo/log
lsof      2393            root  cwd       DIR       31,1     1024     196768 /home/talo/log
 
Vs: Talologger Muuttujat & Ohjelmointi

Ei tuolla näy olevan mitään tiedostoa, pipea tai muuta, mistä "talo" saisi mitään luetuksi. Kun en tunne ollenkaan tuota "talo"-sovellusta, niin enpä osaa enempää neuvoa. Uskoisin, että tuo virheilmoitus (joka nytkin varmaan tulee ja joka on jo ollut esillä) kielii jostakin muusta kuin mikä ajatus on esillä ollut. Eli syynäisin nyt tuota konfiguraatiota entistä tarkemmin. Nykyinen konfiguraatiotiedosto ("talo"lle) ei ole ollutkaan vähään aikaan näytillä. Voisit saada parempia neuvoja, jos esittäisit sen uudelleen nykyasussaan.
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
mikä?, kuka?, missä?, miksi? kun nykäsen usb kaapelin ja laitan sen paikoilleen, joku ehtii muuttaa nuo oikeudet, sama jos buuttaan

toimii
root@radxa:~# ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Nov 4 20:55 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 16:03 /dev/ttyUSB1

kaapeli irti ja takaisin kiinni
root@radxa:~# ls -l /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Nov 5 16:06 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 16:06 /dev/ttyUSB1

eikö tähän ole lääkettä, silloin ongelma olisi poissa

Ootko käsin nuo oikeudet aina muuttanut? Jos näin, niin tolleen se sitten tekee. Luultavimmin udev on siellä, jonka säännöillä saa tehtyä oikeudet kuntoon.
Esimerkiksi mullakin on Huawein 3G mokkula sekä wattnikin usb-kaapeli, jotka tekevät ttyUSBx laitetiedostoja. Täten en voi olla oikein koskaan varma, että mikä sen wattnikin numero on, joten olen tehnyt sille oman udev-säännön, jolla saan symbolisen linkin oikeaan laitteeseen:
Koodi:
$ lsusb
Bus 001 Device 007: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0c45:7401 Microdia 
Bus 002 Device 015: ID 0c45:7401 Microdia 
Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ cat /etc/udev/rules.d/98-pl2303.rules 
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SYMLINK+="wattnik"

$ ls -la /dev/wattnik 
lrwxrwxrwx 1 root root 7 marra  4 10:55 /dev/wattnik -> ttyUSB0

Sitten esimerkiksi halusin usb-lämpömittareille oikeudet kohdilleen, niin mulla on tämmönen sääntö sille:
Koodi:
$ cat /etc/udev/rules.d/99-pcsensor.rules 
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="7401", MODE="666"

$ ls -la /dev/hidraw*
crw-rw-rw- 1 root root 251, 0 marra  5 13:25 /dev/hidraw0
crw-rw-rw- 1 root root 251, 1 marra  5 13:25 /dev/hidraw1
crw-rw-rw- 1 root root 251, 2 marra  4 10:55 /dev/hidraw2
crw-rw-rw- 1 root root 251, 3 marra  4 10:55 /dev/hidraw3

$ tempered
/dev/hidraw1 0: temperature 22.26 °C
/dev/hidraw1 1: temperature 31.55 °C
/dev/hidraw3 0: temperature 21.50 °C

Joko buutti, että säännöt tulevat voimaan tai muistaakseni ilman reboottia root:ina komento tais olla:
Koodi:
udevadm control --reload-rules
 
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
Ei tuolla näy olevan mitään tiedostoa, pipea tai muuta, mistä "talo" saisi mitään luetuksi. Kun en tunne ollenkaan tuota "talo"-sovellusta, niin enpä osaa enempää neuvoa. Uskoisin, että tuo virheilmoitus (joka nytkin varmaan tulee ja joka on jo ollut esillä) kielii jostakin muusta kuin mikä ajatus on esillä ollut. Eli syynäisin nyt tuota konfiguraatiota entistä tarkemmin. Nykyinen konfiguraatiotiedosto ("talo"lle) ei ole ollutkaan vähään aikaan näytillä. Voisit saada parempia neuvoja, jos esittäisit sen uudelleen nykyasussaan.

tämä on suppea, testikokoonpano, mutta vähemmän 'häiriötekijöitä'
Koodi:
# logger configuration
#############################################################################

CONSOLE_LOGGING = false
VERBOSE_LOGGING = false
DAEMON_MODE = false
LOGFILE = /home/talo/log/taloLogger.log
LOG_INTERVAL = 150
LOG_INTERVAL_LIMIT = 5

# data sources###############################################################
#@DATASOURCE=DUMMY:DUMMY
@DATASOURCE=OWFS:OWFS
@DATASOURCE=SHELL:SHELL1
# data stores################################################################
@DATASTORE=SQLITEDB:SQLITEDB
@DATASTORE=FILESTORE:XMLFILE


# OWFS configuration#########################################################
@OWFS:OWFS = Indoor:1:/home/talo/owfs/28.208071030000/temperature
# SQLite Database data store configuration###################################
SQLITEDB:NAME = /home/talo/data/talo.db
SQLITEDB:DB_SCHEMA_VERSION = 1

XMLFILE:NAME = /home/talo/log/last.xml
XMLFILE:OVERWRITE = false
XMLFILE:TIMESTAMP = %d.%m.%Y %H:%M:%S
XMLFILE:HEADER = <?xml version="1.0" encoding="ISO-8859-1"?>%N%<Log>%N%%S%%S%<L$
XMLFILE:DATAVALUE = %S%%S%%S%%S%<Position>%N%%S%%S%%S%%S%%S%%S%<Key>%KEY%</Key>$
XMLFILE:FOOTER = %S%%S%</LogData>%N%</Log>%N%

# Shell module configuration
SHELL1:LOCATION = /usr/bin/head
SHELL1:PARAMETERS = -2 /dev/ttyUSB0
SHELL1:REGEXP = ^\s*(?P<rossi_humi>[0-9\.\-]+)\s*,\s*(?P<rossi_temp>[0-9\.\-]+)$
#############################################################################
# Logged measurement points and data store key configuration
#############################################################################
#@MEASURE = outdoor:DUMMY.AnyDummyValue
@MEASURE = indoor:OWFS.Indoor
@MEASURE = rossi_humi:SHELL1.rossi_humi
@MEASURE = rossi_temp:SHELL1.rossi_temp
 
Vs: Talologger Muuttujat & Ohjelmointi

Katsoin nyt uudestaan vanhoja viestejä -- ja pisti silmään, että eihän käyttäjälle "talo" ole ainakaan määritelty ryhmää "dialout". Siis homman pitää mennä niin, että sille käyttäjälle, jolla "talologgeria" ajetaan pitää olla merkitty groupiksi "dialout" (ja tuo mitä tuossa sanoin, tekee tuon).

Vedän tämän kommentin takaisin -- on mielestäni sitten OK...

Voisikohan tuossa olla jotakin groupien manipulointia, niin että "talologger" jotenkin säätää, millä efektiivisillä groupeilla ajetaan? Jos ei mikään muu auta, niin sitten noita timban mainitsemia skriptejä täytyy korjailla (toivottavasti ei -- tuo on nimittäin aikamoinen suo, ei ihan yksinkertainen maailma; noita täytyy säätää, jos käynnistyy väärä ajuri, mutta tässä ei liene moisesta kyse, kun kerran tuolla käsin tehdyllä permissioiden lisäämisellä homma pelittää).

Kun kerran laitteella on group "dialout", laite sallii tuolle groupille luvun ja kirjoituksen ja käyttäjä, jolla sovellusta ajetaan, niin kyllä homman pitäisi onnistua. Tietenkin "talologger" voi säätää yhtä ja toista tuota shell-komentoa ("head") käynnistäessään ...
 
Vs: Talologger Muuttujat & Ohjelmointi

ainakin yksi asia selvisi, raspilla kyseinen homma toimii, se on tuon rock' in debianissa, kahdella laitteella, kahdella eri ohjelmistoversiolla, sama

kaikki tässä ketjussa olevilla komennoilla asetukset samat, vaikkapa
pi@raspberrypi ~ $ ls -l /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Jan 1 1970 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 5 19:04 /dev/ttyUSB1


ja
Koodi:
pi@raspberrypi ~ $ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pi
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:talo
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:pi,talo
fax:x:21:
voice:x:22:
cdrom:x:24:pi
floppy:x:25:
tape:x:26:
sudo:x:27:pi
audio:x:29:pi
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:pi,talo
sasl:x:45:
plugdev:x:46:pi
staff:x:50:
games:x:60:pi
users:x:100:pi
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
pi:x:1000:
ssh:x:103:
ntp:x:104:
netdev:x:105:pi
input:x:999:pi
messagebus:x:106:
lpadmin:x:107:
fuse:x:108:
rtkit:x:112:
ssl-cert:x:113:
talo:x:1001:
indiecity:x:1002:pi
i2c:x:114:
sambashare:x:115:
 
Vs: Talologger Muuttujat & Ohjelmointi

No, sitten tuon voisi "tinata" jopa niinkin, että laittaa roottina pyörimään kerran minuutissa cron-skriptin, joka muuttaa nuo permissiot ("chmod o+rw /dev/ttyUSB0" tms.). Vika on kaiketi jossakin rockiin liittyvässä (laiteajuri ja HW-eivät ehkä vastaa toisiaan riittävän tarkasti).
 
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
No, sitten tuon voisi "tinata" jopa niinkin, että laittaa roottina pyörimään kerran minuutissa cron-skriptin, joka muuttaa nuo permissiot ("chmod o+rw /dev/ttyUSB0" tms.). Vika on kaiketi jossakin rockiin liittyvässä (laiteajuri ja HW-eivät ehkä vastaa toisiaan riittävän tarkasti).

näin se vaan on
testasin vielä varmuudeksi, jottei taloLogger' in scriptillä ajetussa ja taloLoggerPi img' ssä ole ratkaisevaa eroa ja testasin minibian imagella mihin on ajettu asennus scriptillä taloLogger - ei eroa - molemmilla toimii, eikä mitään herjoja

koitan nyt etsiä vielä, mutta ehkä kehittelen tämän ketjun lisäämillä tiedoilla tuota serial > tiedosto > taloLogger/owfs
sekin jättää nyt mittauksia väliin liikaa ja herjaloki paisuu
 
Vs: Talologger Muuttujat & Ohjelmointi

Näyttää siltä, että rock-ympäristössä tuo group-konfiguraatio ei ole nyt kohdillaan. Siihen voi olla parikin syytä, joista alla. Kun kaikki on kunnossa, niin asia pitäisi kyllä toimia ilman mitään tiedosto-oikeuksia laajentavia virityksiä. Viritykset voivat poistaa oireet, mutta sairautta eivät paranna.

Viritysmahdollisuudet siis:
  • Mainittu udev-määritys, joka laittaa oletuksena ttyUSB0:n tiedosto-oikeudet levälleen: Toimiva, mutta sotii hieman noiden tiedosto-oikeuksien periaatteita vastaan. Tietysti, jos laite on oma ja yksikäyttäjäympäristö, niin riskit ovat pienet.
  • Cron-skripti, joka aika-ajoin varmistaa, että oikeudet ovat ok: älä lähre shinne.
  • Siirrytään ajamaan taloLoggeria roottina: mahdollinen skenaario

taloLoggerPi:n asennussofta luo talo-käyttäjän ja liittää sen dialout-ryhmään. daemontools, joka käynnistää loggerin taustaprosessiksi vaihtaa käyttäjä ja ryhmäid:t talo-käyttäjän tiedoiksi käyttäen tekemääni binäärityökalua: /home/talo/bin/set_uid_with_groups. Tool on käännetty nimenomaan Raspille, joten voi olla, että se ei joko toimi oikein tai ollenkaan Rockissa. Tätä voisi kokeilla ajamalla rootina komentoriviltä (sudo eteen, jos ei root valmiiksi):
Koodi:
/home/talo/bin/set_uid_with_groups talo groups
Tuon pitäisi tulostaa kaikki ryhmät, joihin mainittu työkalu pystyy talo-käyttäjän nostamaan.

Jos listassa ei näy dialout tai tulee jokin "ERROR"-viesti, niin tiedetään että vika on tuossa. Tuolloin pitäisi selvittää, että missä saataisiin käännettyä Rockilla se tooli. Lähdekoodi C:tä, yksi lyhyt tiedosto. Rockille käännetyllä versiolla uusi testi ja toivomaan, että toimii.
taloLoggerPi tosiaan asentaa Raspille käännetyn version, koska se on tehty Raspia varten. Installeriin voidaan toki tehdä eri alustoille eriytystä.

TaloLogger-prosessi käynnistyy, kun daemontools ajaa automaattisesti skriptin:
Koodi:
/home/talo/service/taloLogger/run
Jos loggeria haluaa ajaa rootina, niin sanojen
Koodi:
exec
ja
Koodi:
/usr/bin/python
välistä poistetaan "/home/talo/bin/set_uid_with_groups talo"

Minulla ei ole itselläni mahdollisuutta kokeilla tai kääntää Rockissa mitään (ei ole laitteistoa), joten testausapua tarvitaan...
 
Vs: Talologger Muuttujat & Ohjelmointi

näyttää tältä

root@radxa:/home/talo/log# /home/talo/bin/set_uid_with_groups talo groups
talo uucp dialout video

tällä toimii, kiitän ja kumarran

#!/bin/sh
exec /usr/bin/python /home/talo/bin/taloLogger/taloLogger.py -f /home/talo/etc/taloLogger.conf

kokeilen vielä vaihtoehtoisilla rock' in imageilla, josko tämä on ihan tämän version ominaisuus/vika

edit
olin juuri ennen tuota antanut komentoriviltä
chmod -R 777 /home/talo
chmod -R 777 /home/talo/
en ollut vielä kokeillut sen vaikutusta
 
Vs: Talologger Muuttujat & Ohjelmointi

Ok. Eli Rockillakin tuo set_uid_with_groups näyttää toimivan ihan niinkuin pitää. Sitten asiassa on jotain muuta outoa, jos kerran oikeuksien laajentaminen auttaa ongelmaan. talo on dialout-ryhmässä ja ttyUSB0 on dialout-ryhmässä g+rw-oikeuksin. Pitäisi riittää laitteen lukemiseen.
 
Vs: Talologger Muuttujat & Ohjelmointi

kaikki oli kiinni ilmeisesti kahdesta kirjaimesta seuraavalla komennolla, kuudes ja yhdeksäs ovat '-' alunperin ja silloin ei toimi

root@radxa:/home/talo/log# ls -dgils /home/talo
196751 1 drwxrwxrwx 9 talo 1024 Nov 4 16:00 /home/talo

perus rock' i lähti myös 'root' ina mittaamaan mutta rock pro' ssa ei koko taloLogger ohjelma käynnisty kun poistaa ed.viest. olevan kohdan rivistä
käynnistin koneenkin uudelleen kahdeti, mutta ei

rock pro toimii nyt ihan orig. asetuksilla, kun antaa komennon
chmod -R 777 /home/talo
chmod -R 777 /home/talo/
ilmeisesti tämäkään komento ei ole sopivin tähän kohtaan, mutta tällä lähti vaan toimimaan, jostain olen sen kopsannut

nuo 2, ja toimii, onko tuosta mitä haittaa?

syytähän tuohon voi etsiä nyt ainoastaan rock' in puolelta, ja ensiksi tulee mieleen, ainakin pro' ssa kosketusnäyttö ominaisuus
kaiketi se on sarjaliitäntäinen ja ominaisuus päällä oletuksena mikä sitten sekoittaa 'pakan'

toinenkin mahdollisuus , pro'ssa on ajettu Adafruit' in BMP180, siinä on joku smbus, sekään ei oikein selitä kun toisessa sitä ei ole

nyt se mittaa, eikä yhtään kertaa ole jättänyt väliin tietokantaan, mutta yhä ajoittain lokiin tulee seuraavanlainen
06.11.2014 11:50:00: SHELL1: ERROR: Error executing Shell data source command
Command: /usr/bin/head -2 /dev/ttyS0
Command output: 70.80,3.70

06.11.2014 12:20:01: SHELL1: ERROR: Error executing Shell data source command
Command: /usr/bin/head -2 /dev/ttyS0
Command output: 70.30,3.60

joku rock' in sarjaportissa on erilaista raspiin verraten kun se tekee vain jokatoiselle riville ja lähtee tulostamaan lukemia hissukseen, raspi lukee jostain puskurista, ne tulee heti eikä tyhjiä rivejä ole
se tyhjä rivi ehkä aiheuttaa ongelmia
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
rock pro toimii nyt ihan orig. asetuksilla, kun antaa komennon
chmod -R 777 /home/talo
chmod -R 777 /home/talo/
ilmeisesti tämäkään komento ei ole sopivin tähän kohtaan, mutta tällä lähti vaan toimimaan, jostain olen sen kopsannut

nuo 2, ja toimii, onko tuosta mitä haittaa?
No, tuo poistaa kaiken suojan muiden ei-root-käyttäjien tekosia vastaan koskien tätä tunnusta "talo", mutta jos kukaan muu ei koneelle muutenkaan pääse, niin eipä tuosta katastrofia seuraa. Vanhat dossit ja windowsithan olivat ihan samalla viivalla ....

Sinällään voisi olla fiksua etsiä syytä moiseen vaatimukseen. Itse tutkiskelisin, mitä "ls -Rtl | head", "find . -mmin -1 -print" tms. näyttävät, kun komennon ajaa hakemistossa "/home/talo". Eli jotakin tiedostoa tai hakemistoa aivan ilmeisesti peukaloidaan ja toiminnan takaamiseksi riittäsi, että vain tuohon hakemistoon tai yksittäiseen tiedostoon lisättäisiin kirjoitusoikeudet, muttei kaikkialle. Tuolla voi myös olla jonkun muun (jopa rootin) omistamia tiedostoja, joiden oikeuksista kaikki juontaa juurensa (oikeuksia ei pidä mennä suoraan muuttamaan, vaan kannattaisi mieluummin yrittää löytää syyt moiseen).
 
Vs: Talologger Muuttujat & Ohjelmointi

Koodi:
root@radxa:/home/talo# ls -Rtl | head
.:
total 7
drwxr-xr-x 1 root root    8 Nov  6 17:53 owfs
drwxrwxrwx 2 talo talo 1024 Nov  6 07:48 log
drwxrwxrwx 2 talo talo 1024 Nov  4 20:55 data
drwxrwxrwx 2 talo talo 1024 Nov  4 18:25 etc
drwxrwxrwx 3 talo talo 1024 Nov  4 15:29 bin
drwxrwxrwx 4 talo talo 1024 Jan 12  2013 service
-rwxrwxrwx 1 talo talo   19 Jan  1  2011 VERSION
drwxrwxrwx 4 talo talo 1024 Jan  1  2011 public_html

root@radxa:/home/talo# find . -mmin -1 -print | grep -v /owfs/
./log/taloLogger.log
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
tuosta root@radxa:/home/talo# find . -mmin -1 -print ei saa kun osan, ilmeisesti joku bufferi vuotaa yli
Tuo owfs-haara ei ole ollenkaan mielenkiintoinen. Olisihan tuossa "find"issa "prune"-optiokin, mutta olisikohan helpompi vain laittaa komennon perään "| grep -v /owfs/", niin tuo haara jää pois. Ehkäpä sitten löytyisi jotakin mielenkiintoisempaa.
 
Vs: Talologger Muuttujat & Ohjelmointi

edellisessä viestissä testikoneelta ja tämä mittakoneelta (pro)
Koodi:
root@radxa:~# cd /home/talo
root@radxa:/home/talo# ls -Rtl | head
.:
total 26
drwxrwxrwx 2 talo talo 1024 Nov  6 20:10 data
drwxrwxrwx 2 talo talo 1024 Nov  6 20:10 log
drwxrwxrwx 2 root root 1024 Nov  5 23:08 virtual
drwxr-xr-x 1 root root    8 Nov  5 23:02 owfs
drwxrwxrwx 3 talo talo 1024 Nov  5 21:50 bin
-rwxrwxrwx 1 root root  186 Nov  3 22:02 rossi.py
-rwxrwxrwx 1 root root  697 Nov  3 21:59 rossiorg.py
-rwxrwxrwx 1 root root  264 Nov  3 08:20 week.sh
root@radxa:/home/talo# find . -mmin -1 -print | grep -v /owfs/

nuo .py tiedostot ei käytössä
 
Vs: Talologger Muuttujat & Ohjelmointi

Nuo hakemistot "data" ja "log" voivat toki sisältää jotakin mielenkiintoista (tuo "ls" käsky ei tuo näitä esille, eli "data" ja "log" pitäisi mainita "ls":n parametrina, jos haluaa nähdä, että mitä).

Voisihan myös "find"iin lisätä vähän aikaikkunaa (esim. "-mmin -10", siis 10 minuuttia yhden minuutin sijaan).
 
Vs: Talologger Muuttujat & Ohjelmointi

kerropa millä saan nuo edellä tehdyt tekemättömäksi, molemmat koneet suoltaa login täydeltä seuraavaa
Koodi:
06.11.2014 20:40:08: SQLITEDB: ERROR: Error in database operation, SQL: INSERT INTO talo_data (time, position_id, value) VALUES (DATETIME(1415299050, 'unixepoch'), 2, 19.125000)
06.11.2014 20:42:34: SQLITEDB: ERROR: Error in database operation, SQL: INSERT INTO talo_data (time, position_id, value) VALUES (DATETIME(1415299050, 'unixepoch'), 2, 19.125000)
06.11.2014 20:45:04: SQLITEDB: ERROR: Error in database operation, SQL: INSERT INTO talo_data (time, position_id, value) VALUES (DATETIME(1415299050, 'unixepoch'), 2, 19.125000)
06.11.2014 20:47:34: SQLITEDB: ERROR: Error in database operation, SQL: INSERT INTO talo_data (time, position_id, value) VALUES (DATETIME(1415299050, 'unixepoch'), 2, 19.125000)
06.11.2014 20:50:04: SQLITEDB: ERROR: Error in database operation, SQL: INSERT INTO talo_data (time, position_id, value) VALUES (DATETIME(1415299050, 'unixepoch'), 2, 19.125000)
06.11.2014 20:52:34: SQLITEDB: ERROR: Error in database operation, SQL: INSERT INTO talo_data (time, position_id, value) VALUES (DATETIME(1415299050, 'unixepoch'), 2, 19.125000)

helpotti, ei hajuakaan mistä moinen, epäilen jotain lukkotiedostoja, kuitenkin tiedot ovat onneksi menneet perille, antaa nyt mittailla vaan, on vuorokauden lukenut yhtään ei ole jättänyt väliin joten hyvä näin, sanoisinko erittäin hyvä

kyllä tuo yksi komento ainakin oli aika tiukka, jykälsi pitkään, ehkä sattui mittauksen aikaan, enpä tiedä
 
Vs: Talologger Muuttujat & Ohjelmointi

Eikai nuo edellä olleet mitään ls ja find, grep ja head mitään levyllä muuta. Eli ei se niistä ny kiinni ole.
 
Vs: Talologger Muuttujat & Ohjelmointi

Jos jotakin epäilisin, niin noita "chmod -R 777"-juttuja. Sitten vaan pikkuinen näppäilyvirhe jossakin tai piilevä ohjelmavirhe jossakin sovelluksessa, niin *pam* ... ja tietokanta solmussa... Jo tuon iteratiivisen modifikaation ulottuminen owfs:n alueelle hirvittää noin ajatuksena ... sen perusteella, mitä viimeisimmästä selvittelystä jo opimme ...

Voihan tuollaisia virheilmoituksia toki tulla vaan systeemin kuormituksen takia, eli kone ei pysy sisään tulevan datan tahdissa ja jotakin jää tekemättä. Saattaa olla, että mitään vakavaa ei silti tapahtunut (tai kumminkin pääsi sattumaan) ...
 
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
Jos jotakin epäilisin, niin noita "chmod -R 777"-juttuja. Sitten vaan pikkuinen näppäilyvirhe jossakin tai piilevä ohjelmavirhe jossakin sovelluksessa, niin *pam* ... ja tietokanta solmussa... Jo tuon iteratiivisen modifikaation ulottuminen owfs:n alueelle hirvittää noin ajatuksena ... sen perusteella, mitä viimeisimmästä selvittelystä jo opimme ...

Voihan tuollaisia virheilmoituksia toki tulla vaan systeemin kuormituksen takia, eli kone ei pysy sisään tulevan datan tahdissa ja jotakin jää tekemättä. Saattaa olla, että mitään vakavaa ei silti tapahtunut (tai kumminkin pääsi sattumaan) ...

näin se om, kun 'copy paste' taidolla mennään, kaikki on mahdollista ja vika/syy löytyy peiliin vilkaisemalla
etsin ja imuroin nousevalla viikolla uusimmat img' t noihin, sama kun ei käy, tai viimeksi laitettut on samat paitsi vanhemmalle on pitänyt ajaa toinen boot.img päälle kun se ei muuten käynnistynyt (lie sillä merkitystä?)

kysynpä nyt jo valmiiksi, sitten ennen kuin asennan taloLoggerin sillä omalla scriptillään olen tehnyt seuraavat

# apt-get install unzip
# apt-get install python

muuten ei lähde

imagesta riippuen ilmeisesti olen asentantanut varuilta nämä, onko haitaksi? tarvitseeko? tuo rimpsu on jostain sivulta kopsattu ja auttanut 'siinä tilanteessa'

# apt-get install automake autoconf autotools-dev gcc-4.7 libtool libusb-dev libfuse-dev swig python2.7-dev tcl8.5-dev php5-dev i2c-tools
# apt-get install gcc
# apt-get install build-essential autoconf

sitten olen siirtänyt sen omaa tuotantoa olleen 'talo.db' tietokannan taloLoggerin data hakemistoon ja siinä vaiheessa joutuu antamaan

# chmod -R 777 /home/talo/data/talo.db

muuten tulee herjat eikä tietokantaan tule mitään ja

# ln -s /home/talo/service/owfs /etc/service/owfs

sitten siirrän omat scriptit hiirellä 'talo' hakemistoon

tuota 'chmod -R 777' joutuu sitten antamaan noille .py scripteille, millä teen ftp' llä nettisivulle lähetettävät tiedostot jotka käynnistyvät crontab' illa
minkä olen tehnyt 'rooot' ina
Koodi:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PYTHONPATH=/usr/bin
1,11,21,31,41,51 * * * * /home/talo/day.sh
4,14,24,34,44,54 * * * * /usr/bin/python /home/talo/virtaus.py
6,16,26,36,46,56 * * * * /home/talo/week.sh
em. tiedostot sisältävät taasen lisää käynnistyksiä (mm. ftp)

ja onhan se samba, asennan sen aina ja siinäkin tuo 'chmod -R 777' on poikaa, eihän niihin tiedostoihin muuten pääse käsiksi
käytänkin sitten aika paljon tuota, elikkä aina kun herjaa 'Permission denied' niin siitä vaan

otan avoimesti parempia menettelytapoja vastaan ja ensimmäiseksi kysyn, mikä on oikea komento talo.db tiedostolle, jonka siirrän /talo/data/ hakemistoon, jotta se toimii kuten se orig. tiedosto

# chmod xxxx /home/talo/data/talo.db

mitä muuta kaikkea olen tehnyt väärin?
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
kysynpä nyt jo valmiiksi, sitten ennen kuin asennan taloLoggerin sillä omalla scriptillään olen tehnyt seuraavat
Siihen asti, kunnes käytät ensi kerran "chmod -R 777" on kaikki normaalia (toki lukkiutuminen työkalujen tiettyihin versioihin aiheuttaa myöhemmin ongelmia, vaikka saattaakin tällä hetkellä olla välttämätöntä -- en osaa sanoa, minkä osien kohdalla ehkä on välttämätöntä ja minkä kohdalla ehkä ei -- siis ei myöskään viisasta).

Tuo "chmod -R 777" -tarve kielii kylläkin jostakin fundamentaalisesta probleemasta (tai luultavasti useammasta). Asiallisten sovellusohjelmien ja asiallisesti muokatun asennuksen tapauksessa tuon ei periaatteessa milloinkaan pitäisi olla tarpeellista. Emme vaan tällä palstalla luultavasti pysty menemään niin syvälle asennuksen yksityiskohtiin (enkä esimerkiksi itse tunne kaikkea puheena olevia välineitä läheskään riittävästi, jotta osaisin neuvoa). Tokihan asia epäilemättä selviäisi, jos olisi aikomuksena pystyttää samankaltainen sovellusympäristö samankaltaiselle alustalle (mutta kun itselläni ei ole).
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
imagesta riippuen ilmeisesti olen asentantanut varuilta nämä, onko haitaksi? tarvitseeko? tuo rimpsu on jostain sivulta kopsattu ja auttanut 'siinä tilanteessa'

# apt-get install automake autoconf autotools-dev gcc-4.7 libtool libusb-dev libfuse-dev swig python2.7-dev tcl8.5-dev php5-dev i2c-tools
# apt-get install gcc
# apt-get install build-essential autoconf

Näyttäisi asentavan C-käännösympäristön ja headerifilet usb/fuse/python2.7/tcl8.5/php5 kirjastoille (jotka on asennettava myös jos niihin on viittauksia koodissa). Jos tarkoitus ei ole itse kääntää ohjelmia lähdekoodista ei noita tarvitse. Ellei sitten joku asennus yritä kääntää jotain lennossa. Ei ole haittaa muuta kuin viety levymäärä.
 
Vs: Talologger Muuttujat & Ohjelmointi

kotte sanoi:
Siihen asti, kunnes käytät ensi kerran "chmod -R 777" on kaikki normaalia (toki lukkiutuminen työkalujen tiettyihin versioihin aiheuttaa myöhemmin ongelmia, vaikka saattaakin tällä hetkellä olla välttämätöntä -- en osaa sanoa, minkä osien kohdalla ehkä on välttämätöntä ja minkä kohdalla ehkä ei -- siis ei myöskään viisasta).

Tuo "chmod -R 777" -tarve kielii kylläkin jostakin fundamentaalisesta probleemasta (tai luultavasti useammasta). Asiallisten sovellusohjelmien ja asiallisesti muokatun asennuksen tapauksessa tuon ei periaatteessa milloinkaan pitäisi olla tarpeellista. Emme vaan tällä palstalla luultavasti pysty menemään niin syvälle asennuksen yksityiskohtiin (enkä esimerkiksi itse tunne kaikkea puheena olevia välineitä läheskään riittävästi, jotta osaisin neuvoa). Tokihan asia epäilemättä selviäisi, jos olisi aikomuksena pystyttää samankaltainen sovellusympäristö samankaltaiselle alustalle (mutta kun itselläni ei ole).

chmod -R 777 saattaa myös lopettaa joidenkin asioiden toiminnan kokonaan jos osuu väärään paikkaan. Eli turvallisuuteen liittyvät ohjelmat ( sudo, ssh.. ) kieltäytyvät erinäisistä tempuista, esmes sudo antamasta oikeuksia ja ssh käyttämästä avaimia jos niille rakkaille hakmistoille / tiedostoille on annettu liian avoimet oikeudet. Tämä on vähän tapauskohtaista, mutta hämäävää kun kohdalle sattuu: kaikki näyttäisi olevan hyvin, mutta ei vaan pelaa.
 
Vs: Talologger Muuttujat & Ohjelmointi

ihmeiden aika ei näköjään ole ohi, olen luullut että MAC osoite on raudassa tai ainakin jotenkin siten istutettu rautaan ettei sitä muuteta ja että se on hyvinkin yksilöllinen
minulla näissä Radxa Rock' eissa on sama MAC, eipä enää tarvitse ihmetellä kun ne yhtaikaa ovat liekassa, ettei kaikki mene niinkuin elokuvissa
ei tullut mieleenkään ennenkuin...............jne

on niitä ihmeitä ollut muitakin
viime syksyllä asunnon esittelijä avasi minunkin auton ovet samalla kun omansa, eri merkkisiä kaikenlisäksi
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
ihmeiden aika ei näköjään ole ohi, olen luullut että MAC osoite on raudassa tai ainakin jotenkin siten istutettu rautaan ettei sitä muuteta ja että se on hyvinkin yksilöllinen
minulla näissä Radxa Rock' eissa on sama MAC, eipä enää tarvitse ihmetellä kun ne yhtaikaa ovat liekassa, ettei kaikki mene niinkuin elokuvissa
ei tullut mieleenkään ennenkuin...............jne

on niitä ihmeitä ollut muitakin
viime syksyllä asunnon esittelijä avasi minunkin auton ovet samalla kun omansa, eri merkkisiä kaikenlisäksi

No periaatteessa juu.. raudassa on joku defaultti, mutta tuota sattuu isommillekin valmistajille, sitä sitten ollaan konesalissa kummissaan.

http://en.wikibooks.org/wiki/Changing_Your_MAC_Address/Linux
 
Vs: Talologger Muuttujat & Ohjelmointi

olen päässyt nyt 'Permission denied' ja "chmod -R 777" yli ja käyttänyt tarvittaessa "chmod 755" millä olen saanut samanlaisen kirjainrivin kun alkuperäisesssä 'talo.db' tiedostossa ja siltä osin homma lienee jotakuinkin hallussa

adafruit' kaan se ei ole mikä SHELL modulin herjan aiheuttaa ja rockille on tullut uusi img ja testi koneella lisäksi 1 lämpötila anturi

herja tulee karkeasti ottaen noin joka kolmas lukukerta
Koodi:
11.11.2014 11:30:00: SHELL1: ERROR: Error executing Shell data source command
  Command: /usr/bin/head -2 /dev/ttyS0
  Command output: 84.10,6.80

mutta herjasta huolimatta tuo mittaus toimii

herjan syy on jokseenkin varmasti radxa rocki' in sarjaportin ominaisuus kirjoittaa joka toinen tyhjä rivi, minkä takia 'head -1' ei toimi luotettavasti mutta 'head -2' toimii
tässä pätkä dataa
Koodi:
root@rock:~# cat /dev/ttyS0
86.10,6.90

86.00,6.90

86.10,6.90

86.10,6.90
lisäksi tuo ensimmäinen rivi on satunnaisesti se tyhjä rivi
pöytäkone win10 llä ja raspi ei tee tyhjää riviä arduinoa luettaessa
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
herjan syy on jokseenkin varmasti radxa rocki' in sarjaportin ominaisuus kirjoittaa joka toinen tyhjä rivi, minkä takia 'head -1' ei toimi luotettavasti mutta 'head -2' toimii
tässä pätkä dataa
Olen jo pitkään epäillyt (kuvailemiesi oireiden perusteella), että "radxa rock" eroaa sarjaportin rekisteri-HW:n osalta sen verran, että moodiasetukset eivät toimi niin, kuin ne toimivat perussarjaportille. Samahan on tyypillistä monille USB-sarjaporttiadaptereille, joiden emulaatiokerros on vain tiettyyn rajaan asti yhteensopiva.

Tämähän ei sinällään auta mitään (vaikka paikkansa pitäisikin), mutta tuota aihepiiriä kannattaisi ehkä googlailla (englanniksi), jos haluaa löytää ratkaisun ongelmiin.
 
Vs: Talologger Muuttujat & Ohjelmointi

eihän tää ole sarjaportistakaan kiinni
laitoin lukemaan tiedostosta, mihin ei kirjoiteta edes mitään, samaa lukua

Koodi:
SHELL1:LOCATION = /usr/bin/head
SHELL1:PARAMETERS = -1 /home/talo/rossi.txt
SHELL1:REGEXP = ^\s*(?P<rossi_humi>[0-9\.\-]+)\s*,\s*(?P<rossi_temp>[0-9\.\-]+)\s*$
ja sama toistuu satunnaisin välein
rossi.txt
Koodi:
66.70,4.30
Koodi:
11.11.2014 18:13:04: Starting taloLogger.py (v1.6b).
11.11.2014 18:32:30: SHELL1: ERROR: Error executing Shell data source command
  Command: /usr/bin/head -1 /home/talo/rossi.txt
  Command output: 66.70,4.30
11.11.2014 18:57:30: SHELL1: ERROR: Error executing Shell data source command
  Command: /usr/bin/head -1 /home/talo/rossi.txt
  Command output: 66.70,4.30
kaikki tiedot kirjautuvat, eikä herjan mittaus jää pois
lukisin muuten owfs' sällä tuon tiedoston mutta kun on kaksi lukua, regexp' iä tarvitaan tai sitten jättää lämpötilan pois jo arduinossa
voisiko se sitten olla tuo REGEXP rivi? sen päälle en ymmärrä enempää kun sika joulun, otin siitä vain välistä pois osan kun se oli useammalle luvulle
 
Vs: Talologger Muuttujat & Ohjelmointi

VesA sanoi:
http://regex101.com/

en ole kokeillut.. noita on muitakin
läpi meni, hieno homma tuo, käyttöä tullee olemaan varmasti lähiaikoina

Edit

nyt jäi käteen vain tuo merkityksetön virheilmoitus
radxa' ssa ei mitään muuta,
neitseellinen img,
crontab' ssa ei mitään
taloLogger, missä vain SHELL
Koodi:
SHELL1:LOCATION = /bin/cat
SHELL1:PARAMETERS = /home/talo/rossi.txt
SHELL1:REGEXP = ^\s*(?P<rossi_humi>[0-9\.\-]+)\s*$
ja siellä rossi.txt kiinteästi
Koodi:
66.70
seuraavanlainen satunnaisesti
Koodi:
12.11.2014 08:53:46: Starting taloLogger.py (v1.6b).
12.11.2014 09:00:00: SHELL1: ERROR: Error executing Shell data source command
  Command: /bin/cat /home/talo/rossi.txt
  Command output: 66.70
tämä testikoneella, mitä vähemmän toimintoja, sitä useammin kun mittauskäytössä oleva menee jopa tunteja ilman virheilmoitusta

tällainenkin löytyi, josko nuo sanat menevät tässä välillä itseltäkin sekaisin
Koodi:
12.11.2014 03:50:02: SHELL1: ERROR: Shell data does not match: r‚‚bºr²‚j¤ø89.00,7.60

mutta ei mitiä hätiä, kun mittaukset kuitenkin toimivat
 
Vs: Talologger Muuttujat & Ohjelmointi

olisikohan jotenkin mahdollista TaloLoggerin tekemään .xml tiedostoon tehdä sellainen muutos, jotta jos value lukemaa ei ole saatavissa,
Koodi:
<Value></Value>
ei jäisi tyhjäksi, vaan siinä olisi 0.00
se helpottaisi tiedoston jatkokäsittelyä
Koodi:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Log>
  <LogTime>01.12.2014 09:00:00</LogTime>
  <LogData>
    <Position>
      <Key>outdoor</Key>
      <Value>-0.875000</Value>
    </Position>
     <Position>
      <Key>rossi_humi</Key>
      <Value>70.00</Value>
    </Position>
    <Position>
      <Key>rossi_temp</Key>
      <Value>4.70</Value>
    </Position>
    <Position>
      <Key>varaajakulutus</Key>
      <Value></Value>
    </Position>
  </LogData>
</Log>

vielä liittyen aiempaan Radxa rockin ongelmaan luettaessa sarjaporttia
se lisää tuplana line end' it
tässä kuva, kun en copypastella saanut siirrettyä
 

Liitetiedostot

  • ser.png
    ser.png
    14,6 KB · Lukukerrat: 452
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
olisikohan jotenkin mahdollista TaloLoggerin tekemään .xml tiedostoon tehdä sellainen muutos, jotta jos value lukemaa ei ole saatavissa,
Koodi:
<Value></Value>
ei jäisi tyhjäksi, vaan siinä olisi 0.00
se helpottaisi tiedoston jatkokäsittelyä

Yksi kiertokeino vois olla:

Mikäli luennan jälkeen saa suoritettua ohjelmaa niin tuo tiedoston fiksaus pitäs onnistua sed:llä.
sed -i 's/<Value><\/Value>/<Value>0.00<\/Value>/g' data.xml

http://stackoverflow.com/questions/5171901/sed-command-find-and-replace-in-file-and-overwrite-file-doesnt-work-it-empties
 
Vs: Talologger Muuttujat & Ohjelmointi

jolla sanoi:
olisikohan jotenkin mahdollista TaloLoggerin tekemään .xml tiedostoon tehdä sellainen muutos, jotta jos value lukemaa ei ole saatavissa,
Koodi:
<Value></Value>
ei jäisi tyhjäksi, vaan siinä olisi 0.00
se helpottaisi tiedoston jatkokäsittelyä

Tuollainen ratkaisu ei onnistu, koska nyt ei pystytä sitten erottamaan mitenkään, että oliko kyseisen mittapisteen arvo oikeasti 0.00 vai onko kyseessä laiton tulos. Vaihtoehdot käytännössä olisivat jättää koko avain-arvopari pois, jos arvoa ei saatu luettua (tuossa siis <Position>...</Position>-tägien väli jäisi pois kokonaan varaajakulutuksen osalta, jos arvoa ei ole tai täyttää arvo jollain muulla "ei arvoa" tilaa osoittavalla datalla. Esim. "None" tai "NAN" tms.
 
Takaisin
Ylös Bottom