Sida 1 av 1
1-wire och owfs
Postat: 30 augusti 2024, 11:13:50
av Oltronix
Jag har några enheter anslutna till ett 1-wire-nät via owfs
10.xxx DS1820 Termometer
20.xxx DS2450 A/D omvandlare
30.xxx DS2760 Batteeri monitor med termometer
81.xxx DS9490 USB to 1-Wire/iButton Adapter
När allt är ok ser det ut så här:
Kod: Markera allt
pi@mumin3:~/datalogger $ ls /mnt/1wire/
10.6DAAC7000800 30.5F7AB5120000 bus.1 statistics uncached
10.ED432F000800 81.95BC31000000 settings structure
20.691A0B000000 alarm simultaneous system
Men ibland/ofta så försvinner DS2450n:
Kod: Markera allt
10.6DAAC7000800 alarm simultaneous system
10.ED432F000800 bus.1 statistics uncached
81.95BC31000000 settings structure
Och ibland tom så här:
Kod: Markera allt
bus.1 settings statistics structure system uncached
Efter ett tag kan alla enheter bli synliga igen. DS2450 är matat med 5V. Vad kan felet vara? Hur skall jag fortsätta felsöka?
Re: 1-wire och owfs
Postat: 30 augusti 2024, 11:24:04
av AndLi
Hur ser nät layouten ut? Många långa grenar ut?
Re: 1-wire och owfs
Postat: 30 augusti 2024, 11:28:18
av ToPNoTCH
Re: 1-wire och owfs
Postat: 30 augusti 2024, 11:42:45
av Oltronix
AndLi skrev: ↑30 augusti 2024, 11:24:04
Hur ser nät layouten ut? Många långa grenar ut?
3 grenar. 2 st c:a 2dm på labbbordet. En med 10.xxx går via inbygga husnätet och KK (koppling box). (modern lägenhet). Jag gissar 20-30m
Re: 1-wire och owfs
Postat: 3 september 2024, 15:03:28
av Oltronix
Det verkar som det blir stabilt efter ett tag. Det verkar vara i början en enhet kopplats in som det krånglar.
Re: 1-wire och owfs
Postat: 3 september 2024, 17:04:21
av guckrum
Man bör lägga ett lager felhantering utanpå owfs. Den gör ju bara ett begränsat antal försök, och det kommer att faila förr eller senare, tex om någon kör en dålig borrmaskin i närheten.
Re: 1-wire och owfs
Postat: 3 september 2024, 22:53:06
av Oltronix
Hur då tycker du?
Jag läser 1-wire termometern med:
Kod: Markera allt
basement_r=`cat /mnt/1wire/$t4/temperature`
sen kollar om basement_r är tom
Kod: Markera allt
if [ -z $basement_r ]
then
basement_r=$init
fi
init==U Detta för rrdtool gillar U bättre än noll.
Jag kan försöka läsa termomtern några ggr innan jag ger upp.
Har du något annat förslag?
edit
Kan förståss även testa:
Kod: Markera allt
ls /mnt/1wire/ |grep 10.| wc -w
ls /mnt/1wire/ |grep 20.| wc -w
Jag vet ju hur många olika enheter jag skall ha. Dock måste jag även lära mig att hantera "." (punkt) när jag söker med grrep
Re: 1-wire och owfs
Postat: 4 september 2024, 08:28:39
av guckrum
Låsa några gånger låter utmärkt, lägg in en paus mellan varje försök också. Och när koden slutligen ger upp så gör den så bra den kan, dvs skickar U (som du ju redan gjort).
Under utveckligen hade jag appendat ett timestamp till en loggfil vid varje misslyckande (*). Då kan du se när och hur ofta det blir fel, och det kan ju underlätta eventuell felsökning.
Skall du greppa efter punkt så behöver den fnuttas och escapeas med en backslash: grep '10\.'
(*)
date >> logfil
eller för mer ISO-datumformat:
date +"%Y%m%d_%H%M%S" >> logfil
logfil måste dock skapas först, tex med "touch logfil".
Re: 1-wire och owfs
Postat: 4 september 2024, 09:54:53
av Oltronix
Fint!
Jag tror jag börjar med att skriva till en logfil om jag inte jag får var jag förväntat mig med:
Loggfiler har en tendens att blir väldigt stora när man glömt bort dem. Bäst att försöka bara få med det man är intresserad av. Vid lämpligt tillfälle skall testa med olika långa kablar och hur det påverkar. Bodde i villa tidigare och hade 6-10 st DS1820 med en del kablar 30-40m i stjärnkoppling. Det fungerade bra, men jag hade ingen koll på hur ofta det var misslyckde läsningar.
"man date" var en spännade läsning. Inte kunde jag ana att det fanns så många möjligheter. Typiskt unix/linux kan jag tycka
Re: 1-wire och owfs
Postat: 4 september 2024, 10:05:16
av guckrum
Du kan ju också skapa en logfil per dygn, tex genom att
Kod: Markera allt
date +"%Y%m%d_%H%M%S" >> logfile`date +"%Y%m%d"`
På högersidan exekveras date inom backtics och resultatet appendas på filnamnet som börjar med "logfile", så idag heter filen "logfile20240904" osv.