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
Här ett ett bra dokument med saker att tänka på https://pdfserv.maximintegrated.com/en/an/AN148.pdf

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:

Kod: Markera allt

ls /mnt/1wire/ |grep '10\.'| wc -w
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.