Journal de Benoit Breton - Mot-clé - knx2024-01-05T08:47:26+01:00Benoit BRETONurn:md5:e921e16fa84d2fd6f1764060026a5a33DotclearSynchro NTP sur bus KNX via LINKNXurn:md5:871fab23077410fa80852c60f5de74cb2012-12-12T22:22:00+01:002012-12-18T15:39:00+01:00BenoitDomotiqueknxknxweb <p>Voici une petite procédure qui permet d'envoyer l'heure et la date à des Groupes GA via LinKNX.</p>
<p>J'utilise cette technique pour synchroniser l'heure de mes Z38i avec un serveur NTP au travers de LinKNX.</p>
<p>1°) Coté ETS j'ai ajouté l'objet 0 heure au GA 7/0/10 pareil avec l'objet date au GA 7/0/11</p>
<p><img src="https://blog.bbreton.net/public/.adresse_ga_heure_m.jpg" alt="image GA" title="adresse_ga_heure.JPG, déc. 2012" /></p>
<p>2°) Coté serveur j'ai une tache cron qui fait un :</p>
<p>ntpdate ntp.univ-lyon1.fr</p>
<p>3°) Coté linknx j'ai ajouté dans mon xml :</p>
<p><object type="11.001" id="cur_date" gad="7/0/11" flags="cwtuf">Current Date</object>
<object type="10.001" id="cur_time" gad="7/0/10">Current Time</object></p>
<pre>
</objects>
<rules>
<rule id="cur_time_date">
<condition type="timer" trigger="true">
<every>3600</every>
</condition>
<actionlist>
<action type="set-value" id="cur_time" value="now" />
<action type="set-value" id="cur_date" value="now" />
</actionlist>
</rule>
</rules></pre>
<p>4°) Derrière ça j'ai relancé mon xml avec la commande : linknx -c /var/linknx/monxml.xml</p>
<p>Et hop 3600 seconde plus tard mon Z38I est à jour !</p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0038938636644245";
/* Lien dans billet 3 */
google_ad_slot = "1500916815";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Intégrer du 1wire dans Knxweb avec LUAurn:md5:b8baeae00eb490b57842e6b85bdd09792012-12-12T22:12:00+01:002012-12-18T15:25:24+01:00BenoitDomotiqueknxknxweb <p>Après avoir pas mal galéré à faire fonctionner tout ça je regroupe ici les informations :</p>
<p>1°) Installation de OWFS pour lire les sondes (sources http://loftawattrelos.free.fr)</p>
<p>Tout d’abord, récupérer la source</p>
<p><code>wget <a href="http://sourceforge.net/projects/owfs/files/owfs/2.8p4/owfs-2.8p4.tar.gz">http://sourceforge.net/projects/owfs/files/owfs/2.8p4/owfs-2.8p4.tar.gz</a></code></p>
<p>et ensuite, installer ce dont on a besoin</p>
<p><code>apt-get install libusb-dev perl-base python-dev php5-dev libfuse-dev swig</code></p>
<p><code>tar -xzvfowfs-2.8p4.tar.gz</code>
<code>cd owfs-2.8p4</code></p>
<p><code>./configure –enable-debian –prefix=/usr/local</code></p>
<p><code>make</code></p>
<p><code>make install</code></p>
<p>Brancher la clef usb</p>
<p>Connecter le composant DS18B20</p>
<p>Pour lancer le server</p>
<p><code>owserver -u -p 4304</code></p>
<p>lancer le serveur web</p>
<p><code>owhttpd -u -s localhost:4304 -p 8081</code></p>
<p>et se connecter via votre browser favoris. On y trouve quelque chose sous la forme 81.351F2F000000, c’est la clef usb. Les autres, ce sont les capteurs.</p>
<p>ou via <a href="http://localhost:8081/">http://localhost:8081/</a></p>
<p>2°) Créer le gad qui vas recevoir la valeur</p>
<p><code><object type="9.xxx" id="temp_ext" gad="7/0/1" init="persist" log="true" flags="crtu">Temp Exterieur</object></code></p>
<p>3°) Ajouter le script Lua de jeff2000</p>
<pre><code><rule id="1wire-read"></code>
<code><condition type="timer" trigger="true"></code>
<code><every>2m</every></code>
<code></condition></code>
<code><actionlist></code>
<code><action type="script"></code>
<code>function read1wire(id, objname)</code>
<code>out = io.popen("/usr/local/bin/owread -s localhost:4304 "..id);</code>
<code>value = string.match(out:read("*a"), "<a href="https://blog.bbreton.net/index.php?post/2012/12/12/0-9.%-" title="0-9.%-">0-9.%-</a>+"); </code>
<code>out:close();</code>
<code>if (value ~= nil) then</code>
<code>set(objname, value);</code>
<code>end</code>
<code>end;</code>
<code>read1wire("28.BB9D4D020000/temperature","Temp_Exterieur");</code>
<code></action></code>
<code></actionlist></code>
<code></rule></code></pre>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0038938636644245";
/* Lien dans billet 3 */
google_ad_slot = "1500916815";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>