Hittade inte mina gamla skript, skrev ett snabbhack i bash som letar igenom owfs-trädet efter sensorer som har temperature-filen och stoppar i värdet i mysql.
Ingen felkontroll osv, men det stoppar in saker i mysql. har inte testat det så mycket.
Kod: Markera allt
#!/bin/sh
#
# Reads temperature and stores them in a mysql database
#
# Database layout
# CREATE TABLE `owfs`.`owfs` (
# `sensor` VARCHAR( 15 ) NOT NULL ,
# `timestamp` DATETIME NOT NULL ,
# `value` VARCHAR( 10 ) NOT NULL
# ) ENGINE = InnoDB;
#
# The user needs INSERT privileges on the owfs database
# GRANT INSERT ON `owfs`. * TO 'owfs'@'localhost' IDENTIFIED BY 'secretpassword';
#
OWFS="/mnt/owfs/uncached"
LOG="/tmp/owfslog"
MYSQL_USER="owfs"
MYSQL_PASS="secretpassword"
MYSQL_DB="owfs"
MYSQL_TABLE="owfs"
#############################################################
# Nothing more to change below
CAT=$(which cat)
DATE=$(which date)
EGREP=$(which egrep)
LS=$(which ls)
MYSQL=$(which mysql)
# Functions
log()
{
msg=$1
echo "`date` - ${msg}" >> ${LOG}
}
for a in `$LS /mnt/owfs/uncached/|$EGREP ^[[:digit:]]`
do
if [ -f ${OWFS}/${a}/temperature ] ;
then
temp=$($CAT ${OWFS}/${a}/temperature)
echo "
INSERT INTO \`${MYSQL_DB}\`.\`${MYSQL_TABLE}\` (
\`sensor\` ,
\`timestamp\` ,
\`value\`
)
VALUES (
'${a}', '`$DATE +"%Y-%m-%d %T"`', '${temp}'
);" | $MYSQL -u ${MYSQL_USER} --password=${MYSQL_PASS} ${MYSQL_TABLE}
else
log "$a is not a temperature sensor, skipping"
fi
done
Det enda du behöver ändra är sökvägen till owfs, variablen heter OWFS.
Och skapa databasen i mysql såklart

Tänkt på att om du kör GRANT kommandot jag klippt in ovan så får användaren ENDAST lägga till nya värden, den får INTE läsa ut nånting...
Jag skapar alltid olika användare för att läsa och skriva till en databas.