Raspberry pi 3 som mätstation, en vision

Hur ser ditt mät- och/eller hemautomations-system ut? Dela med dig av hur just Ditt projekt ser ut och fungerar, eller hur dina planer ser ut för framtiden. Att läsa om andra är bästa inspirationen.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Fortsättning på förra inlägget:

Fått snurr på ramdisk och fjärranslutning. Nu ska jag försöka få fart på i2c-kortet igen.

Kod: Markera allt

sudo i2cdetect -y 1

Ger bara "Okänt kommando" gissar att det beror på att jag inte har OWFS installerat. Men, frågan är om jag bör installera detta. Pellmon vill ju ha en ow-server om jag minns rätt.
flyvert
Hemautomation - det är mer än en hobby
Inlägg: 393
Blev medlem: 22 aug 2013, 00:48
Ort: Västerås

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av flyvert »

Holton skrev:Fortsättning på förra inlägget:

Fått snurr på ramdisk och fjärranslutning. Nu ska jag försöka få fart på i2c-kortet igen.

Kod: Markera allt

sudo i2cdetect -y 1

Ger bara "Okänt kommando" gissar att det beror på att jag inte har OWFS installerat. Men, frågan är om jag bör installera detta. Pellmon vill ju ha en ow-server om jag minns rätt.
https://www.raspberrypi.org/forums/view ... 4&t=101267
Om traktorn stjälper; håll i ratten, hoppa ej!
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Ibland försöker man göra rätt, fixa backup och allt...
Min pi havererade totalt.
Härligt att jag hade backup... trodde jag!
Men på mitt backup usb var det tomt, hade sparat på en hårddisk med, den verkar dock ha gett upp.

När jag skapade mitt system sist var jag noga med att skriva anteckningar på fysiskt papper. Men jag har väl inte varit så noga med att vara tydlig.

Sedan sist har jag köpt en sån där fin liten låda som rapporterar ute-temp till temperatur.nu så den delen funkar kalas.

Mitt projekt nu gå rut på att sätta upp raspberryn att logga en utetemp, differensen mellan de båda värmepumpssensorerna samt en pooltemp.
Jag har installerat OWFS och i2c med de guider vi har här på wiki.m.nu
Gissningsvis kommer detta att kräva ramdisk, det har jag får till en. Men hur jag än trasslar får jag inte till att ramdiskens innehål dumpar i en mapp vid nedstängning och sedan dumpas tillbaka vid uppstart.
Mina anteckningar om detta ser ut så här:

Kod: Markera allt

Allt här är alltså mina blyertsanteckningar
crontab -e
#@reboot /home/pi/rrddata/create_rrddata_dir.sh
#@reboot /home/pi/rrddata/create_rrd.sh
nu skapas /rrddata/outside_temp.sh i ramdisk
Dumpa rrddata från ramdisk
persistent_db=/var/ramdisk-backup

script för ramdiskdump (observium rakt av)
* * 2 * * ///scripotnamn
/etc/init.d/ramdisk
läste att Observium-scriptet ska placeras i mappen etc/init.d
Den mappen syns inte i komandofönster inte ens som sudo su,
dir kommando ger lista där den syns, men går ej att öppna, finns ingen init.d mapp får man som svar.
I utforskaren kan man öppna init.d men inte skapa någon ny fil...

Tips någon?
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Ja, när det går för lång tid mellan gångerna glömmer man massor... Gör en sammanfattning här över vad som gjorts hittills...
1. ny installation av NOOBS
2. OWFS-guiden, märk dock att i den står OWFS -3.0p0 men nyare versioner skapar mappen 3.1p5
3. Körde båda OWFS-guiderna...
4. RRD-tool guiden
5. skapa ramdisk i /mnt/ramdisk enligt denna guide av Motoz
https://github.com/motoz/PellMon/wiki/H ... asperry-Pi

Sedan är det trevande som gäller... ramdisken ska kopieras, en variant finns här:
https://www.a-netz.de/blog/2013/02/pers ... -ramdisks/
Men det finns oklarheter om var och hur man får till raden:

The init script can be installed by copying (or linking) it to /etc/init.d and calling

Kod: Markera allt

update-rc.d prepare-dirs defaults 02 98
Crontab -e ser ut så här:

Kod: Markera allt

#
# m h  dom mon dow   command
*/5 * * * *           /home/oi/bin/get_temp.sh
*/5 * * * *           sleep 150; /home/pi/bin/get_temp.sh
*/5 * * * *           export LANG=sv_SE.utf8 && /home/pi/bin/graph_temp.pl
*/5 * * * *           sleep 150; export LANG=sv_SE.utf8 && /home/pi/bin/graph_t$


#startar persist-ramdisc
* */2 * * * root /usr/sbin/service persist-ramdisk sync > /dev/null


#startar rrd-scriptet?
#@reboot /home/pi/rrddata/create_rrddata_dir.sh
@reboot /home/pi/rrddata/create_rrd.sh

#samma finns i /etc/cron.d
* /2 * * * root /usr/sbin/service persist-ramdisk sync > /dev/null
I mappen /etc/cron.d lade jag ett dokument restart-ramdisk

Kod: Markera allt

* /2 * * * root /usr/sbin/service persist-ramdisk sync > /dev/null
Likaså skapade jag persist-ramdisk.init i mappen /usr/sbin/ med detta innehåll:

Kod: Markera allt

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          persist-ramdisk
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Required-Start:  
# Required-Stop:   
# Short-Description: Backup / restore ram disk contents during boot / shutdown.
# Description:       Backup / restore ram disk contents during boot / shutdown.
### END INIT INFO
 
PERSIST_STORE=/home/pi/persist
RAMDISK=/home/pi/rrd
 
case "$1" in
  start)
    echo "Restoring ramdisk contents"
    rsync --quiet --archive ${PERSIST_STORE}/ ${RAMDISK}
    ;;
  sync|stop)
    echo "Persisting ramdisk contents"
    rsync --quiet --archive --delete --recursive --force ${RAMDISK}/ ${PERSIST_STORE}
    ;;
  *)
    echo "Usage: /etc/init.d/ramdisk {start|stop|sync}"
    exit 1
    ;;
esac
 
exit 0
Ja, det här är en härva som mest liknar en Carbonara av lösa ändar...
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Jag tänkte att om jag lägger en fil i min ramdisk med namnet test bara för att kolla, så om test ligger där efter omstart så funkar allt... men det gör det inte. Inte heller i min backup-mapp på usd-minnet. Så det är helt enkelt inte helt fungerande än. men en ramdisk där det alltid skapas en rrd-fil, troligen en helt ny en för varje gång. Gissningsvis är det cron-jobbet som kör create_rrd.sh som inte ska vara där.
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Fler underliga ingridienser i soppan...
Kom på att raden @reboot /home/pi/rrddata/create_rrd.sh knappast kan ligga så bra i crontab, det är väl mest för tidsstyrda uppgifter. @reeboot är ju lite annat än tidsstyrt. Skulle in i crontab för att titta på skrivningen, men får svaret att det inte finns någon crontab för användaren pi. Skapar en ny, när crontab ska till att sparas ser jag att den sparas i mappen /tmp/och någon slumpnamnad mapp. Testar att göra en ny ändring i cron och spara igen, då väljs en annan mapp i tmp-katalogen...

Sedan måste det finnas ett ställe där backup-instruktionen ska ligga...

En detalj jag minns skiljer sig från förra gången är att jag inte ombetts att skapa ett lösenord, är jag inte inloggad riktigt?
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Ledsen om den här tråden får allt mer karaktären av lösa anteckningar

Nu har jag en sträng i crontab som kopierar ramdisken till USB-mapp, den verkar dessutom skriva över den gamla filen i den mappen.

Kod: Markera allt

#kopierar ramdisk till usb
*/1 * * * * cp -rf /mnt/ramdisk /media
nu ska man bara få motsvarande att hända med USB-filen tillbaka till ramdisken vidd uppstart...
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Fungerande snuttar:
med detta i crontab -e

Kod: Markera allt

* */2 * * * cp -rf /mnt/ramdisk /media

Allt kopieras från /mnt/ramdisk till USB varannan timme
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Fungerande snuttar

/etc/init.d/ramdisk.sh

Kod: Markera allt

#! /bin/sh 
 # /etc/init.d/ramdisk
 #

 case "$1" in
   start)
     echo "Copying files to ramdisk"
     rsync -av /media/ramdisk-backup/ /mnt/ramdisk/
     echo [`date +"%Y-%m-%d %H:%M"`] Ramdisk Synched from HD >> /var/log/ramdisk_sync.log
     ;;
   sync)
     echo "Synching files from ramdisk to Harddisk"
     echo [`date +"%Y-%m-%d %H:%M"`] Ramdisk Synched to HD >> /var/log/ramdisk_sync.log
     rsync -av --delete --recursive --force /mnt/ramdisk/ /media/ramdisk/
     ;;
   stop)
     echo "Synching logfiles from ramdisk to Harddisk"
     echo [`date +"%Y-%m-%d %H:%M"`] Ramdisk Synched to HD >> /var/log/ramdisk_sync.log
     rsync -av --delete --recursive --force /mnt/ramdisk/ /media/ramdisk/
     ;;
   *)
     echo "Usage: /etc/init.d/ramdisk {start|stop|sync}"
     exit 1
     ;;
 esac

 exit 0
Sedan

Kod: Markera allt

sudo update-rc.d ramdisk.sh defaults
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Ny skrivning i crontab -e som jag tydligen använt förr

Kod: Markera allt

0 0-23/2 * * * root /usr/sbin/service persist-ramdisk sync > /dev/null
och

Kod: Markera allt

0 0-23/2 * * * cp -rf /mnt/ramdisk /media
detta ska ge att ingen skrivning varje mionut, under timmarna 0-23 ska varannan timme en körning göras
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Ja, 1-wire fungerar inte längre och jag får inte igång den heller.

Försökte starta om start1wire.sh men fick:

Kod: Markera allt

sudo update-rc.d start1wire.sh defaults
insserv: warning: script 'K01ramdisk.sh' missing LSB tags and overrides
insserv: warning: script 'ramdisk.sh' missing LSB tags and overrides
när jag försöker ladda om cron får jag:

Kod: Markera allt

sudo cron reload
cron: can't lock /var/run/crond.pid, otherpid may be 417: Resource temporarily unavailable
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Cron
Det verkar vara jag som sabbat läsrättigheterfick ett råd att ominstallera cron

Kod: Markera allt

sudo apt-get install --reinstall cron
Under ominstallationen dök ett meddelande på slutet upp:

Kod: Markera allt

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 66 not upgraded.
Need to get 90.4 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main cron armhf 3.0pl1-127+deb8u1 [90.4 kB]
Fetched 90.4 kB in 0s (162 kB/s)
(Reading database ... 118435 files and directories currently installed.)
Preparing to unpack .../cron_3.0pl1-127+deb8u1_armhf.deb ...
Unpacking cron (3.0pl1-127+deb8u1) over (3.0pl1-127+deb8u1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u6) ...
Setting up cron (3.0pl1-127+deb8u1) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
insserv: warning: script 'K01ramdisk.sh' missing LSB tags and overrides
insserv: warning: script 'ramdisk.sh' missing LSB tags and overrides
och efter ominstallationen fortsätter jag trots allt att få

Kod: Markera allt

cron: can't open or create /var/run/crond.pid: Permission denied
Antar att jag måste reda ut detta innan jag kan komma vidare, om cron inte funkar då är det kört
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Och efter en ominstallatione ser cron ut så här... antar att det inte fanns rättigheter att ominstallera cron

Kod: Markera allt

*/5 * * * *           /home/pi/bin/get_temp.sh
*/5 * * * *           sleep 150; /home/pi/bin/get_temp.sh
*/5 * * * *           export LANG=sv_SE.utf8 && /home/pi/bin/graph_temp.pl
*/5 * * * *           sleep 150; export LANG=sv_SE.utf8 && /home/pi/bin/graph_t$


#startar persist-ramdisc
0 0-23/2 * * * root /usr/sbin/service persist-ramdisk sync > /dev/null
#*/2 * * * * root /usr/sbin/service persist-ramdisk sync > /dev/null

#startar rrd-scriptet?
#@reboot /home/pi/rrddata/create_rrddata_dir.sh
#@reboot /home/pi/rrddata/create_rrd.sh

#samma finns i /etc/cron.d
#/2 * * * * root /mnt/ramdisk > /media/ramdisk-backup


#kopierar ramdisk till usb
#0 0-23/2 * * * cp -rf /mnt/ramdisk /media
0 0-23/2 * * * cp -rf /mnt/ramdisk /media
* * * * * cp -rf /mnt/ramdisk /media

Precis som innan alltså.
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Förbereder för en omladdning av rpi
Backuppar alla textfiler här
Detta är filen persist-ramdisk liggar i /usr/sbin

Kod: Markera allt

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          persist-ramdisk
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Required-Start:  
# Required-Stop:   
# Short-Description: Backup / restore ram disk contents during boot / shutdown.
# Description:       Backup / restore ram disk contents during boot / shutdown.
### END INIT INFO
 
PERSIST_STORE=/media/ramdisk-backup
RAMDISK=/mnt/ramdisk
 
case "$1" in
  start)
    echo "Restoring ramdisk contents"
    rsync --quiet --archive ${PERSIST_STORE}/ ${RAMDISK}
    ;;
  sync|stop)
    echo "Persisting ramdisk contents"
    rsync --quiet --archive --delete --recursive --force ${RAMDISK}/ ${PERSIST_STORE}
    ;;
  *)
    echo "Usage: /etc/init.d/ramdisk {start|stop|sync}"
    exit 1
    ;;
esac
 
exit 0
ramdisk.sh
Denna ligger i /etc/init.d

Kod: Markera allt

#! /bin/sh 
 # /etc/init.d/ramdisk
 #

 case "$1" in
   start)
     echo "Copying files to ramdisk"
     rsync -av /media/ramdisk/ /mnt/ramdisk/
     echo [`date +"%Y-%m-%d %H:%M"`] Ramdisk Synched from HD >> /var/log/ramdisk_sync.log
     ;;
   sync)
     echo "Synching files from ramdisk to Harddisk"
     echo [`date +"%Y-%m-%d %H:%M"`] Ramdisk Synched to HD >> /var/log/ramdisk_sync.log
     rsync -av --delete --recursive --force /mnt/ramdisk/ /media/ramdisk/
     ;;
   stop)
     echo "Synching logfiles from ramdisk to Harddisk"
     echo [`date +"%Y-%m-%d %H:%M"`] Ramdisk Synched to HD >> /var/log/ramdisk_sync.log
     rsync -av --delete --recursive --force /mnt/ramdisk/ /media/ramdisk-backup/
     ;;
   *)
     echo "Usage: /etc/init.d/ramdisk {start|stop|sync}"
     exit 1
     ;;
 esac

 exit 0
Create_rrd.sh i /pi/rrddata

Kod: Markera allt

#!/bin/bash
# Script to create rrd-file 

# 24h with 2,5 min resolution
# 7d with 5 min resolution
# 1y with 10 min resolution
# 20y with 1h resolution

directory="/mnt/ramdisk/"
#filename="temp.rrd"

# Check i file already exists
if [ ! -f "$directory$filename" ]
then
	# File doesn't exist, create new rrd-file
	echo "Creating RRDtool DB for outside temp sensor"
	rrdtool create $directory$filename \
		 --step 150 \
		 DS:tempute:GAUGE:300:-50:60 \
		DS:vp1sensor:GAUGE:300:-50:60 \
		DS:vp2sensor:GAUGE:300:-50:60 \
		DS:pooltemp:GAUGE:300:-50:60 \
		DS:temp:GAUGE:300:-50:60 \
		RRA:AVERAGE:0.5:1:576 \
		 RRA:AVERAGE:0.5:2:2016 \
		 RRA:AVERAGE:0.5:4:52560 \
		 RRA:AVERAGE:0.5:24:175200 \
		 RRA:MAX:0.5:1:5760 \
		 RRA:MAX:0.5:2:2016 \
		 RRA:MAX:0.5:4:52560 \
		 RRA:MAX:0.5:24:175200 \
		 RRA:MIN:0.5:1:5760 \
		 RRA:MIN:0.5:2:2016 \
		 RRA:MIN:0.5:4:52560 \
		 RRA:MIN:0.5:24:175200
	echo "Done!"
else
	echo $directory$filename" already exists, delete it first."
fi
get_temp.sh i /pi/bin

Kod: Markera allt

tempute="28.FFEB7D001602"
vp1="28.FFE45E001602"
#vp2="28.FFD06D001602"
#pooltemp="28.FF495F001602"
#temp="28.FFEB7D001602"
RRDDataDirectory="/mnt/ramdisk/"
RRDDataFile="temp.rrd"

# Get temps form OWFS
tempute=`cat /mnt/1wire/$tempute/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
vp1=`cat /mnt/1wire/$vp1/temperature9|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
#vp2=`cat /mnt/1wire/$vp2/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
#pooltemp=`cat /mnt/1wire/$pooltemp/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
#temp=`cat /mnt/1wire/$temp/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile N:$tempute:$vp1:$vp2:$pooltemp:$temp
echo $tempute:$vp1:$vp2:$pooltemp:$temp
dessutom finns en fil restart_ramdisk i /etc/cron.d men den filen verkar tom just nu
för att göra pi tillgänglig från tex telefon
https://www.modmypi.com/blog/how-to-giv ... ess-update
samt ställ in ssh i Preferences > Raspberry Pi configuration > Interfaces
Användarvisningsbild
hanpa
Tar hemautomation på allvar
Inlägg: 59
Blev medlem: 25 jun 2007, 18:21
Ort: Linköping
Kontakt:

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av hanpa »

Konstigt ställe för att göra backup på... Det går att koppla Dropbox till Rasperry Pi.

Jag kör ett cronjobb varje natt som gör ett arkiv av alla viktiga filer och som läggs på Dropbox, så att det ska vara görbart att återställa efter en krasch, även bra att ha det viktigaste samlat om man uppgraderar till en helt ny dator. Sparar även crontab-isntällningarna via crontab -l >fil. De viktigaste manuella inställningarna jag gör loggar jag i en textfil, om jag kommer ihåg. Även den hamnar på Dropbox.
Skriv svar