====== 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 ... {{:maison2:configuration_open_wrt: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 1 wire statistics /var/1wire/bus.0/statistics/errors/ EOF cd /var/1wire/bus.0/statistics/errors/ echo "
grep sur valeur différente de 0
" tmp=$(grep [1-9] *) echo $tmp cd /var/1wire/statistics/read/ echo "

/var/1wire/statistics/read/" echo "
success";cat success echo "
tries.ALL";cat tries.ALL cd /var/1wire/statistics/write echo "

/var/1wire/statistics/write" echo "
success";cat success echo "
tries.ALL";cat tries.ALL cd /var/1wire/statistics/threads/overall echo "

var/1wire/statistics/threads/overall" echo "
sum";cat sum echo "
num";cat num echo "
now";cat now echo "
max";cat max ?>
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
====== 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 [[maison2:configuration_open_wrt:owfs|standard]] sur le routeur * on place {{:maison2:configuration_open_wrt:owfs-2.6p8.zip|owfs-2.6p8.zip}} dans /OpenWrt-SDK-brcm-2.4-for-Linux-i686/dl/ * on place le {{:maison2:configuration_open_wrt:owfs-2.6p8_package_make.zip|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) {{:maison2:configuration_open_wrt: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 * {{:maison2:configuration_open_wrt:lib.zip|}} * [[http://home.mag.cx/openwrt/source/mk/kamikaze/package/owfs/]] * [[http://quamquam.org/~tetzlav/freifunk/owfs/|pour kernel2.6...]] ===== on passe par le system de fichier que crée OWFS ===== * {{:maison2:configuration_open_wrt:1wire.zip|}} * [[http://vesta.homelinux.net/wiki/acquisition_senseurs_i2c_fonera_par_messages_xpl.html|sys_log et socket]]