Temat: Pytanie o ds18b20, digitemp i cron - dziwne.

Witam panowie, dziwna sprawa, posiadam MR3220 z RS232/usb (ftdi) na nim od dawien dawna dwa czujniki DS18b20 i digitemp do ich obsługi, wszytsko wpisane w CRONTABS i działa super.

Przykład:

/etc/crontabs/root:
0,20,40 * * * * /temperatura/gettemp.sh

/temperatura/gettemp.sh:
echo `digitemp_DS9097 -t0 -q -o "%Y-%m-%d %H:%M:%S %.2C"` >> /temperatura/tempsalon.txt
echo `digitemp_DS9097 -t1 -q -o "%Y-%m-%d %H:%M:%S %.2C"` >> /temperatura/tempout.txt

Problem pojawił się gdy dołączyłem trzeci czujnik, wykonałem przeszukanie magistrali 1wire,
digitempem:

root@xxx:/temperatura# digitemp_DS9097 -s /dev/ttyUSB0 -a -i
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
...
Searching the 1-Wire LAN
283A282D05000022 : DS18B20 Temperature Sensor
28FD0D2E0500009A : DS18B20 Temperature Sensor
283FBD2D050000AC : DS18B20 Temperature Sensor
ROM #0 : 283A282D05000022
ROM #1 : 28FD0D2E0500009A
ROM #2 : 283FBD2D050000AC
Wrote .digitemprc
Jan 03 21:13:49 Sensor 0 C: 13.50 F: 56.30
Jan 03 21:13:50 Sensor 1 C: 3.13 F: 37.63
Jan 03 21:13:51 Sensor 2 C: 53.00 F: 127.40

Program widzi wszystkie czujniki, ale gdy plik gettemp o zmienionym wnętrzu wrzuce pod CRON to czujnik trzeci (nowy) "zawsze" wyrzuca puste dane.

/temperatura/gettemp.sh:
echo `digitemp_DS9097 -t0 -q -o "%Y-%m-%d %H:%M:%S %.2C"` >> /temperatura/tempsalon.txt
echo `digitemp_DS9097 -t1 -q -o "%Y-%m-%d %H:%M:%S %.2C"` >> /temperatura/tempout.txt
echo `digitemp_DS9097 -t2 -q -o "%Y-%m-%d %H:%M:%S %.2C"` >> /temperatura/temppiec.txt


UWAGA: Tylko z pod CRONa nie dostaje temperatury do pliku temppiec.txt bo gdy wywolam z palca w konsoli:

echo `digitemp_DS9097 -t2 -q -o "%Y-%m-%d %H:%M:%S %.2C"` >> /temperatura/temppiec.txt

to plik temppiec.txt zostaje poprawnie wypełniony danymi.

Jak bym nie kombinował to z CRONa nie mogę wywołać danych do pliku temppiec.txt.
Nawet dodając do CRONa osobny skryp wywołujący tylko ten czujnik, odpowiedź jest ta sama.
Z palca zawsze otrzymuję odpowiedź o temperaturze.

O co może tu chodzić? Przecież nie bedę ręcznie dodawał danych do jednego czujnika...?!

2

Odp: Pytanie o ds18b20, digitemp i cron - dziwne.

Zobacz czy czasami w / albo w /root nie masz innego .digitemprc, bez trzeciego sensora.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez mistrzluk 2015-01-03 22:05:24)

Odp: Pytanie o ds18b20, digitemp i cron - dziwne.

Jest tylko jeden.

No więc:


vi /root/.digitemprc:

TTY /dev/ttyUSB0
READ_TIME 1000
LOG_TYPE 0
LOG_FORMAT "%Y-%m-%d %H:%M:%S %.2C"
CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
SENSORS 3
ROM 0 0x28 0x3A 0x28 0x2D 0x05 0x00 0x00 0x22
ROM 1 0x28 0xFD 0x0D 0x2E 0x05 0x00 0x00 0x9A
ROM 2 0x28 0x3F 0xBD 0x2D 0x05 0x00 0x00 0xAC

Niby widzi trzy czujniki.
Jakaś masakra.

Na wszelki wypadek do pliku wywoływanego w CRON gettemp.sh dodałem teraz linijke przeszukiwania magistrali: przed odczytem temperatury:

digitemp_DS9097 -s /dev/ttyUSB0 -a -i


Zobaczymy co z tego wyjdzie.

****************************************

UWAGA: Powyższe pomogło! - choć sprawa jest "bardzo dziwna" ponieważ na 2 sztukach nie było tego problemu.


Pozdrawiam i dziękuję za sugestie.