DS18b20 non si aggiorna il file (Raspbian Jessie / Stretch)

Discussioni relative all'uso di sensori vari (temperatura, umidità, ....)
turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

DS18b20 non si aggiorna il file (Raspbian Jessie / Stretch)

Messaggioda turbuntux » 12/08/2018, 15:00

Ho inserito i sensori ds18b20 sul metern, e il file viene creato regorarmente e popolato con il valore all'avvio del raspy, ma poi più nulla non si aggiorna i valori nel tempo..

il SO è la solarjessi aggiornata e inserito la lettura del valore del ds18b20 nel systemctl tramite la procedura descritta qui:
https://www.flanesi.it/forum/viewtopic.php?f=13&t=1845

PS avevo prima seguito la guida metern 2.20 e poi ho modificato i file così:
in
rc.local

Codice: Seleziona tutto

#sudo /usr/local/bin/ds18b20 0000047f4f44 8


in /etc/cron.d/ds18b20

Codice: Seleziona tutto

#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
# Minute Hour Day of Month Month Day of Week User Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
#2,17,32,47 * * * * root /usr/local/bin/ds18b20 0000047f4f44 8 > /dev/null 2>&1


ho aggiunto gli # in modo che non venisse eseguito niente.

perchè il file viene creato regolarmente e se provo a invocare da riga di comando il file ds81b20 mi restituisce il valore correttodi temperatura e
se provo con [list=]sudo /usr/local/bin/ds18b20 0000047f4f44 8[/list] aggiorna regolarmente il file?

cosa posso controllare e perche non aggioran ogni tot il file?
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.


turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

Re: DS18b20 non si aggiorna il file

Messaggioda turbuntux » 13/08/2018, 12:18

Integrazione:
lo script ds18b20.service l'ho fatto cosi:
/etc/systemd/system/ds18b20.service

Codice: Seleziona tutto

[Unit]
Description=ds18b20

[Service]
Type=oneshot
ExecStart=/usr/local/bin/ds18b20 0000047f4f44 8

[Install]
WantedBy=multi-user.target

l'ho abilitato con

Codice: Seleziona tutto

systemctl enable ds18b20.service

e fatto partire

Codice: Seleziona tutto

system start ds18b20.service


questo è lo status del ds18b20service

Codice: Seleziona tutto

 $ systemctl status ds18b20.service
● ds18b20.service - ds18b20
   Loaded: loaded (/etc/systemd/system/ds18b20.service; enabled)
   Active: inactive (dead) since dom 2018-08-12 22:09:31 CEST; 14h ago
  Process: 328 ExecStart=/usr/local/bin/ds18b20 0000047f4f44 8 (code=exited, status=0/SUCCESS)
 Main PID: 328 (code=exited, status=0/SUCCESS)

ora non capisco perche il sistema non aggiorna periodicamente il file e invece lo scrive sono all'avvio del raspy.

sto impazzendo!!!dove ho sbagliato? help!
grazie
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.

Avatar utente
Flane
Messaggi: 2479
Iscritto il: 16/01/2016, 15:02

Re: DS18b20 non si aggiorna il file

Messaggioda Flane » 14/08/2018, 8:52

Il service ti esegue lo script una sola volta al boot del raspberry (oneshot).
E' normale il comportamento che dici.
Perchè poi vengano aggiornate le letture ogni X minuti devi lasciare il comando in crontab come da mia vecchia guida. ;)

La cartella temporanea utilizzata per memorizzare la lettura ora è /dev/shm e non più /run/shm (anche su poi quest'ultima è un link alla prima).
E' comunque meglio mettere /dev/shm
Modifica quindi il file /usr/local/bin/ds18b20 con:

Codice: Seleziona tutto

#!/bin/sh
DATA="$(ds18b20.py $1)"
echo "$2($DATA*C)" > /dev/shm/metern$2.txt

turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

Re: DS18b20 non si aggiorna il file (Raspbian Jessie / Stretch)

Messaggioda turbuntux » 14/08/2018, 10:00

ora sclero… :oops: :oops: :oops:

ricapitolando..se non ho capito male
con la nuova procedura del systemd si va ad eliminare solo la parte della guida che riguarda il rc.local perché il comando viene già eseguito all'avvio...
vado solo a ripristinare il file ds18b20 in cron.d per l'esecuzione periodica

lo rimetto come nella tua guida?

/etc/cron.d/ds18b20

Codice: Seleziona tutto

#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
# Minute Hour Day of Month Month Day of Week User Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
2,17,32,47 * * * * root /usr/local/bin/ds18b20 0000047f4f44 8 > /dev/null 2>&1


per quanto riguarda la cartella temporanea avevo gia cambiato in /dev/shm


e continua a non aggiornare, è come se non eseguisse il cron.d…

ma la cosa bella è che nella cartella del cron.d, ho il file per la sonda dht11.... e quella funziona regolarmente!! :oops: :oops:
giusto perché non so più dove sbattere la testa,
questo è il file dht22

Codice: Seleziona tutto

#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
# Minute  Hour    Day of Month   Month  Day of Week User Command
# (0-59)  (0-23)  (1-31) (1-12 or Jan-Dec)  (0-6 or Sun-Sat)
2,17,32,47  *      *               *        *    root /usr/local/bin/dht22.sh 11 4 6 > /dev/null 2>&1
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.

Avatar utente
Flane
Messaggi: 2479
Iscritto il: 16/01/2016, 15:02

Re: DS18b20 non si aggiorna il file (Raspbian Jessie / Stretch)

Messaggioda Flane » 14/08/2018, 11:14

Controlla che il file /etc/cron.d/ds18b20 abbia i permessi corretti. Mettili come quello del dht22 oppure a 644
ed eventualmente controlla nel log di sistema se c'è qualche segnalazione di errore.

Me se esegui a mano

Codice: Seleziona tutto

sudo /usr/local/bin/ds18b20 0000047f4f44 8

funziona o ti restituisce qualche errore?

turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

Re: DS18b20 non si aggiorna il file (Raspbian Jessie / Stretch)

Messaggioda turbuntux » 14/08/2018, 22:01

Se esegui il comando a mano

Codice: Seleziona tutto

sudo /usr/local/bin/ds18b20 0000047f4f44 8
, si aggiorna il file con il valore corretto.

dove potrei vedere il log del cron.d o eventuali errori del comando appena dato? (premessa che funziona e esegue tutto regolarmente)

ho controllato i permessi del file dht22.sh e del ds18b20, sono gli stessi e gli stessi proprietari.

Codice: Seleziona tutto

/etc/cron.d$ ls -l
totale 16
-rw-r--r-- 1 root root 332 dic 10  2017 dht22
-rw-r--r-- 1 root root 330 ago 14 14:54 ds18b20
-rw-r--r-- 1 root root 661 gen 24  2016 php5
-rw------- 1 root root 215 ago 26  2017 rpimonitor
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.


turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

Re: DS18b20 non si aggiorna il file (Raspbian Jessie / Stretch)

Messaggioda turbuntux » 26/08/2018, 0:13

Perfetto.. grazie
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.


Torna a “Meters hardware”

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti