Код: Выделить всё
~$ /opt/owfs/bin/owfs -s localhost:3000 /mnt/1-wire
upd: Андрей уже ответил ...
Код: Выделить всё
~$ /opt/owfs/bin/owfs -s localhost:3000 /mnt/1-wire
я бы вообще был бы только рад, если сделаете несколько FAQ для чайников, т.к. таких много... Сделайте и закрепитеAndrey_B писал(а):Для того, чтобы owfs заработал как HTTP-сервер необходимо либо запустить только одну owhttpd, либо работать через owserver.
Это уже пора заносить в какой-то FAQ.
Тогда можно скачать архив с sorceforge.net. Компилировать его, понятное дело, не нужно.
странно , у меня тоже нетуMixman писал(а):Собственно есть такие, кто устанавливал через apt-get install owfs? Где у вас лежит ownet.php?
Код: Выделить всё
root@raspberrypi:~# find / -name ownet.php -print
root@raspberrypi:~#
Не помогает ничего не заносит в базу и не отображает Пробовал разные порты и 2121, и 3000, и 3001, и 4304Andrey_B писал(а):http://sourceforge.net/projects/owfs/
Распаковываются такие архивы так
tar -xvzf имя-архива
Там ищем ownet.php и копируем в нужное нам место.
Код: Выделить всё
<?
$conn=mysql_connect("localhost", "user", "pass");
mysql_select_db("bdname",$conn);
require "/opt/owfs/bin/ownet.php";
$ow=new OWNet("tcp://localhost:2121");
$my_value = $ow->get("28.4DCA39040000/temperature");
$sql = "INSERT INTO tmp_2 VALUES (tmpID, 62, NOW(), $my_value)";
echo $my_value;
mysql_query($sql,$conn);
?>
Код: Выделить всё
<?
ini_set("display_errors", true);
error_reporting(E_ALL);
$conn=mysql_connect("localhost", "user", "pass");
mysql_select_db("bdname",$conn);
require "/opt/owfs/bin/ownet.php";
$ow=new OWNet("tcp://localhost:2121");
$my_value = $ow->get("28.4DCA39040000/temperature");
$sql = "INSERT INTO tmp_2 VALUES (tmpID, 62, NOW(), $my_value)";
echo $my_value;
mysql_query($sql,$conn);
?>
Код: Выделить всё
$sql = "INSERT INTO tmp_2 VALUES (tmpID, 62, NOW(), $my_value)";
Код: Выделить всё
wget http://downloads.sourceforge.net/project/owfs/owfs/2.9p0/owfs-2.9p0.tar.gz
Код: Выделить всё
#!/bin/sh
# /etc/init.d/owfs.sh
MOUNTPOINT='/mnt/1wire';
case "" in
start)
echo "starting script owfs with USB support..";
echo `/opt/owfs/bin/owserver -uall -p 3000`
echo `/opt/owfs/bin/owhttpd -s 3000 -p 3001`
echo `/opt/owfs/bin/owfs -s 3000 /mnt/1wire/`
;;
stop)
echo "stopping script owfs by unloading mount-point ..";
echo `umount $MOUNTPOINT`;
;;
*)
echo "Usage: /etc/init.d/owfs.sh {start|stop}"
exit 1
;;
esac
exit 0
Код: Выделить всё
<?
$conn=mysql_connect("localhost", "user", "pass");
mysql_select_db("dbname",$conn);
require "/opt/owfs/share/php/OWNet/ownet.php";
$ow=new OWNet("tcp://localhost:3000");
$my_value = $ow->get("28.4DCA39040000/temperature");
$my_value = $ow->get("28.4DCA39040000/temperature");
$sql = "INSERT INTO tmp_2 VALUES (tmpID, 62, NOW(), $my_value)";
mysql_query($sql,$conn);
?>
Код: Выделить всё
chmod 1555 /var/my/temp.php
Код: Выделить всё
*/5 * * * * php /var/my/temp.php
А зачем два раза получаете температуру? да ещё с такой точностью. У себя использую temperature9 (вполне хватает) предварительно выполнив simultaneous.Mixman писал(а):Код: Выделить всё
$my_value = $ow->get("28.4DCA39040000/temperature"); $my_value = $ow->get("28.4DCA39040000/temperature");
Код: Выделить всё
function gettemptobase()
{
connectdb();
$ow = new OWNet("tcp://localhost:3000");
$now = date("Y-m-d H:i:s");
$dev=array("28.xxxxxxxxx", "28.xxxxxxxxx", "28.xxxxxxxxx","28.xxxxxxxxx");
$ow->set("/simultaneous/temperature",1);
foreach ($dev as $i => $value)
{
$temp = $ow->get("/$dev[$i]/temperature9");
mysql_query( "INSERT INTO temp_data VALUES (null, '$dev[$i]', $temp, '$now')");
usleep (10000);
}
Код: Выделить всё
<?
include ('/var/smarthome/www/block/function.php');
gettemptobase();
?>
Код: Выделить всё
*/3 * * * * /usr/bin/php -f /путь до get_temp.php &
Код: Выделить всё
if (is_null($temp) or $temp=='')
Код: Выделить всё
function read_ow($devLABEL_ID) {
global $ow;
$dev_addr=get_devPROPS ($devLABEL_ID,"devADDR");
$temp = $ow->read("$dev_addr");
if (is_null($temp) or $temp=='') {
sleep(1);
$uncached = "uncached/".$dev_addr; // <--!!!
$temp = $ow->read("$uncached");
}
return (trim($temp));
Где исправлять?Can't create socket [ow://localhost:3000], errno: 111
Я так понимаю нет рабочего сервера на 3000 порту.gnork писал(а):В своих ковыряниях похоже что-то испортил. При попытке получить температуру выдает вот такое:Где исправлять?Can't create socket [ow://localhost:3000], errno: 111
Код: Выделить всё
$ow->set("/simultaneous/temperature",1);
usleep( 750);
$get_temperature=$ow->read("/".$wire_temperature_id."/temperature");
usleep( 750);
$get_temperature=$ow->read("/".$wire_temperature_id."/temperature");
$temp=round($get_temperature);