﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Constellation</title>
	<atom:link href="https://developer.myconstellation.io/feed/" rel="self" type="application/rss+xml" />
	<link>https://developer.myconstellation.io/</link>
	<description>Votre plateforme d&#039;interconnexion</description>
	<lastBuildDate>Mon, 24 Feb 2020 08:34:58 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.11</generator>

<image>
	<url>https://developer.myconstellation.io/wp-content/uploads/2016/02/256x256-e1457476015859.png</url>
	<title>Constellation</title>
	<link>https://developer.myconstellation.io/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Vorwerk : connectez votre robot aspirateur Kobold ou Neato dans Constellation</title>
		<link>https://developer.myconstellation.io/package-library/vorwerk/</link>
					<comments>https://developer.myconstellation.io/package-library/vorwerk/#respond</comments>
		
		<dc:creator><![CDATA[Constellation Documentation Agent]]></dc:creator>
		<pubDate>Sun, 23 Feb 2020 14:41:07 +0000</pubDate>
				<category><![CDATA[Packages]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[Vorwerk]]></category>
		<category><![CDATA[Neato]]></category>
		<category><![CDATA[Vacuum]]></category>
		<category><![CDATA[Robot]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/miscellaneous/vorwerk/</guid>

					<description><![CDATA[<p>Le package Vorwerk vous permet connecter votre robot aspirateur Kobold VR200 ou VR300 dans Constellation.<br />
L'API utilisée par Vorwerk est la même que celle des Neato Botvac, vous pouvez donc également connecter vos robots Botvac.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/package-library/vorwerk/">Vorwerk : connectez votre robot aspirateur Kobold ou Neato dans Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le package Vorwerk vous permet connecter votre robot aspirateur Kobold VR200 ou VR300 dans Constellation.</p>
<p>L&rsquo;API utilisée par Vorwerk est la même que celle des Neato Botvac, vous pouvez donc également connecter vos robots Botvac.</p>
<h3 id="installation">Installation</h3>
<p>Depuis le &quot;Online Package Repository&quot; de votre Console Constellation, installez et déployez le package sur la sentinelle de votre choix (compatible Windows et Linux).</p>
<p>Sur la page de Settings, vous devez obligatoirement définir vos identifiants de connexion au Cloud Vorwerk ou Neato.</p>
<p>Vous pouvez également déployer ce package manuellement dans la configuration de votre Constellation :</p>
<p></p><pre class="crayon-plain-tag">&lt;package name=&quot;Vorwerk&quot;&gt;
  &lt;settings&gt;
    &lt;setting key=&quot;Username&quot; value=&quot;xxxx@yyyyy.com&quot; /&gt;
    &lt;setting key=&quot;Password&quot; value=&quot;xxxxxxx&quot; /&gt;
    &lt;setting key=&quot;Vendor&quot; value=&quot;Vorwerk&quot; /&gt;
  &lt;/settings&gt;
&lt;/package&gt;</pre><p></p>
<h3 id="settings">Settings</h3>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Type</th>
<th>Requis ?</th>
<th>Description du Setting</th>
</tr>
</thead>
<tbody>
<tr>
<td>Username</td>
<td>String</td>
<td>OUI</td>
<td>Nom d&rsquo;utilisateur Vorwerk/Neato</td>
</tr>
<tr>
<td>Password</td>
<td>String</td>
<td>OUI</td>
<td>Mot de passe Vorwerk/Neato</td>
</tr>
<tr>
<td>Vendor</td>
<td>String</td>
<td>NON</td>
<td>Marque du robot : &quot;Vorwerk&quot; ou &quot;Neato&quot; (par défaut Vorwerk)</td>
</tr>
<tr>
<td>RobotPollingInterval</td>
<td>Int</td>
<td>NON</td>
<td>Interval en seconde d&rsquo;interrogation du robot (par défaut 10 sec)</td>
</tr>
<tr>
<td>DashboardPollingInterval</td>
<td>Int</td>
<td>NON</td>
<td>Interval en seconde d&rsquo;interrogation du &quot;dashboard&quot; (par défaut 900 sec soit 15 min)</td>
</tr>
</tbody>
</table>
<h3 id="stateobjects">StateObjects</h3>
<p>Vous retrouverez un StateObject &quot;Dashboard&quot; qui contient les informations sur le compte utilisé ainsi que la liste des robots attachés et un StateObject par robot (le nom du StateObject est le nom du robot) qui contient les informations sur l&rsquo;état du robot.</p>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dashboard</td>
<td>Vorwerk.Models.Dashboard</td>
<td>Information sur le compte et robots attachés</td>
</tr>
<tr>
<td>&lt;&lt; nom du robot &gt;&gt;</td>
<td>Vorwerk.Models.RobotState</td>
<td>Information sur l&rsquo;état du robot</td>
</tr>
</tbody>
</table>
<h3 id="messagecallbacks">MessageCallbacks</h3>
<p>Le package expose 2 MessageCallbacks :</p>
<table>
<thead>
<tr>
<th>Signature</th>
<th>Réponse (saga)</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>StartCleaning(string robotName, bool ecoMode = true)</td>
<td>RobotState</td>
<td>Démarre un néttoyage</td>
</tr>
<tr>
<td>StartSpotCleaning(string robotName, bool ecoMode = true, int height = 200, int width = 200, bool repeat = false)</td>
<td>RobotState</td>
<td>Démarre un néttoyage d&rsquo;une zone</td>
</tr>
<tr>
<td>StopCleaning(string robotName)</td>
<td>RobotState</td>
<td>Arrete le néttoyage</td>
</tr>
<tr>
<td>PauseCleaning(string robotName)</td>
<td>RobotState</td>
<td>Pause le néttoyage</td>
</tr>
<tr>
<td>ResumeCleaning(string robotName)</td>
<td>RobotState</td>
<td>Résume le néttoyage</td>
</tr>
<tr>
<td>SendToBase(string robotName)</td>
<td>RobotState</td>
<td>Démarre un néttoyage</td>
</tr>
</tbody>
</table>
<h3 id="quelques-exemples">Quelques exemples</h3>
<ul>
<li>Lancer le néttoyage en journée lorsque l&rsquo;alarme est armée</li>
<li>Contrôler le robot depuis vos Dashboards HTML ou WPF</li>
</ul>
<h3 id="ressources">Ressources</h3>
<p>Quelques ressources pour le developpement du package :</p>
<ul>
<li>A node module for Vorwerk Kobold VR200 and VR300 : <a href="https://github.com/nicoh88/node-kobold">https://github.com/nicoh88/node-kobold</a></li>
<li>PHP library for Neato Botvac : <a href="https://github.com/tomrosenback/botvac">https://github.com/tomrosenback/botvac</a></li>
<li>Neato Javascript SDK : <a href="https://github.com/NeatoRobotics/neato-sdk-js">https://github.com/NeatoRobotics/neato-sdk-js</a></li>
<li>Python module for interacting with Neato Botvac Connected vacuum robots : <a href="https://github.com/stianaske/pybotvac">https://github.com/stianaske/pybotvac</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/package-library/vorwerk/">Vorwerk : connectez votre robot aspirateur Kobold ou Neato dans Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/package-library/vorwerk/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constellation SDK 1.8.6 : extension asynchrone et fin du support pour Visual Studio 2012 et 2013</title>
		<link>https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/</link>
					<comments>https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/#comments</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Thu, 13 Jun 2019 13:58:01 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6330</guid>

					<description><![CDATA[<p>Peu de temps après la version 1.8.5 annonçant le support de Visual Studio 2019, le SDK sort une nouvelle mise à jour, la version 1.8.6. Extension Visual Studio « Asynchrone » La grande nouveauté de cette mise à jour est la réécriture</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/">Constellation SDK 1.8.6 : extension asynchrone et fin du support pour Visual Studio 2012 et 2013</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Peu de temps après <a href="/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/">la version 1.8.5 annonçant</a> le support de Visual Studio 2019, le SDK sort une nouvelle mise à jour, la version 1.8.6.</p>
<h3>Extension Visual Studio « Asynchrone »</h3>
<p>La grande nouveauté de cette mise à jour est la réécriture du « package » Visual Studio en « package asynchrone ».</p>
<p>La notion d&rsquo;extension (ou package) « asynchrone » a été introduite depuis la version 2015 de Visual Studio (14.0) afin de charger les extensions non plus au démarrage de VS de manière séquentielle mais de façon asynchrone, sans bloquer ou ralentir le démarrage de l&rsquo;IDE.</p>
<p>L&rsquo;extension Visual Studio du SDK Constellation a un temps d&rsquo;initialisation extrêmement rapide et est restée depuis sa première version en Mars 2015 un package « classique » et non asynchrone.</p>
<p>Seulement depuis les dernières versions de Visual Studio, les extensions « non-asynchrones » sont désormais considérées comme obsolètes et sont/seront automatiquement désactivées dans l&rsquo;IDE :</p>
<p><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning.png"><img loading="lazy" class="alignnone wp-image-6331 aligncenter colorbox-6330" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning.png" alt="" width="450" height="44" srcset="https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning.png 960w, https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning-300x29.png 300w, https://developer.myconstellation.io/wp-content/uploads/2019/06/vs16-sdk-warning-768x75.png 768w" sizes="(max-width: 450px) 100vw, 450px" /></a></p>
<p>C&rsquo;est pourquoi la roadmap concernant le SDK a été accéléré afin de porter le SDK dans une extension de type « asynchrone ».</p>
<p>Le SDK n&rsquo;est donc plus initialisé au démarrage de Visual Studio, mais en tache de fond afin de se conformer aux nouvelles exigences en matière de performance et UX de l&rsquo;IDE de Microsoft.</p>
<h3>Fin du support pour Visual Studio 2012 et 2013</h3>
<p>La migration vers cette notion de « package asynchrone » (introduite depuis VS2015) met de côté Visual Studio 2012 et Visual Studio 2013.</p>
<p>Comme le support officiel de Microsoft pour ces deux versions de l&rsquo;IDE a déjà pris fin, le SDK Constellation ne supportera plus non plus ces deux versions.</p>
<p>Ainsi, à compter de cette version du SDK 1.8.6, nous supportons officiellement Visual Studio 2015 (14.x), VIsual Studio 2017 (15.x) et  le nouveau Visual Studio 2019 (16.x)</p>
<p>Pour installer ou mettre à jour votre SDK, rien de plus simple, lancez simplement le Web Platform Installer et sélectionnez “<em>Constellation SDK</em>” dans la liste des composants à installer/mettre à jour. <div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-1').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6330"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-1">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(1);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails1" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div></p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/">Constellation SDK 1.8.6 : extension asynchrone et fin du support pour Visual Studio 2012 et 2013</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/constellation-sdk-1-8-6/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Mise à jour de la Console 1.8.5</title>
		<link>https://developer.myconstellation.io/blog/mise-jour-de-la-console-1-8-5/</link>
					<comments>https://developer.myconstellation.io/blog/mise-jour-de-la-console-1-8-5/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Thu, 13 Jun 2019 13:17:55 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Console]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6317</guid>

					<description><![CDATA[<p>La Console Constellation a suivi plusieurs mises à jour sur le canal “Beta” depuis le début de l’année avant d&#8217;être promue en version 1.8.5 officiellement sur le canal Stable. Cet article vous présente les nouveautés de cette mise à jour.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/mise-jour-de-la-console-1-8-5/">Mise à jour de la Console 1.8.5</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>La Console Constellation a suivi plusieurs mises à jour sur le canal “Beta” depuis le début de l’année avant d&rsquo;être promue en version 1.8.5 officiellement sur le canal Stable. Cet article vous présente les nouveautés de cette mise à jour.</p>
<h3>Amélioration des performances</h3>
<p>Le fait le plus marquant de cette version 1.8.5 est l’amélioration des performances notamment en ce qui concerne les explorateurs de <a href="/constellation-platform/constellation-console/stateobjects-explorer/">StateObject</a> et <a href="/constellation-platform/constellation-console/messagecallbacks-explorer/">MessageCallbacks</a>.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/image-3.png"><img class="colorbox-6317"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Explorers" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/image_thumb-3.png" alt="Explorers" width="204" height="95" border="0" /></a></p>
<p align="left">Là où une Constellation avec des milliers de SO/MC pouvait avoir du mal à être explorée depuis la Console, la réécriture du modèle de “binding” sur ces pages permette maintenant une navigation fluide.</p>
<h3>Support de la recherche</h3>
<p>Le “<a href="/constellation-platform/constellation-console/configuration-editor/">Configuration Editor</a>” permettant d’éditer directement la configuration de votre Constellation se dote de différentes fonctions facilitant l’édition comme la Recherche, le remplacement ou encore le “aller à la ligne” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/image.png"><img class="colorbox-6317"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Support de la recherche" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/image_thumb.png" alt="Support de la recherche" width="454" height="192" border="0" /></a></p>
<p>Pour vous aider avec les différentes fonctions et raccourcis ajoutés, un écran d’aide a été ajouté :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/image-1.png"><img class="colorbox-6317"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Raccourcis clavier" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/image_thumb-1.png" alt="Raccourcis clavier" width="354" height="250" border="0" /></a></p>
<h3>Support des types Nullable&lt;T&gt;</h3>
<p>Jusqu’à présent les paramètres de MessageCallback ou propriété d&rsquo;objet de type “Nullable&lt;T&gt;” n’étaient pas pris en compte dans le “MessageCallback Explorer”. C’est désormais le cas avec la version 1.8.5 ce qui vous permettra de tester vos MC avec des types Nullable.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/image-2.png"><img class="colorbox-6317"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Support des types Nullable" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/image_thumb-2.png" alt="Support des types Nullable" width="454" height="193" border="0" /></a></p>
<p>Aussi les valeurs par défaut pour les champs “Bool” ou “Enum” sont également supportés.</p>
<h3>Des petits détails</h3>
<p>En vrac :</p>
<ul>
<li>Il est désormais possible de copier dans le presse-papier (Ctrl+C) la sortie de la Console Log</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/image-4.png"><img class="colorbox-6317"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/image_thumb-4.png" alt="image" width="454" height="113" border="0" /></a></p>
<ul>
<li>Il y a une demande de confirmation à chaque fermeture de modale si des changements sont en attente d’enregistrement</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/06/image-5.png"><img class="colorbox-6317"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Confirmation" src="https://developer.myconstellation.io/wp-content/uploads/2019/06/image_thumb-5.png" alt="Confirmation" width="354" height="87" border="0" /></a></p>
<ul>
<li>L&rsquo;expérience sur mobile est améliorée</li>
<li>Mise à niveau des librairies utilisées par la Console Constellation (jQuery 3.4.1, AngularJS 1.7.8, SignalR 2.4.1, jQueryTerminal 2.6.1, UI Bootstrap 2.5, CodeMirror 5.47)</li>
</ul>
<p align="left">Comme d’habitude, relancez le “<a href="/getting-started/premiers-pas-avec-constellation/">Web Platform Installer</a>” sur Windows ou Linux pour mettre à jour votre Console.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/mise-jour-de-la-console-1-8-5/">Mise à jour de la Console 1.8.5</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/mise-jour-de-la-console-1-8-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TPLinkSmartHome : Prises et autres périphériques connectés</title>
		<link>https://developer.myconstellation.io/package-library/tplinksmarthome/</link>
					<comments>https://developer.myconstellation.io/package-library/tplinksmarthome/#respond</comments>
		
		<dc:creator><![CDATA[Constellation Documentation Agent]]></dc:creator>
		<pubDate>Wed, 29 May 2019 13:21:06 +0000</pubDate>
				<category><![CDATA[Packages]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[TPLink]]></category>
		<category><![CDATA[Plug]]></category>
		<category><![CDATA[TPLinkSmartHome]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/miscellaneous/tplinksmarthome/</guid>

					<description><![CDATA[<p>Le package TPLinkSmartHome vous permet de contrôler et monitorer les périphériques TPLink Smart Home (kasa smarthome).<br />
ATTENTION, pour le moment seules les prises HS100 et HS110 sont prises en charge par ce package.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/package-library/tplinksmarthome/">TPLinkSmartHome : Prises et autres périphériques connectés</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le package TPLinkSmartHome vous permet de contrôler et monitorer les périphériques TPLink Smart Home (kasa smarthome).<br />
<strong>ATTENTION, pour le moment seules les prises HS100 et HS110 sont prises en charge par ce package.</strong></p>
<h3 id="installation">Installation</h3>
<p>Depuis le “Online Package Repository” de votre Console Constellation, installez et déployez le package sur la sentinelle de votre choix (compatible Windows et Linux).</p>
<p>Sur la page de Settings, vous devez obligatoirement définir un ou plusieurs périphériques.</p>
<p>Par exemple :</p>
<p></p><pre class="crayon-plain-tag">[{
        &quot;HostName&quot;: &quot;192.168.0.123&quot;,
        &quot;Type&quot;: &quot;PlugWithEnergyMeter&quot;
        }, {
        &quot;HostName&quot;: &quot;192.168.0.234&quot;,
        &quot;Type&quot;: &quot;Plug&quot;
    }]</pre><p></p>
<p>Vous pouvez également déployer ce package manuellement dans la configuration de votre Constellation :</p>
<p></p><pre class="crayon-plain-tag">&lt;package name=&quot;TPLinkSmartHome&quot;&gt;
    &lt;settings&gt;
        &lt;setting key=&quot;poolingInterval&quot; value=&quot;2000&quot; /&gt;
        &lt;setting key=&quot;devices&quot;&gt;
            &lt;content&gt;[{
            &quot;HostName&quot;: &quot;192.168.0.123&quot;,
            &quot;Type&quot;: &quot;PlugWithEnergyMeter&quot;
        }, {
            &quot;HostName&quot;: &quot;192.168.0.234&quot;,
            &quot;Type&quot;: &quot;PlugWithEnergyMeter&quot;
        }]&lt;/content&gt;
        &lt;/setting&gt;
    &lt;/settings&gt;
&lt;/package&gt;</pre><p></p>
<h3 id="settings">Settings</h3>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Type</th>
<th>Requis ?</th>
<th>Description du Setting</th>
</tr>
</thead>
<tbody>
<tr>
<td>devices</td>
<td>JsonObject</td>
<td>OUI</td>
<td>liste de périphériques</td>
</tr>
<tr>
<td>poolingInterval</td>
<td>int</td>
<td>NON</td>
<td>interval en millisecondes entre deux récupération de l&rsquo;état des périphériques (défaut : 2000ms)</td>
</tr>
</tbody>
</table>
<h3 id="stateobjects">StateObjects</h3>
<p>Vous retrouverez 1 StateObject publié par périphérique par le package :</p>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>TPLink-##Hostname##</td>
<td>JsonObject</td>
<td>les informations d&rsquo;un périphérique</td>
</tr>
</tbody>
</table>
<h3 id="messagecallbacks">MessageCallbacks</h3>
<p>Le package expose 3 MessageCallbacks :</p>
<table>
<thead>
<tr>
<th>Signature</th>
<th>Réponse (saga)</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>GetDailyStat(string hostname, int? year = null, int? month = null)</td>
<td>JsonObject</td>
<td>Les statistiques d&rsquo;utilisation quotidiennes pour une année et un mois donné (Pour les prises HS110 uniquement)</td>
</tr>
<tr>
<td>GetMonthStat(string hostname, int? year = null)</td>
<td>JsonObject</td>
<td>Les statistiques d&rsquo;utilisation mensuelles pour une année donnée (Pour les prises HS110 uniquement)</td>
</tr>
<tr>
<td>SetOutputState(string hostname, bool state)</td>
<td>void</td>
<td>Change l&rsquo;état (ON/OFF) d&rsquo;une prise (Pour les prises HS100 et HS110 uniquement)</td>
</tr>
<tr>
<td>SetLedOff(string hostname, bool isOff)</td>
<td>Object</td>
<td>Change l&rsquo;état (ON/OFF) de la LED d&rsquo;une prise (Pour les prises HS100 et HS110 uniquement)</td>
</tr>
</tbody>
</table>
<h3 id="quelques-exemples">Quelques exemples</h3>
<ul>
<li>Surveiller la consommation d&rsquo;une prise connectée</li>
<li>Contrôler à distance une prise connectée, éteindre la nuit certaines prises etc.</li>
</ul>
<h3 id="license">License</h3>
<p>Apache License</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/package-library/tplinksmarthome/">TPLinkSmartHome : Prises et autres périphériques connectés</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/package-library/tplinksmarthome/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OrangeTV : pilotez votre décodeur TV Orange</title>
		<link>https://developer.myconstellation.io/package-library/orangetv/</link>
					<comments>https://developer.myconstellation.io/package-library/orangetv/#respond</comments>
		
		<dc:creator><![CDATA[Constellation Documentation Agent]]></dc:creator>
		<pubDate>Thu, 23 May 2019 13:37:30 +0000</pubDate>
				<category><![CDATA[Packages]]></category>
		<category><![CDATA[Orange]]></category>
		<category><![CDATA[décodeur]]></category>
		<category><![CDATA[Livebox]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[OrangeTV]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/miscellaneous/orangetv/</guid>

					<description><![CDATA[<p>Documentation en cours de rédaction! Connect your Orange Set-top box (Orange LiveBox TV) to Constellation StateObjects State : the current state of the Set-top box (with the current standby state, current context, current played media, etc.) MessageCallbacks SwitchTo(string epgId) :</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/package-library/orangetv/">OrangeTV : pilotez votre décodeur TV Orange</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Documentation en cours de rédaction!</p>
<p>Connect your Orange Set-top box (Orange LiveBox TV) to Constellation</p>
<h3 id="stateobjects">StateObjects</h3>
<ul>
<li>State : the current state of the Set-top box (with the current standby state, current context, current played media, etc.)</li>
</ul>
<h3 id="messagecallbacks">MessageCallbacks</h3>
<ul>
<li>SwitchTo(string epgId) : Switches to EPG identifier</li>
<li>SwitchToChannel(Channel channel) : Switches to channel</li>
<li>SendKey(Key key, PressKeyMode mode = PressKeyMode.SinglePress) : Sends the remote controller key</li>
<li>RefreshState() : Refreshes the current state</li>
</ul>
<h3 id="installation">Installation</h3>
<p>Declare the package in a Sentinel with the following configuration :</p>
<p></p><pre class="crayon-plain-tag">&lt;package name=&quot;OrangeTV&quot;&gt;
  &lt;settings&gt;
    &lt;setting key=&quot;Hostname&quot; value=&quot;192.168.x.x&quot; /&gt;
  &lt;/settings&gt;
&lt;/package&gt;</pre><p></p>
<h3 id="license">License</h3>
<p>Apache License</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/package-library/orangetv/">OrangeTV : pilotez votre décodeur TV Orange</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/package-library/orangetv/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Support de Python 3, des environnements virtuels et autres nouveaut&#233;s de l&#8217;API Python</title>
		<link>https://developer.myconstellation.io/blog/support-python-3-et-environnements-virtuels/</link>
					<comments>https://developer.myconstellation.io/blog/support-python-3-et-environnements-virtuels/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Tue, 21 May 2019 12:54:02 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[PythonProxy]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6201</guid>

					<description><![CDATA[<p>L’API Python Constellation embarquée dans le package NuGet Constellation.PythonProxy a connu trois mises à jour depuis la dernière news sur le blog : la version 1.8.5 en Octobre 2018 avec le support des environnements virtuels, la 1.8.6 en Février 2019</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/support-python-3-et-environnements-virtuels/">Support de Python 3, des environnements virtuels et autres nouveaut&eacute;s de l&rsquo;API Python</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>L’API Python Constellation embarquée dans le package NuGet <a href="https://www.nuget.org/packages/Constellation.PythonProxy/">Constellation.PythonProxy</a> a connu trois mises à jour depuis la dernière news sur le blog : la <strong>version 1.8.5 en Octobre 2018</strong> avec le support des<strong> environnements virtuels</strong>, la <strong>1.8.6 en Février 2019</strong> avec plusieurs nouveautés dont le <strong>support de Python 3.x</strong> et pour finir la <strong>version 1.8.7 publiée début Mai 2019</strong> avec quelques ajouts dont la substitution de configuration du Proxy Python par des settings Constellation.</p>
<p>Retour en détail sur les nouveautés …</p>
<h3>Le choix de l’interpréteur Python et les environnements virtuels</h3>
<p>Depuis la version 1.8.5<strong> il est possible de définir la commande pour lancer les scripts Python de votre package</strong>.  Par défaut chaque script était lancé avec la commande “python” ce qui vous obligez à définir la commande “python” dans le PATH de votre système.</p>
<p>Désormais vous pouvez définir dans le fichier <em>App.config</em> de votre package Python, l’attribut “<em>pythonCmd</em>” pour spécifier la commande à lancer. Ci-dessous un exemple avec l’interpréteur Python 2.7 :</p>
<p></p><pre class="crayon-plain-tag">&lt;pythonProxy xmlns="urn:Constellation.PythonProxy" pythonCmd="C:\Python27\python.exe"&gt;
  &lt;scripts&gt;
    &lt;script filename="Scripts\Demo.py" /&gt;
    &lt;script filename="Scripts\Demo2.py" /&gt;
  &lt;/scripts&gt;
&lt;/pythonProxy&gt;</pre><p></p>
<p>L’attribut “<em>pythonCmd</em>” peut-être également défini de manière individuelle pour chaque script. Prenez par exemple la configuration suivante :</p>
<p></p><pre class="crayon-plain-tag">&lt;pythonProxy xmlns="urn:Constellation.PythonProxy" pythonCmd="python3"&gt;
  &lt;scripts&gt;
    &lt;script filename="Scripts\Demo.py" /&gt;
    &lt;script filename="Scripts\Demo2.py" pythonCmd="C:\Users\Sebastien\venv\Scripts\python.exe" /&gt;
    &lt;script filename="Scripts\Demo3.py" pythonCmd="C:\Python27\python.exe" /&gt;
  &lt;/scripts&gt;
&lt;/pythonProxy&gt;</pre><p></p>
<p>Ci-dessus le package Python démarre trois scripts Demo.py, Demo2.py et Demo3.py de la façon suivante :</p>
<ul>
<li>Demo.py sera lancé par l’interpréteur Python 3 (via la commande “python3” défini au niveau global)</li>
<li>Demo2.py sera lancé par un environnement virtuel ici nommé “venv” (défini pour le script)</li>
<li>Demo3.py sera lancé par l’interpréteur Python 2.7 installé dans “C:\Python27”</li>
</ul>
<p><strong>Il devient donc possible d’utiliser des interpréteurs Python spécifiques dont les environnements virtuels. </strong>Notez que si rien n’est défini, les scripts seront lancés par la commande “<em>python</em>”.</p>
<h3>Le support de Python 3.x</h3>
<p>La version 1.8.6 du Proxy Python est désormais compatible Python 2.x et Python 3.x.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-10.png"><img class="colorbox-6201"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Python 3.x" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-9.png" alt="Python 3.x" width="454" height="92" border="0" /></a></p>
<p align="left"><strong>Il est donc maintenant possible d’écrire des packages Constellation en Python 2.x ou en Python 3.x</strong> (ou les deux en même temps, avec ou sans environnements virtuels avec l’attribut “<em>pythonCmd</em>” vu précédemment).</p>
<h3>La configuration du “Proxy” par settings Constellation</h3>
<p>Il est possible d’utiliser des settings Constellation (c’est à dire des variables de configuration que l’on peut administrer depuis la Constellation par l’<a href="/client-api/rest-api/interface-rest-management/#Settings_dune_instance_dun_package">API</a> ou la <a href="/constellation-platform/constellation-console/gerer-packages-avec-la-console-constellation/#Editer_les_settings_dun_package">Console</a>) dans la section de configuration de votre <em>App.config</em> qui défini les scripts et les interpréteurs Python à utiliser.</p>
<p>Pour cela, au démarrage de votre package le Proxy Python remplacera les tags au format <em>$(xxxx)</em> où xxxx est la clé d’un setting de votre package.</p>
<p>Pour bien comprendre imaginez que vous souhaitez changer l’interpréteur Python à utiliser dans les settings Constellation.</p>
<p>Commençons par <a href="/client-api/net-package-api/settings/">déclarer un setting dans le manisfest</a> de votre package que nous nommerons “<em>PythonPath</em>” avec la valeur par défaut “<em>python</em>”. Dans le fichier <em>PackageInfo.xml</em> :</p>
<p></p><pre class="crayon-plain-tag">&lt;Settings&gt;
  &lt;Setting name="PythonPath" defaultValue="python" type="String" /&gt;
&lt;/Settings&gt;</pre><p></p>
<p>Maintenant dans la configuration de notre proxy Python définissons l’attribut “pythonCmd”, c’est à dire la commande à utiliser pour lancer nos scripts Python, par la valeur de notre setting Constellation en utilisant le tag <em>$(PythonPath).</em> Soit dans le fichier <em>App.config</em> :</p>
<p></p><pre class="crayon-plain-tag">&lt;pythonProxy xmlns="urn:Constellation.PythonProxy" pythonCmd="$(PythonPath)"&gt;
  &lt;scripts&gt;
    &lt;script filename="Scripts\Demo.py" /&gt;
  &lt;/scripts&gt;
&lt;/pythonProxy&gt;</pre><p></p>
<p>Dans la Console Constellation, la valeur par défaut est donc “python” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-11.png"><img class="colorbox-6201"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-10.png" alt="image" width="454" height="246" border="0" /></a></p>
<p>Lorsque nous démarrons le package, on peut constater dans les logs que le tag est bien remplacé par la valeur par défaut ici “python”, qui dans mon environnement est un alias vers Python 3.6.8 :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-12.png"><img class="colorbox-6201"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Python 3.6" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-11.png" alt="Python 3.6" width="454" height="34" border="0" /></a></p>
<p>Sans changer notre cas, modifions la valeur du setting “PythonPath” depuis l’interface Web de la Console Constellation en spécifiant la valeur “C:\Python27\python.exe” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-13.png"><img class="colorbox-6201"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-12.png" alt="image" width="454" height="240" border="0" /></a></p>
<p>Redémarrons notre package et on constatera dans les logs que notre script est maintenant exécuté par l’interpréteur Python 2.7.13 :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-14.png"><img class="colorbox-6201"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-13.png" alt="image" width="454" height="49" border="0" /></a></p>
<p align="left">Il devient alors possible de jongler entre les différentes versions des interpréteurs Python ou même les environnements virtuels depuis les settings Constellation sans devoir toucher au package lui-même.</p>
<h3>Utilisation des settings Constellation avant le “Start” et notification de mise à jour</h3>
<p>Depuis vos scripts Python pour récupérer la valeur d’un setting Constellation il faut utiliser la méthode GetSetting :</p>
<p></p><pre class="crayon-plain-tag">Constellation.GetSetting("MonSetting")</pre><p></p>
<p>Jusqu’à la version 1.8.6, on ne pouvait appeller cette méthode <a href="/getting-started/creez-votre-premier-package-constellation-en-python/#Les_bases">qu’après le “Start”</a>, mais désormais vous pouvez l’utiliser juste après l’import de la libraire Constellation, par exemple :</p>
<p></p><pre class="crayon-plain-tag">print("Initilisation")

import Constellation

demo = Constellation.GetSetting("Demo")
demo2 = Constellation.GetSetting("Demo2") or "Sebastien"

print("Setting Test = %s" % Constellation.GetSetting("test"))
print("setting Demo = %s et Demo2 %s" % (demo, demo2))

def Start():
    print("Démarrage !")

Constellation.Start(Start);</pre><p></p>
<p>Vous pouvez ainsi initialiser vos scripts en ayant accès aux settings de votre package Constellation.</p>
<p>Autre nouveauté, l’ajout de l’évènement “<em>OnSettingsUpdated</em>” vous permettant d’être notifié lorsque qu’une valeur d’un setting de votre package est mis à jour dans Constellation.</p>
<p></p><pre class="crayon-plain-tag">import Constellation

def OnSettingsUpdated():
    print("Mise à jour de mes settings depuis Constellation !!")

def Start():
    Constellation.OnSettingsUpdated = OnSettingsUpdated

Constellation.Start(Start);</pre><p></p>
<h3>Autres nouveautés</h3>
<p>Tout d’abord les <a href="/client-api/python-api/messagecallbacks-exposer-des-methodes-python/">MessageCallbacks</a> et  les<a href="/client-api/python-api/consommer-des-stateobjects-en-python/">StateObjectLinks</a>, c’est à dire les méthodes de votre code que vous déclarez pour répondre à un message ou pour suivre un StateObject sont désormais invoquées dans un thread asynchrone pour éviter de bloquer le package.</p>
<p>Ensuite le « Working Directory » (<em>os.getcwd()</em>) est maintenant le répertoire du package et non le répertoire du script Python lui-même.</p>
<p>Il y a eu une revue du mécanisme de ping entre le proxy .NET et la sandbox Python basé maintenant sur le temps CPU et non l’horloge système (afin d’éviter les problèmes liés au changement d’heure).</p>
<p>On peut également citer l’affichage de la stacktrace complète lorsqu’une exception est levée dans le dispatch d’un MessageCallback ou d’un StateObjectLink, l’ajout automatique de la section XML de configuration dans le fichier « app.config » lors de l’installation du package ou encore l’affichage des numéros de version du Proxy python et interpréteur python au démarrage des scripts.</p>
<p>Pour mettre à jour votre API Python, lancez simplement le gestionnaire de package NuGet !</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/support-python-3-et-environnements-virtuels/">Support de Python 3, des environnements virtuels et autres nouveaut&eacute;s de l&rsquo;API Python</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/support-python-3-et-environnements-virtuels/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constellation SDK 1.8.5 avec le support de Visual Studio 2019</title>
		<link>https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/</link>
					<comments>https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Sun, 19 May 2019 11:52:28 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6190</guid>

					<description><![CDATA[<p>Disponible depuis le début de la semaine sur le canal Beta, la nouvelle version du SDK Constellation pour Visual Studio vient d’être publiée sur le canal Stable. Principale nouveauté de cette version : le support de Visual Studio 2019 !</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/">Constellation SDK 1.8.5 avec le support de Visual Studio 2019</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Disponible depuis le début de la semaine sur le canal Beta, la nouvelle version du <a href="/constellation-platform/constellation-sdk/">SDK Constellation</a> pour Visual Studio vient d’être publiée sur le canal Stable.</p>
<p>Principale nouveauté de cette version : le support de <strong>Visual Studio 2019</strong> !</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-8.png"><img class="colorbox-6190"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Visual Studio 2019" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-7.png" alt="Visual Studio 2019" width="454" height="282" border="0" /></a></p>
<p align="left">Vous pourrez donc créer, développer, tester et publier vos packages Constellation depuis Visual Studio 2012, 2013, 2015, 2017 et maintenant 2019 toute édition (de l’édition gratuite Community et l’édition haut de gamme Enterprise).</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-9.png"><img class="colorbox-6190"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Création d'un projet Constellation dans Visual Studio 2019" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-8.png" alt="Création d'un projet Constellation dans Visual Studio 2019" width="454" height="315" border="0" /></a></p>
<p align="left">Pour installer ou mettre à jour votre SDK, rien de plus simple, lancez simplement le Web Platform Installer et sélectionnez “<em>Constellation SDK</em>” dans la liste des composants à installer/mettre à jour. <div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-2').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6190"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-2">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(2);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails2" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div></p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/">Constellation SDK 1.8.5 avec le support de Visual Studio 2019</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/constellation-sdk-1-8-5-avec-le-support-de-visual-studio-2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mises &#224; jour des Web Platform Installers Windows et Linux</title>
		<link>https://developer.myconstellation.io/blog/mises-jour-des-web-platform-installers-windows-et-linux/</link>
					<comments>https://developer.myconstellation.io/blog/mises-jour-des-web-platform-installers-windows-et-linux/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Sat, 18 May 2019 12:45:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[wpi]]></category>
		<category><![CDATA[Web Platform Installer]]></category>
		<category><![CDATA[installation]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6168</guid>

					<description><![CDATA[<p>Les Web Platform Installers (WPI) en version 1.9 pour Windows et Linux sont désormais disponibles. Ils adoptent par la même occasion une nouvelle philosophie pour le versioning en passant le cap “1.8”.  En effet ces deux “logiciels” sont indépendants des</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/mises-jour-des-web-platform-installers-windows-et-linux/">Mises &agrave; jour des Web Platform Installers Windows et Linux</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Les <strong>Web Platform Installers</strong> (WPI) en version 1.9 pour Windows et Linux sont désormais disponibles.</p>
<p>Ils adoptent par la même occasion une nouvelle philosophie pour le versioning en passant le cap “1.8”.  En effet ces deux “logiciels” sont indépendants des composants Constellation, leurs numéros de version évolueront eux aussi de manière indépendante.</p>
<p>Pour rappel les WPI sont deux programmes (un pour Windows et un pour Linux) permettant d’orchestrer les programmes d’installation des composants Constellation. En tant que tel un WPI n’installe pas (directement) Constellation, il se charge de vous guider, de télécharger et d&rsquo;exécuter les programmes d’installation des différents composants que vous souhaitez installer. Ils gèrent également les mises à jour, les configurations des composants à installer, etc…  Pour en savoir plus, <a href="https://developer.myconstellation.io/getting-started/premiers-pas-avec-constellation/">rendez-vous ici</a> !</p>
<p>Petit aperçu des nouveautés des WPI 1.9 publiés ce mois-ci !</p>
<h3>Choix du dépôt des composants Constellation</h3>
<p>Principale nouveauté à la fois implémentée côté Windows et côté Linux, <strong>le choix du dépôt des composants Constellation : Stable Vs  Pre-release (beta).</strong></p>
<p>Historiquement il y avait un WPI Windows “Stable” connecté sur le dépôt “Stable” et une version Beta du WPI connectée sur le dépôt “Beta”. Côté Linux, un seul WPI avec possibilité de changer le dépôt via un argument dans la ligne de commande !</p>
<p>Tout cela a été revu, au démarrage du WPI (sur Windows comme sur Linux), vous aurez la possibilité de sélectionner la source du dépôt pour installer les composants Constellation disponibles sur le canal “Stable” ou sur le canal “Beta” (Pre-release).</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-5.png"><img class="colorbox-6168"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Choix du depot" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-4.png" alt="Choix du depot" width="354" height="159" border="0" /></a></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-6.png"><img class="colorbox-6168"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Choix du depot" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-5.png" alt="Choix du depot" width="354" height="275" border="0" /></a></p>
<h3>Un nouveau bootstrapper Linux</h3>
<p>Le bootstrapper Linux est le script Bash que vous lancez pour démarrer le WPI Linux. Il s’occupe de vérifier et d&rsquo;installer les prérequis (dont Mono, Supervisor, Python etc..) avant de télécharger et lancer la dernière version du WPI Linux disponible.</p>
<p>Ce script a été profondément revu pour mieux gérer l’installation de Mono en fonction de votre OS et de votre architecture CPU ainsi que les autres dépendances.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-7.png"><img class="colorbox-6168"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="WPI Bootstrapper" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-6.png" alt="WPI Bootstrapper" width="354" height="186" border="0" /></a></p>
<p>Il s’assure de pouvoir sélectionner la version la plus récente de Mono selon votre système et améliore également la gestion des erreurs.</p>
<h3>Une révision complète du WPI Linux</h3>
<p>Le WPI Linux a lui aussi suivi une profonde réécriture. Tout d’abord ce programme écrit en Python supporte désormais Python 3. Il est donc <strong>compatible Python 2.7 et Python 3.x</strong>. Il n’est donc plus nécessaire d’installer Python 2.7 sur les systèmes où Python 3.x est déjà installé. Pour les autres nouveautés :</p>
<ul>
<li>Un nouveau « menu général » indiquant clairement les opérations possibles (Installation, Réinstallation, Upgrade ou Downgrade des différents composants en se basant sur les capacités du système et les versions déjà installées)</li>
<li>Installation et enregistrement automatique de la sentinelle sur le serveur Constellation local (détection et configuration automatique)</li>
<li>Suggestion d&rsquo;installation et de configuration automatique de la Console puis de la Sentinelle lors de l&rsquo;installation du serveur</li>
<li>Réécriture du programme WPI en « All-In-One » (un seul programme Python gérant l&rsquo;ensemble du processus d&rsquo;installation pour une meilleure UX)</li>
<li>Correction des problèmes liés aux mots de passe trop complexes</li>
<li>Autre amélioration et correctif mineur</li>
</ul>
<p style="text-align: center;"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-4.png"><img loading="lazy" class="aligncenter colorbox-6168" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb-3.png" alt="image" width="404" height="151" border="0" /></a></p>
<h3>WPI Stable vs Beta</h3>
<p>Afin d&rsquo;harmoniser l&rsquo;ensemble notez également que nous publions désormais les versions « Stable » et « Beta » pour les WPI Windows et Linux en toute indépendance vis à vis des composants Constellation.</p>
<p>Concrètement vous continuerez d&rsquo;utiliser la version « Stable » du WPI <strong>Windows</strong> en téléchargeant l’exécutable suivant : <div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-3').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6168"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-3">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(3);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails3" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div></p>
<p>Pour <strong>Linux</strong> la commande reste également la même à savoir :</p>
<p></p><pre class="crayon-plain-tag">wget -O install.sh https://developer.myconstellation.io/download/installers/install-linux.sh &amp;&amp; chmod +x install.sh &amp;&amp; ./install.sh</pre><p></p>
<p>Seulement comme nous l&rsquo;avons dit ci-dessus, vous serez désormais en mesure de sélectionner le canal de distribution (Stable ou Beta) pour les composants Constellation à installer.</p>
<p>A côté de çà, nous diffusions également sur <a href="/downloads/">la page de téléchargement</a> les versions « Beta » pour chacun des deux WPI.</p>
<p>Autrement dit les WPI et les composants Constellation sont deux choses distincts. Vous pouvez utiliser les WPI en version stable pour installer les composants Constellation en version beta et vice-versa, utiliser les WPI en version beta pour installer des composants Constellation en version stable.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/mises-jour-des-web-platform-installers-windows-et-linux/">Mises &agrave; jour des Web Platform Installers Windows et Linux</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/mises-jour-des-web-platform-installers-windows-et-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Migration du serveur NuGet Constellation vers nuget.org</title>
		<link>https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/</link>
					<comments>https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Fri, 01 Mar 2019 12:24:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[nuget]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6158</guid>

					<description><![CDATA[<p>Historiquement depuis 2015 les différentes libraires Constellation (.NET, Javascript, AngularJS, Python, etc…) étaient diffusées sur un serveur Nuget privé. Il fallait alors sélectionner la source “Constellation” (ajoutée automatiquement par le SDK Constellation pour Visual Studio) pour pouvoir se connecter et</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/">Migration du serveur NuGet Constellation vers nuget.org</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Historiquement depuis 2015 les différentes libraires Constellation (.NET, Javascript, AngularJS, Python, etc…) étaient diffusées sur un serveur Nuget privé.</p>
<p>Il fallait alors sélectionner la source “Constellation” (ajoutée automatiquement par le SDK Constellation pour Visual Studio) pour pouvoir se connecter et récupérer les mises à jour des librairies Constellation.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2019/05/image.png"><img class="colorbox-6158"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="L'ancienne source Nuget" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image_thumb.png" alt="L'ancienne source Nuget" width="354" height="132" border="0" /></a></p>
<p>Pour des raisons pratiques et parce qu’il n’y a plus d’intérêt de conserver ce serveur privé, <strong>tous les packages NuGet sont désormais publiés et disponibles sur la </strong><a href="https://www.nuget.org/profiles/Constellation"><strong>galerie publique NuGet.org</strong></a></p>
<p align="center"><a href="https://www.nuget.org/profiles/Constellation"><img class="colorbox-6158"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="nuget-logo" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/nuget-logo.png" alt="nuget-logo" width="350" height="106" border="0" /></a></p>
<p align="left">Concrètement cela ne change rien du tout côté développement hormis le fait de prendre garde à ne plus utiliser le “Package source” Constellation dans votre gestionnaire NuGet et utiliser la source officielle nommée “nuget.org” ou “nuget v3” :</p>
<p align="center"><img class="colorbox-6158"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Package source" src="https://developer.myconstellation.io/wp-content/uploads/2019/05/image-1.png" alt="Package source" width="454" height="38" border="0" /></p>
<p align="left">A noter également que lorsque vous installerez le SDK Constellation à partir de la version 1.8.5 actuellement disponible l’ancienne source sera automatiquement supprimée évitant ainsi les confusions !</p>
<div class="wpfilebase-file-default" onclick="if('undefined' == typeof event.target.href) document.getElementById('wpfb-file-link-4').click();">
  <div class="icon"><a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" target="_blank" title="Download Constellation Web Platform Installer"><img class="colorbox-6158"  align="middle" src="https://developer.myconstellation.io/wp-includes/images/crystal/interactive.png" alt="Constellation Web Platform Installer" /></a></div>
  <div class="filetitle">
    <a href="https://developer.myconstellation.io/download/installers/Constellation-Web-Platform-Installer-1.9.735.exe" title="Download Constellation Web Platform Installer" target="_blank" id="wpfb-file-link-4">Constellation Web Platform Installer</a>
    <a href="https://developer.myconstellation.io/getting-started/installer-constellation/#wpfb-file-42" class="postlink">» Article</a>
    <br />
    Constellation-Web-Platform-Installer-1.9.735.exe<br />
    Version: 1.9.735<br />
  </div>
  <div class="info">
    1.2 MiB<br />
    2136 Downloads<br />
    <a href="#" onclick="return wpfilebase_filedetails(4);">Détails</a>
  </div>
  <div class="details" id="wpfilebase-filedetails4" style="display: none;">
  <p>Constellation Web Platform Installer pour Windows</p>
  <table border="0">
   
   <tr><td><strong>Auteur:</strong></td><td>MyConstellation.io</td></tr>
   <tr><td><strong>Plateformes:</strong></td><td>Windows</td></tr>
   
   <tr><td><strong>Catégorie:</strong></td><td>Web Platform Installers</td></tr>
   <tr><td><strong>Licence:</strong></td><td>Constellation License Agreement</td></tr>
   <tr><td><strong>Date:</strong></td><td>juin 15, 2020</td></tr>
  </table>
  </div>
 <div style="clear: both;"></div>
</div>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/">Migration du serveur NuGet Constellation vers nuget.org</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/blog/migration-serveur-nuget-constellation-vers-nuget-org/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FriendLeaf : la serre connectée grâce à Constellation</title>
		<link>https://developer.myconstellation.io/tutorials/friendleaf-la-serre-connectee-grace-a-constellation/</link>
					<comments>https://developer.myconstellation.io/tutorials/friendleaf-la-serre-connectee-grace-a-constellation/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Tue, 17 Jul 2018 09:40:50 +0000</pubDate>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Saga]]></category>
		<category><![CDATA[Relais]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[PushBullet]]></category>
		<category><![CDATA[Notification]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=6084</guid>

					<description><![CDATA[<p>Plus besoin de disposer d&#8217;un espace extérieur pour faire pousser vos propres herbes aromatiques, salades et fleurs. Grâce à la serre connectée FriendLeaf, vous pouvez faire pousser plusieurs plantes et vous en occuper facilement. Projet réalisé par Théo DELOOSE, Clara</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/tutorials/friendleaf-la-serre-connectee-grace-a-constellation/">FriendLeaf : la serre connectée grâce à Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><i>Plus besoin de disposer d&rsquo;un espace extérieur pour faire pousser vos propres herbes aromatiques, salades et fleurs. Grâce à la serre connectée FriendLeaf, vous pouvez faire pousser plusieurs plantes et vous en occuper facilement.</i></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure1.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title=" FriendLeaf : la serre connectée grâce à Constellation" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure1_thumb.png" alt="FriendLeaf : la serre connectée grâce à Constellation" width="354" height="266" border="0" /></a></p>
<p>Projet réalisé par Théo DELOOSE, Clara BOMY, Clément NOUGÉ, Mathieu GABRIEL, Marine DAEL et Thaï-Son DANG.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure2.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="L'équipe FriendLeaf" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure2_thumb.png" alt="L'équipe FriendLeaf" width="254" height="208" border="0" /></a></p>
<p><span id="more-6084"></span></p>

<h3>Introduction</h3>
<p>Nous sommes six étudiants en troisième année à l’ISEN Lille. Dans le cadre de notre projet de fin d’année, nous avons conçu une serre connectée dédiée à un usage en intérieur. Celle-ci est équipée d’un système d’éclairage intelligent, d’une pompe d’arrosage automatique et d’un brumisateur intégré afin de garantir la bonne croissance des plantes, rassemblant les conditions nécessaires à leur développement. Pour une plus grande facilité d&rsquo;utilisation, notre serre est associée à une application mobile simple et ludique permettant de suivre en temps réel les données de l’environnement de la serre et de contrôler celle-ci à distance.</p>
<p>En réalisant ce projet, notre but était de proposer une solution de serre connectée à un prix raisonnable et possédant une interface attrayante pour améliorer l’expérience de l’utilisateur.</p>
<p>De plus nous voulions que la serre puisse être intégrée dans différents systèmes facilement pour que l’utilisateur puisse utiliser les données à sa guise.</p>
<h3>Fonctionnement général</h3>
<p>Nous avons pensé<i> FriendLeaf </i>comme un système de monitoring et de pilotage. Il propose en effet de gérer automatiquement l’arrosage, l’humidité et la luminosité de la serre, ou bien de les activer manuellement à notre guise. Il synchronise les données récupérées par les différents capteurs grâce à la plateforme Constellation et active, par le biais d’un relais, les actionneurs. Enfin, <i>FriendLeaf </i>alerte l’utilisateur lorsque le réservoir d’eau est vide. Tout est synchronisé en temps réel comme par magie grâce à Constellation.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure3.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Communication" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure3_thumb.png" alt="Communication" width="400" height="150" border="0" /></a></p>
<p>Nous avons donc ajouté dans la serre les capteurs permettant de relever les informations sur l’humidité de l’air et du sol, sur la température et sur la luminosité.  L’équipement installé comporte aussi une guirlande lumineuse ayant pour but d’éclairer et d’afficher les alertes, une pompe pour le système d’arrosage et un brumisateur permettant d’humidifier l’air.</p>
<p align="center"> <a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure4.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Schéma général de la serre " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure4_thumb.png" alt="Schéma général de la serre " width="450" height="244" border="0" /></a></p>
<h3>Matériel utilisé</h3>
<p>Pour réaliser notre projet, nous nous sommes servis des composants suivants :</p>
<p>Pour la Serre :</p>
<ul>
<li><u><a href="https://www.ikea.com/fr/fr/catalog/products/70186603/">Serre SOCKER Ikea</a></u> (12,99€), Ikea</li>
<li>Bac pour le terreau (1,50€), Jardinerie</li>
<li><u><a href="https://www.amazon.fr/Raspberry-Pi-3-Mod%C3%A8le-B-Carte-m%C3%A8re/dp/B07BDR5PDW/ref=sr_1_cc_3?s=aps&amp;ie=UTF8&amp;qid=1528895423&amp;sr=1-3-catcorr&amp;keywords=raspberry+pi+3B">Carte Raspberry Pi 3B </a></u>(40,80€), Amazon</li>
<li><u><a href="https://www.amazon.fr/Elegoo-Optocoupleur-Continu-Arduino-Raspberry/dp/B06XKST8XC/ref=sr_1_1?s=computers&amp;ie=UTF8&amp;qid=1528792288&amp;sr=1-1&amp;keywords=4%2Bcanaux%2B250V&amp;th=1">Relais 4 canaux</a></u> supportant jusqu’à 5A et 250V (AC) et 30V (DC) (9,99€), Amazon</li>
<li>Câbles de connexion</li>
<li>Boîte de dérivation</li>
</ul>
<p>Pour les capteurs :</p>
<ul>
<li>Humidité et température air : <u><a href="https://www.amazon.fr/SODIAL-Humidite-Numerique-Temperature-Arduino/dp/B00K67XRFC/ref=sr_1_1?ie=UTF8&amp;qid=1529502640&amp;sr=8-1&amp;keywords=dht+11">DHT11</a></u> (1,31€), Amazon</li>
<li>Luminosité : <u><a href="https://www.gotronic.fr/art-capteur-de-luminosite-tsl2561-19569.htm">TSL2561</a></u> (6,95€), Gotronic</li>
<li>Humidité sol : <u><a href="https://www.gotronic.fr/art-capteur-d-humidite-gt110-26091.htm#complte_desc">GT110</a></u> (2,40€), Gotronic</li>
<li>Niveau d’eau : <u><a href="https://www.gotronic.fr/art-detecteur-de-niveau-gravity-sen0205-25296.htm">Gravity SEN0205</a></u> (10,50€), Gotronic</li>
</ul>
<p>Pour le brumisateur :</p>
<ul>
<li>Un <u><a href="https://www.amazon.fr/Ultrasons-Shineus-Humidificateur-Fontaine-Atomisation/dp/B077HSKYN8/ref=sr_1_4?ie=UTF8&amp;qid=1528895226&amp;sr=8-4&amp;keywords=mist+maker">émetteur à ultrasons</a></u> (9,89€), Amazon</li>
<li>Une alimentation pour le brumisateur (24V DC, 1A) (25€), Derotronic, Lille</li>
<li>Un bol</li>
</ul>
<p>Pour le système d’arrosage :</p>
<ul>
<li>Une <u><a href="https://www.amazon.fr/Gugutogo-submersible-%C3%A9lectrique-silencieux-m%C3%A9canique/dp/B07BXJTND4/ref=sr_1_3?s=electronics&amp;ie=UTF8&amp;qid=1529927406&amp;sr=1-3&amp;keywords=pompe+%C3%A0+eau+12v">pompe à eau</a></u> (5,48€), Amazon</li>
<li>Une alimentation 12V 600mA (12€), Derotronic, Lille</li>
<li>Un jerrican (environ 10€)</li>
<li>Un tuyau (ø7mm -ø10mm), Diall</li>
</ul>
<p>Pour l’éclairage :</p>
<ul>
<li>2m de <u><a href="http://www.blachere-illumination-store.com/fr/nos-creations/326-fil-lumiere-blanc-8m-3587880017658.html">guirlandes lumineuses</a></u> (1m LED et 1m incandescent), Blachère</li>
<li>Une alimentation pour fil lumière, Blachère</li>
<li>Colliers de serrage</li>
</ul>
<h3>Conception de la serre</h3>
<h4>Étape 1 : Préparation de la serre</h4>
<p>Dans la serre, nous avons disposé les capteurs, le pot et un bol pour le brumisateur. Nous avons également percé des trous pour pouvoir faire passer tous les capteurs et le tuyau d’arrosage.</p>
<p>Pour ce qui est de la guirlande lumineuse, il nous a fallu percer quelques trous supplémentaires dans les montants de la serre pour y glisser les colliers de serrage.</p>
<p align="center"> <a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure5.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="La serre &quot;nue&quot; " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure5_thumb.png" alt="La serre &quot;nue&quot; " width="354" height="266" border="0" /></a></p>
<h4>Étape 2 : Branchement du relais</h4>
<p align="center"> <a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure6.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Les relais" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure6_thumb.png" alt="Les relais" width="240" height="240" border="0" /></a></p>
<p>Afin de pouvoir contrôler les actionneurs, nous avons branché le relais quatre canaux à une carte Raspberry Pi.</p>
<p>Celui-ci est analogue à un interrupteur. Pour chaque canal, une alimentation est nécessaire et chacun d’entre eux peut être piloté individuellement grâces aux différents pins dont dispose le relais. Il faut également prévoir une masse que l’on branche sur le pin “Gnd” du relais.</p>
<p>Par défaut, lorsque les pins d’entrée ne sont pas alimentés, les canaux du relais délivrent la tension d’alimentation correspondante sur la sortie NC (“Normally Closed”) ou sur la sortie NO (“Normally Open”) dans le cas contraire.</p>
<h4>Etape 3 : Éclairage de la serre</h4>
<p>Pour l’éclairage de notre serre, nous avons percé des trous dans la structure et fixé la guirlande avec des colliers de serrage. Celle-ci doit être alimentée par une tension de 230V (<i>tension secteur</i>) et est composée d’un mètre de LEDs rouge et d’un mètre incandescent jaune.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure7.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Les LEDs" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure7_thumb.png" alt="Les LEDs" width="244" height="160" border="0" /></a></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure7bis.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Les LEDs" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure7bis_thumb.png" alt="Les LEDs" width="244" height="184" border="0" /></a></p>
<p>Elle est connectée au relais par la phase et le neutre, chacun branchés sur un canal différent, afin d’isoler totalement la guirlande du secteur et ainsi éviter tout problème avec le reste des composants.</p>
<h4>Etape 4 : Installation du brumisateur</h4>
<p align="center"> <a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure8.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Le relais avec les LEDs et le brumisateur " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure8_thumb.png" alt="Le relais avec les LEDs et le brumisateur " width="244" height="324" border="0" /></a></p>
<p>Pour augmenter l’humidité de l’air dans la serre, nous avons installé un brumisateur fonctionnant par émissions d’ultrasons. Il nécessite une alimentation de 24V/1A maximum. On le relie ensuite au relais. La masse est directement connectée à l’adaptateur secteur par le biais d’un domino.</p>
<h4>Etape 5 : Installation du système d’arrosage</h4>
<h4 align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure9.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Installation du système d’arrosage" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure9_thumb.png" alt="Installation du système d’arrosage" width="184" height="244" border="0" /></a></h4>
<p>En ce qui concerne l’arrosage, nous disposons d’une pompe submersible qui nécessite une alimentation de 12V et 400mA. Elle est branchée en sortie à un tuyau percé pour un arrosage homogène. Nous la connectons ensuite à un des canaux du relais.</p>
<p align="center"> <a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure10.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Le reservoir" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure10_thumb.png" alt="Le reservoir" width="184" height="244" border="0" /></a></p>
<p>Pour le réservoir, nous avons récupéré un bidon de vinaigre de 5L sur lequel nous avons fait un trou pour le capteur de niveau d’eau et une ouverture pour le remplir et y faire passer la pompe.</p>
<h4>Pour résumer&#8230;</h4>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure11.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Schéma du relais et de la Raspberry" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure11_thumb.png" alt="Schéma du relais et de la Raspberry" width="404" height="301" border="0" /></a></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure12.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Rendu dans la boite " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure12_thumb.png" alt="Rendu dans la boite " width="185" height="244" border="0" /></a></p>
<h4>Étape 6 : Mise en place des capteurs et paramétrage de la carte Arduino</h4>
<p>Nous installons à présent les capteurs d’humidité/température de l’air, d’humidité du sol, de de luminosité et de niveau d’eau. Nous branchons tous ces capteurs aux pins de la Raspberry ou de l’Arduino en faisant attention au fait que :</p>
<ul>
<li>Les capteurs d’humidité du sol et de niveau d’eau se branchent sur du 5V.</li>
<li>Les capteurs d’humidité/température de l’air et de luminosité sont alimentés en 3,3V.</li>
</ul>
<h5>Étape 6.1 : Capteur d’humidité et de température de l’air</h5>
<p>Le capteur d’humidité et de température de l’air fournissant des données numériques, nous le relions directement à notre Raspberry Pi comme montré sur le schéma ci-dessous :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure13.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Capteur d'humidité/température " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure13_thumb.png" alt="Capteur d'humidité/température " width="350" height="134" border="0" /></a></p>
<h5>Étape 6.2 : Capteurs de luminosité, d’humidité du sol et de niveau d’eau</h5>
<p><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure14.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border-width: 0px;" title=" Capteurs et Arduino sur la Raspberry " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure14_thumb.png" alt=" Capteurs et Arduino sur la Raspberry " width="350" height="274" border="0" /></a></p>
<p>Ces capteurs fournissant des données analogiques, nous les avons branchés à une carte Arduino nano qui permet de lire ces données, contrairement à la Raspberry. Elle est reliée directement par USB à la Raspberry Pi comme montré ci-après :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure15.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Arduino et ses capteurs" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure15_thumb.png" alt="Arduino et ses capteurs" width="244" height="184" border="0" /></a><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure16.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Arduino et ses capteurs" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure16_thumb.png" alt="Arduino et ses capteurs" width="244" height="185" border="0" /></a></p>
<h5>Étape 6.3 : Programmation de la carte Arduino</h5>
<p>Dans l’IDE Arduino, nous avons donc commencé par programmer la carte.</p>
<p>Nous ajoutons tout d’abord les librairies d’Adafruit pour pouvoir initialiser le capteur de luminosité et régler le temps d’intégration des données. Dans le gestionnaire de bibliothèque (menu<i> Croquis &gt; Inclure une bibliothèque</i>), nous avons installé les librairies suivantes :</p>
<ul>
<li>Adafruit Unified Sensor</li>
<li>Adafruit TSL2561</li>
</ul>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure17.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Les librairies Arduino " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure17_thumb.png" alt="Les librairies Arduino " width="350" height="76" border="0" /></a></p>
<p>Au démarrage, dans la méthode “setup()”, nous configurons les pins utilisés. Nous décidons d’utiliser les pins analogiques A0 et A1, respectivement pour le capteur d’humidité du sol et du niveau d’eau et les pins A4 et A5 pour le capteur de luminosité :</p>
<p></p><pre class="crayon-plain-tag">void setup(void) 
{
  Serial.begin(9600);
 
  /*Réglage du capteur de luminosité*/
  if(!tsl.begin()) //Initialisation du capteur
  {
    //S'il y a un problème pour détecter le capteur, vérifier votre connexion
    Serial.print("Ooops, pas de capteur détecté... Vérifier votre connexion!");
    while(1);
  }
  
    //Configuration du gain du capteur et du temps d'intégration
    tsl.enableAutoRange(true);          
    tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);    
 
}</pre><p></p>
<p>Dans la méthode “loop()”, nous recueillons ensuite les valeurs des capteurs et les faisons afficher sur le Monitor Série en utilisant les commandes analogRead() et Serial.print()  :</p>
<p></p><pre class="crayon-plain-tag">void loop(void) 
{  
  /*Pour recevoir une nouvelle donnée par le capteur de luminosité*/ 
  sensors_event_t event;
  tsl.getEvent(&amp;event);
 
  //Lecture des pins analogiques pour les données des capteurs d'humidité du sol et de niveau d'eau
  Hum_value = analogRead(A0);
  Liquid_value=analogRead(A1);
 
  //Affichage des valeurs sur le Moniteur série
  Serial.print(event.light,0);
  Serial.print(',');
  Serial.print(map(Hum_value,0,1024,0,100)); //Le capteur d'humidité renvoie une valeur en pourcentage 
  Serial.print(',');
  Serial.println(map(Liquid_value,0,512,0,1)); //Le capteur de niveau d'eau retourne la valeur 1 quand il est en contact avec l'eau, 0 sinon
  delay(5000); //Retard de 5s pour éviter de surcharger le buffer de la Raspberry 
}</pre><p></p>
<p>Nous récupèrerons ensuite les données des différents capteurs à l’aide de la carte Raspberry Pi.</p>
<h3>La programmation vers Constellation</h3>
<p>La programmation vers Constellation est divisée en deux packages : le premier correspond à la récupération des données des capteurs et à l’activation des actionneurs, le second a été créé pour gérer le stockage des données en vue de créer des graphiques sur notre application.</p>
<h4>Etape 1 : Package relatif aux capteurs et actionneurs</h4>
<h5>Etape 1.1 : Acquisition des données des capteurs</h5>
<p>Pour récupérer les données des différents capteurs cités précédemment, nous avons utilisé la librairie “Adafruit_DHT” pour Raspberry Pi et la librairie “serial” qui permet de faire le lien entre l’Arduino-Nano et la Raspberry Pi. Ces valeurs vont nous permettre de décider s’il faut activer ou non les actionneurs tels que la pompe, le brumisateur ou les LED.</p>
<p>La fonction ci-après permet de récupérer les valeurs des différents capteurs.</p>
<p></p><pre class="crayon-plain-tag">def getCapteur():
    humiditeAir, temperature = Adafruit_DHT.read_retry(11,4)
    lux, humiditeSol, eau = ser.readline()[:-2].split(",")</pre><p></p>
<p>Nous avons ensuite créé un State Object rassemblant les valeurs d’humidité du sol, d’humidité de l’air, de température et de luminosité ambiante pour pouvoir les publier sur notre Constellation.</p>
<p></p><pre class="crayon-plain-tag">Constellation.PushStateObject("Capteurs", {"HumiditeSol": int(self.humiditeSol), "HumiditeAir": int(self.humiditeAir), "Temperature": int(self.temperature), "Luminosite": int(self.lux)}, "CapteursInfos")</pre><p></p>
<p align="center"> <a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure18.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title=" Le State Object des capteurs " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure18_thumb.png" alt=" Le State Object des capteurs " width="350" height="169" border="0" /></a></p>
<h5>Etape 1.2 : Activation et désactivation des différents actionneurs (brumisateur, guirlande lumineuse et pompe à eau)</h5>
<p>Comme mentionné précédemment, les actionneurs sont reliés à la Raspberry Pi via un relais quatre canaux. Cela simplifie grandement la programmation : il nous suffit simplement de gérer l’ouverture et la fermeture des relais.</p>
<p>Nous avons donc fait en sorte que chaque actionneur soit associé à son relais grâce à la librairie GPIO de la Raspberry Pi. Ainsi, le code diffère seulement au niveau des numéros des pins utilisés par les actionneurs.</p>
<p>Voici un exemple du code de l’activation et de la désactivation de notre pompe :</p>
<p></p><pre class="crayon-plain-tag">GPIO.setmode(GPIO.BOARD)
GPIO.setup(12,GPIO.OUT)
GPIO.output(12,0)</pre><p></p>
<p>Le pin 12 de la Raspberry est celui relié au relais contrôlant la pompe.</p>
<h5>Etape 1.3 : Automatisation des actionneurs</h5>
<p>Pour réaliser la fonction d’automatisation, nous nous sommes tout d’abord renseignés sur les conditions propices à la bonne croissance des plantes au niveau de l’humidité du sol et de l’air, de la luminosité et de la température de l’air.</p>
<p>Pour le brumisateur, nous avons choisi de l’activer si l’humidité est inférieure à 35% et de le désactiver si l’humidité remonte au dessus de 37%.</p>
<p></p><pre class="crayon-plain-tag">if humiditeAir &gt; 37 and brumisateur:
    DesactiverBrumisateur()
elif humiditeAir &lt; 35 and not brumisateur:
    ActiverBrumisateur()
    time.sleep(1)</pre><p></p>
<p>Pour la pompe, le fonctionnement est différent. Puisque la diffusion de l’eau dans la terre est plus lente, nous activons la pompe pendant 5s avant de la désactiver pendant 30s pour laisser le temps au capteur de ressentir les changements.</p>
<p></p><pre class="crayon-plain-tag">if humiditeSol &lt; 30 and not pompe:
    if self.ticks == 0:
            if self.next_water == 0:
                    ActiverPompe()
            self.next_water = 15
        else:
                    self.next_water -= 1
        elif humiditeSol &gt; 30:
                    self.next_water = 0
    elif pompe:
            self.ticks += 1
               if self.ticks &gt;= 3:
                    DesactiverPompe()
                       self.ticks = 0
time.sleep(1)</pre><p></p>
<p>Ces différentes fonctions sont exécutées dans des threads séparés pour ne pas que le code soit bloquant.</p>
<p>Maintenant, il ne reste plus qu&rsquo;à sécuriser notre système d’arrosage via le capteur de niveau d’eau. Connecté à la carte Arduino nano, ce capteur va nous renvoyer 1 s’il y a de l’eau dans le réservoir, 0 sinon.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure19.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Package PushBullet" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure19_thumb.png" alt="Package PushBullet" width="354" height="163" border="0" /></a></p>
<p>Les données du capteur de niveau d’eau nous permettent d’arrêter le système d’arrosage lorsque le réservoir est presque vide et d’informer l’utilisateur via un PushBullet et l’allumage des LEDs qu’il faut remplir le réservoir.</p>
<p></p><pre class="crayon-plain-tag">Constellation.SendMessage("PushBullet", "PushNote", [ "FriendLead", "Le reservoir d'eau est vide"], Constellation.MessageScope.package)</pre><p></p>
<div align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure20.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Notification sur smartphone" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure20_thumb.png" alt="Notification sur smartphone" width="184" height="364" border="0" /></a></div>
<h4>Étape 2 : Package relatif au stockage des données</h4>
<p>Afin d’historiser les valeurs des capteurs stockées dans un des State Objects du premier package, nous en avons créé un autre que l’on a déployé sur le même serveur que Constellation.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure21.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Enregistrement CSV" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure21_thumb.png" alt="Enregistrement CSV" width="177" height="244" border="0" /></a></p>
<p>Ce package génère une base de données dans un fichier .csv qui est mis à jour toutes les minutes avec les nouvelles données.</p>
<p>Chaque ligne contient la date, l’heure, l’humidité du sol, l’humidité de l’air, la température et la luminosité.</p>
<p></p><pre class="crayon-plain-tag">@Constellation.StateObjectLink(package = "FriendLeafCapteurs", name = "Capteurs")
def RecupValue(stateObject):
    humiditeSol = stateObject.Value.HumiditeSol
    humiditeAir = stateObject.Value.HumiditeAir
    temperature = stateObject.Value.Temperature</pre><p></p>
<p>Nous avons ensuite créé un message callback qui permet de visualiser le fichier CSV dans notre Constellation.</p>
<p></p><pre class="crayon-plain-tag">@Constellation.MessageCallback()
def LireBDD():
'''
: return string : La base de données 
'''
    file = open('BDD.csv','r')
    lines = file.readlines()
    return lines</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure22.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="La saga du Message Callback " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure22_thumb.png" alt="La saga du Message Callback " width="350" height="203" border="0" /></a></p>
<h3>L’interface utilisateur : l’application mobile de monitoring et de pilotage de la serre</h3>
<h4>Étape 1 : Le noyau de l’application</h4>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure23.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="L'application Cordova" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure23_thumb.png" alt="L'application Cordova" width="184" height="364" border="0" /></a></p>
<p>Pour développer l’application mobile nous nous sommes aidés de Cordova, un Framework permettant de créer des application Android et iOS avec des technologies web.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure24.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Cordova" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure24_thumb.png" alt="Cordova" width="240" height="98" border="0" /></a></p>
<p>Nous avons également utilisé jQuery et AngularJS pour faciliter l’interaction entre Javascript et HTML.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure27.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="AngularJS" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure27_thumb.png" alt="AngularJS" width="240" height="143" border="0" /></a></p>
<p>De plus, pour gérer certaines fonctionnalités comme le traitement du CSV ou l’affichage des graphiques, nous avons utilisé des librairies externes comme PapaParser et Chartist. Finalement, pour embellir le CSS, nous avons utilisé le Framework SemanticUI qui ressemble en certain points à Bootstrap.</p>
<h4>Étape 2 : Connexion à Constellation, State Object et Messages Callback</h4>
<p>Pour nous connecter à Constellation avec AngularJS, nous avons utilisé ces lignes de codes :</p>
<p></p><pre class="crayon-plain-tag">Constellation.initializeClient(url_port, sha, "FriendLeaf");

Constellation.onConnectionStateChanged(function (change) {
   //suite
});</pre><p></p>
<p>et une ligne de ce type pour chaque State Object :</p>
<p></p><pre class="crayon-plain-tag">Constellation.registerStateObjectLink("*", "FriendLeafCapteurs", "Actionneurs", "*", function (so) {
    //suite
});</pre><p></p>
<p>Quant aux messages Callback, ils sont envoyés comme suit :</p>
<p></p><pre class="crayon-plain-tag">Constellation.sendMessage({ Scope: 'Package', Args: ['FriendLeafCapteurs'] }, 'DesactiverBrumisateur');</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure28.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Page de configuration" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure28_thumb.png" alt="Page de configuration" width="184" height="364" border="0" /></a></p>
<p>Pour que l’application soit utilisable sur n’importe quelle Constellation, nous avons créé un page de configuration où l’utilisateur rentre l’adresse de sa constellation, le port, et des identifiants.</p>
<p>Une fois tout cela rempli, le nom d’utilisateur et le mot de passe sont hachés en SHA1 grâce à une librairie externe et la connexion à Constellation commence.</p>
<p>Lorsque l’application se lance pour la première fois, l&rsquo;utilisateur est directement redirigé vers cette page pour entrer les informations nécessaires.</p>
<h4>Étape 3 : Affichage des données en temps réel</h4>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure29.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Le tableau de bord " src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure29_thumb.png" alt="Le tableau de bord" width="184" height="364" border="0" /></a></p>
<p>Pour l’affichage des données en temps réel nous avons utilisé des images SVG car elles sont très flexibles et nous voulions réaliser des barres de progression en arc de cercle. Pour les valeurs numériques on affiche un scope AngularJS dans lequel sont stockés les valeurs des capteurs.</p>
<p>Le code JS :</p>
<p></p><pre class="crayon-plain-tag">//Stockage des valeurs des capteurs dans la variable capteur
scope.capteurs["humiditeAir"] = so.Value.HumiditeAir;
scope.$apply(); //Applications des modifications du scope

//Pour changer le remplissage de la jauge 
$("#h_air_gauge").css("stroke-dasharray",(so.Value.HumiditeAir*18)/100 + " 18 0");</pre><p></p>
<p>SVG en HTML :</p>
<p></p><pre class="crayon-plain-tag">&lt;svg viewbox="0 0.5 10 8"&gt;
    &lt;defs&gt;
    &lt;linearGradient id="linear" x1="0%" y1="0%" x2="100%" y2="0%"&gt;
        &lt;stop offset="0%" stop-color="#00ee4f"/&gt;
        &lt;stop offset="66%" stop-color="#eeae00"/&gt;
        &lt;stop offset="100%" stop-color="#ee0000"/&gt;
    &lt;/linearGradient&gt;
    &lt;/defs&gt;
    &lt;text x="50%" y="50%" id="h_air_value" text-anchor="middle"  alignment-baseline="middle" fill="#00ee4f"&gt;
        {{Math.round(capteurs["humiditeAir"])}}%
    &lt;/text&gt;
    &lt;path d="M2 8 A 4 4 0 1 1 8 8" fill="none" stroke-width="0.78" stroke="#E8F6FD" /&gt;
    &lt;path class="loader" id="h_air_gauge" d="M2 8 A 4 4 0 1 1 8 8" fill="none" stroke-width="0.8" 
stroke="url(#linear)" /&gt;
&lt;/svg&gt;</pre><p></p>
<h4>Étape 4 : Contrôler sa serre</h4>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure32.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Page de contrôle" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure32_thumb.png" alt="Page de contrôle" width="124" height="244" border="0" /></a><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure30.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Page de contrôle" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure30_thumb.png" alt="Page de contrôle" width="124" height="244" border="0" /></a><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure31.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Page de contrôle" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure31_thumb.png" alt="Page de contrôle" width="124" height="244" border="0" /></a></p>
<p>Nous avons également prévu dans l’application de pouvoir gérer les différents actionneurs de la serre.</p>
<p>Pour gérer le côté automatique du package responsable des capteurs nous avons utilisés des sliders qui lorsqu’activés, vont envoyer un Message Callback comme décrit ci-dessus. On va également suivre l’évolution du State Object indiquant si l’automatisation est activée pour tel ou tel actionneur et ainsi bloqué ou non le bouton d’activation manuel. Car oui, il est également possible d’activer manuellement chaque actionneur grâce à un bouton.</p>
<h4>Étape 5 : Les graphiques</h4>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure33.png"><img class="colorbox-6084"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="Graphiques" src="https://developer.myconstellation.io/wp-content/uploads/2018/07/figure33_thumb.png" alt="Graphiques" width="184" height="361" border="0" /></a></p>
<p>Pour ce qui est des graphiques nous avons utilisé une librairie externe que nous avons modifié pour la rendre compatible sur mobile. Cette librairie s’appelle Chartist. Grâce à elle nous avons pu faire de superbes graphiques.</p>
<h3>Conclusion</h3>
<p>Voilà qui conclut les grandes étapes de la réalisation de FriendLeaf. Comme vous avez pu le voir, la serre remplit complètement son rôle. C’est un projet ludique, simple à réaliser et facilement transposable sur d’autres installations grâce aux State Objects et aux messages Callback. C’est également un bon point de départ pour prendre en main la plateforme Constellation. Nous espérons vraiment qu’il vous a plu et que vous allez réaliser votre propre serre.</p>
<p>Nous tenons également à remercier Léa, le jardin de Théo et les parents de Marine qui nous ont fourni quelques accessoires nécessaires à la serre.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/tutorials/friendleaf-la-serre-connectee-grace-a-constellation/">FriendLeaf : la serre connectée grâce à Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/tutorials/friendleaf-la-serre-connectee-grace-a-constellation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Mise en cache de page à l’aide de Disk: Enhanced 

Served from: developer.myconstellation.io @ 2026-01-21 04:00:55 by W3 Total Cache
-->