Outils pour utilisateurs

Outils du site


maison2:configuration_open_wrt:owfs

current status sur kamikaze 7.09

  • owcapi 2.6p8-4 → à tester mais plus supporté ?
  • owfs 2.6p8-4 → ok testé “ls” correct + led
  • owlib 2.6p8-4
  • owshell 2.6p8-4 → à tester
  • owfs owlib 2.7p5-9 → ok testé “ls” correct + led
  • owfs owlib 2.7p12 → “ls” tres lent …

owfs-2.6p8.zip

install

Update the ipkg repository and install the packages
/# echo "src owfs http://owfs.sourceforge.net/openwrt/kamikaze/packages" >> /etc/ipkg.conf

ipkg update

on install fuse a partir du web site
fuse-utils-2-4	2.4.2-2	 FUSE (utilities)
Install	kmod-fuse-2-4	2.4.34+2.4.2-brcm-2	FUSE (kernel module)
Install	libfuse-2-4

mais après on télécharge par ftp owfs et compagnie pour avoir la release 2.6 (stable)
root@OpenWrt:/tmp# opkg install owlib_2.6p8-4_mipsel.ipk owfs_2.6p8-4_mipsel.ipk

creation d'un fichier de configuration owfs.conf : owfs -c owfs.conf

# Sources
device = /dev/tts/1
# owfs specific
mountpoint = /tmp/1wire/
# Temperature scales
Celsius
# Timeouts (all in seconds)
# cache for values that change on their own
timeout_volatile = 0 # seconds "volatile" values remain in cache
#0 a cause du boutonde sonnette et des capteurs aqua(niveau)
# cache for values that change on command
timeout_stable = 0 # seconds "stable" values remain in cache
#0 a cause de la sonnette et des pompes aqua
# cache for directory lists (non-alarm)
timeout_directory = 60 # seconds "directory" values remain in cache
# cache for 1-wire device location
timeout_presence = 60 # seconds "device presence" (which bus)
timeout_serial = 10 # seconds to wait for serial response
timeout_usb = 250 # seconds to wait for USB response
timeout_network = 250 # seconds to wait for tcp/ip response
timeout_ftp = 250 # seconds inactivity before closing ftp session
#
# Process control 
pid_file =/var/run/owfs.pid 
error_print = 0 # 0-mixed 1-syslog 2-stderr 3-suppressed 
error_level = 9 # increasing noise 
# 
# Display 
# format = f[.]i[[maison2:c# 1-wire address f amily i d code c rc 
format = f.i.c
# 
# Cache 
cache_size = 100000 # maximum cache size (in bytes) or 0 for no limit (default 0) # 



File: /usr/bin/run-owfs
#!/bin/sh

/etc/init.d/owserver start force
/etc/init.d/owfs start force
/etc/init.d/owhttpd start force
/etc/init.d/owftpd start force

1 wire error

on ajoute un menu sous webif grace a script suivant (/www/cgi-bin/webif/_maison_1wire_stat.sh)

#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
header "MAISON" "1 Wire Stat" ""
cat <<EOF
<h2>1 wire statistics</h2>
/var/1wire/bus.0/statistics/errors/
EOF
cd /var/1wire/bus.0/statistics/errors/
echo "<BR>grep sur valeur différente de 0<BR>"
tmp=$(grep  [1-9] *)
echo $tmp 
 
cd /var/1wire/statistics/read/
echo "<BR><BR>/var/1wire/statistics/read/"
echo "<BR>success";cat success
echo "<BR>tries.ALL";cat tries.ALL
 
cd /var/1wire/statistics/write
echo "<BR><BR>/var/1wire/statistics/write"
echo "<BR>success";cat success
echo "<BR>tries.ALL";cat tries.ALL
 
cd /var/1wire/statistics/threads/overall
echo "<BR><BR>var/1wire/statistics/threads/overall"
echo "<BR>sum";cat sum
echo "<BR>num";cat num
echo "<BR>now";cat now
echo "<BR>max";cat max
?>
<? footer ?>
<!--
##WEBIF:name:MAISON:1_Wire_Statistics
-->
fred@Xubuntu:~/WL500GP_File_Structure/tmp/1wire/bus.0/statistics/errors$ grep -v 0 *
CRC8_errors:           2
CRC8_tries:         169
ne fonctionne pas avec 20 a la place de 2 ....

mieux :
fred@Xubuntu:~/WL500GP_File_Structure/tmp/1wire/bus.0/statistics/errors$ grep  [1-9] *
CRC8_errors:           20
CRC8_tries:         169
max_delay:       0.011

maintenant il faudrait substituer les retour chariot par des <BR>

TEST

root@OpenWrt:~/1wire/05.A12C27000000# echo 1 >> PIO

root@OpenWrt:~/1wire/29.488000000000# echo 255 >> PIO.BYTE
root@OpenWrt:~/1wire/29.488000000000# cat PIO.ALL
1,1,1,1,1,1,1,1

pour lire une entree:
root@WL500GP:~/1wire/29.C97F00000000# cat sensed.7
sensed passe a 1 quand l’entrée physique est a 5V

les led etant commandé en low side quand on a PIO.X=1 on a sensed.X=0 et inversement

test du lien serie

============================================================================
root@OpenWrt:/dev# cat /proc/tty/driver/serial
serinfo:1.0 driver:5.05c revision:2001-07-08
0: uart:16550A port:B8000300 irq:3 baud:114583 tx:241 rx:0 RTS|DTR
1: uart:16550A port:B8000400 irq:3 baud:9593 tx:15 rx:0 CTS|DSR|CD
============================================================================

owfs --error_level=9 --error_print=2 --foreground -d /dev/tts/1  /tmp/1wire/
CONNECT: fuse mount point: /tmp/1wire/
   CALL: PARSENAME path=[]
  DEBUG: fuse_mnt_opt=[(null)]
  DEBUG: fuse_open_opt=[(null)]
fusermount: failed to open /dev/misc/fuse: No such file or directory
  DEBUG: owfs: ow_exit(0)
   CALL: Starting Library cleanup
   CALL: Clear Cache
   CALL: Closing input devices
  DEBUG: FreeIn: busmode=1
  DEBUG: COM_close: flush
  DEBUG: COM_close: restore
  DEBUG: COM_close: close
   CALL: Closing outout devices
   CALL: Finished Library cleanup

What do I do if /dev/fuse does not exist?
    275 -----------------------------------------
    276 
    277 Maybe the FUSE module is not loaded. As root, try:
    278 
    279     modprobe fuse
    280 
    281 If nothing changes, as root run:
    282 
    283     mknod /dev/fuse c 10 229
    284 
    285 What do I do if you don't have access to /dev/fuse?
    286 ---------------------------------------------------
    287 
    288 As root run:
    289 
    290     chmod o+rw /dev/fuse


If you don't use udev, you may get this error message:
fusermount: failed to open /dev/fuse: No such device or address
Before loading the fuse kernel module, create the device node manually:
mknod -m 666 /dev/fuse c 10 229

strace owfs -d /dev/ttyS1 /mnt/1-wire/ 

rapport anum suite a cette commande

PIC      164066.349 Data=E3 C1
DS       164068.504 Data=CD
PIC      164325.832 Data • • • FC
PIC      164346.333 Data=C1
PIC      164380.423 Data=17 45 5B 0F 91
DS       164381.512 Data=16 44 5A 00 93
PIC      164396.368 Data=C5
DS       164398.528 Data=CD
===> OK

:/etc/config/owserver : activer la ligne wrt54g
run-owfs

test OWFS

owfs --error_level=9 --error_print=2 -d /dev/tts/1  /tmp/1wire/
CONNECT: fuse mount point: /tmp/1wire/
   CALL: PARSENAME path=[]
  DEBUG: fuse_mnt_opt=[(null)]
  DEBUG: fuse_open_opt=[(null)]
===> OK uniquement OWFS est lancé

par contre pas de rafraichisement periodique

adresse des différents éléments 1 wire

10.3E8702010800    /*DS18S20: 8 CH marron*/
1D.20B709000000  /* capteur de pluie*/
29.488000000000    /*fils pilotes 2408*/
10.B48FB7000800   /*DS18S20: salon */
28.309FC1000000   /*DS18B20: ext */
10.CC610F010800   /*DS18S20: 6 couloir */
28.37A1B2000000  /*DS18B20 sur carte RS232/1W*/
10.F455B7000800   /*DS18S20: garage*/
28.B6AADB000000 /*DS18B20: 7 CH pama*/
10.FD1309010800     /*DS18S20: 9 CH froide*/
28.F4C4DB000000   /*DS18B20: 5 CH lucile*/

28.37A1B2000000 /* température platine WL500Gp */
1D.20B709000000 /* cpt pluie
29.488000000000 /* 2408 fils pilotes ANCIEN*/
29.12CA01000000 /* 2408 fils pilotes */

29.BEC001000000 /* 2408 ctrl jardin */

10.3E8702010800  28.309FC1000000  29.488000000000  statistics
10.B48FB7000800  28.37A1B2000000  29.BEC001000000  structure
10.CC610F010800  28.B6AADB000000  alarm            system
10.F455B7000800  28.ECDEC1000000  bus.0
10.FD1309010800  28.EF63C7010000  settings
1D.20B709000000  28.F4C4DB000000  simultaneous

Stabilité du réseau

avec la configuration par défaut on ne détecte pas ou mal le réseau 1w complet de la maison.

// default PDSRC = 1.37Vus
// default W1LT = 10us
// default DSO/WORT = 8us

avec la configuration :(\owfs-2.6p8\module\owlib\src\c\ow_ds9097U.c)

      // PDSRC = 1.37Vus
      // W1LT = 11us ,PARMSET_Write11us
// DSO/WORT = 10us,PARMSET_SampOff10us

le réseau est visible et stable

modification owfs

apres avoir installé le package owfs-2.6p8 de facon standard sur le routeur

  • on place owfs-2.6p8.zip dans /OpenWrt-SDK-brcm-2.4-for-Linux-i686/dl/
  • on place le package makefile dans /OpenWrt-SDK-brcm-2.4-for-Linux-i686/package/owfs-2.6p/
  • sous ~/openwrt/OpenWrt-SDK-brcm-2.4-for-Linux-i686/ on fait make clean (:!: ceci va ecraser toutes les modifications faites sous /build_mipsel/ voir après)

ow_ds9097_modif.zip

on modifie ~/openwrt/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_mipsel/owfs-2.6p8/module/owlib/src/c/ow_ds9097U.c
on modifie ~/openwrt/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_mipsel/owfs-2.6p8/module/owlib/src/c/ow_ds9097.c
~/openwrt/OpenWrt-SDK-brcm-2.4-for-Linux-i686/make V=99 à V=1
wget http://frederic.simon.free.fr/maison/libow_2.6p8-4FS2_mipsel.ipk
wget http://www.lamaisonsimon.fr/dev/libow_2.6p8-4FS2_mipsel.ipk
ipkg install -force-overwrite libow_2.6p8-4FS2_mipsel.ipk

1 Wire in C

utilisation de OWCAPI

je n'arrive pas à linker OWCAPI malgrès les liens ci dessous, ca me semble un peu lourd pour mes besoins

on passe par le system de fichier que crée OWFS

maison2/configuration_open_wrt/owfs.txt · Dernière modification : 09/2013 de 86.68.156.71