19/12/2010, 23:32:44
alors la, j'ai encore la honte , j'ai viré les # (je sais pas
comment), donc c'est ok !
Merci Roby pour ce super code qui a du te prendre 1 temps !!!
Arnaud
On 19 déc, 23:17, chitloft <arnaud.cogn...@laposte.net> wrote:
> Roby, ton script m'intéresse au plus haut point. Mais j'ai 1 soucis...
> si en entrée j'ai 19.9375, le script me ressort 7C9.
>
> Derriere, il me fais donc ceci : /usr/local/bin/groupwrite ip:
> 192.168.0.17 4/6/51 7C9
>
> j'ai 1 trace danslinknx
> Write from 0.0.0 to 4/6/51: C9
> 2010-12-19 23:10:39 [ERROR] ValueObject: Invalid packet received for
> ValueObject (too short)
>
> La définition danslinknxest
> <object id="1w_Temp_SAM" gad="4/6/51" type="9.xxx" flags="cwu"
> init="persist" log="true">Temperature Salle a manger</object>
>
> j'ai un doute que ton code soit 'complet' ? il me semble que je
> devrais avoir qqe chose du style 07 C9 en sortie par ex.
> sinon, je ne comprends vraiment pas ce qu'il se passe. Any help ?
> Merci
> Arnaud
>
> On 21 nov, 16:49, Roby <goo...@macuba.net> wrote:
>
> > Bon, mais personne se moque, j'avais prévu de l'optimiser
>
> > #!/bin/sh
>
> > var=`exec /opt/owfs/bin/owread /1F.156C08000000/main/10.A5A3B5010800/
> > temperature | tr -d " "`
> > #var=-22.06
> > nb=0
> > var=$(echo "$var*100/1" |bc) #/1 pour suppression de la virgule
> > if [ $var -gt 0 ]
> > then
> > while [ $var -gt 2047 ]
> > do
> > nb=$nb+1
> > var=$(echo "$var/2" |bc)
> > done
> > nb=$(echo "$nb*2048" |bc)
> > var=$(echo "ibase=10;obase=16;$var+$nb"|bc)
> > elif [ $var -lt 0 ]
> > then
> > var=$(echo "$var*-1" |bc) #*1 pour revenir en positif
> > while [ $var -gt 2047 ]
> > do
> > nb=$nb+1
> > var=$(echo "$var/2" |bc)
> > done
> > nb=$(echo "$nb*2048" |bc)
> > echo $var
> > var=$(echo "ibase=10;obase=16;4096-$var+$nb+32768-2048"|bc)
> > fi
> > #verification si 4 caract
> > if [ ${#var} = 1 ]
> > then
> > var="00 0${var}"
> > elif [ ${#var} = 2 ]
> > then
> > var="00 ${var}"
> > elif [ ${#var} = 3 ]
> > then
> > var="0${var}"
> > var1=`expr substr $var 1 2`
> > var2=`expr substr $var 3 2`
> > var="${var1} ${var2}"
> > elif [ ${#var} = 4 ]
> > then
> > var1=`expr substr $var 1 2`
> > var2=`expr substr $var 3 2`
> > var="${var1} ${var2}"
> > fi
> > exec /usr/local/bin/groupwrite ip:192.168.5.5 9/5/3 $var
comment), donc c'est ok !
Merci Roby pour ce super code qui a du te prendre 1 temps !!!
Arnaud
On 19 déc, 23:17, chitloft <arnaud.cogn...@laposte.net> wrote:
> Roby, ton script m'intéresse au plus haut point. Mais j'ai 1 soucis...
> si en entrée j'ai 19.9375, le script me ressort 7C9.
>
> Derriere, il me fais donc ceci : /usr/local/bin/groupwrite ip:
> 192.168.0.17 4/6/51 7C9
>
> j'ai 1 trace danslinknx
> Write from 0.0.0 to 4/6/51: C9
> 2010-12-19 23:10:39 [ERROR] ValueObject: Invalid packet received for
> ValueObject (too short)
>
> La définition danslinknxest
> <object id="1w_Temp_SAM" gad="4/6/51" type="9.xxx" flags="cwu"
> init="persist" log="true">Temperature Salle a manger</object>
>
> j'ai un doute que ton code soit 'complet' ? il me semble que je
> devrais avoir qqe chose du style 07 C9 en sortie par ex.
> sinon, je ne comprends vraiment pas ce qu'il se passe. Any help ?
> Merci
> Arnaud
>
> On 21 nov, 16:49, Roby <goo...@macuba.net> wrote:
>
> > Bon, mais personne se moque, j'avais prévu de l'optimiser
>
> > #!/bin/sh
>
> > var=`exec /opt/owfs/bin/owread /1F.156C08000000/main/10.A5A3B5010800/
> > temperature | tr -d " "`
> > #var=-22.06
> > nb=0
> > var=$(echo "$var*100/1" |bc) #/1 pour suppression de la virgule
> > if [ $var -gt 0 ]
> > then
> > while [ $var -gt 2047 ]
> > do
> > nb=$nb+1
> > var=$(echo "$var/2" |bc)
> > done
> > nb=$(echo "$nb*2048" |bc)
> > var=$(echo "ibase=10;obase=16;$var+$nb"|bc)
> > elif [ $var -lt 0 ]
> > then
> > var=$(echo "$var*-1" |bc) #*1 pour revenir en positif
> > while [ $var -gt 2047 ]
> > do
> > nb=$nb+1
> > var=$(echo "$var/2" |bc)
> > done
> > nb=$(echo "$nb*2048" |bc)
> > echo $var
> > var=$(echo "ibase=10;obase=16;4096-$var+$nb+32768-2048"|bc)
> > fi
> > #verification si 4 caract
> > if [ ${#var} = 1 ]
> > then
> > var="00 0${var}"
> > elif [ ${#var} = 2 ]
> > then
> > var="00 ${var}"
> > elif [ ${#var} = 3 ]
> > then
> > var="0${var}"
> > var1=`expr substr $var 1 2`
> > var2=`expr substr $var 3 2`
> > var="${var1} ${var2}"
> > elif [ ${#var} = 4 ]
> > then
> > var1=`expr substr $var 1 2`
> > var2=`expr substr $var 3 2`
> > var="${var1} ${var2}"
> > fi
> > exec /usr/local/bin/groupwrite ip:192.168.5.5 9/5/3 $var