Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'topic unique'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Bienvenue
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Annonces et suggestions
  • La Home Center et ses périphériques
    • La Home Center pour les nuls
    • HC 2 & Lite
    • HC 3
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Quick App
    • Multimédia (audio, vidéo ...)
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets, piscines, ...)
    • Eclairage
    • Applications Smartphones et Tablettes
  • Autres solutions domotiques
    • Box / Logiciel
    • Modules Nice (433 & 866 MHz)
    • Modules Zigbee
    • GCE Electronics
    • Modules Bluetooth Low Energy
  • Objets connectés
    • Les Assistants Vocaux
    • Netatmo
    • Philips Hue
    • DIY (Do It Yoursel)
  • Sécurité
    • Alarmes
    • Caméras
    • Portiers
    • Serrures
  • Informatique / Réseau
    • Tutoriels
    • Matériels Réseaux
    • Matériels Informatique
    • NAS
    • Virtualisation
  • Les bonnes affaires
    • Sites internet
    • Petites annonces

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Jabber


Skype


Ville :


Intéret :


Version

416 résultats trouvés

  1. Bugsissimo

    Surveillance Des Plantes

    Bonjour a tous, Madame n ayant pas la main verte, voila qu elle me demande si un module pourrait l aider a savoir quand arroser, si elle a assez de lumiere, etc... J avais lu une chose ou deux sur le sujet, mais apres recherche, je ne trouve que des solutions autonomes en bluetooth sur smartphone. Existe-t-il une solution gerable par la box et qui permettrait d'envoyer ensuite des notifications push, sms, mail? Merci d'avance
  2. Bonjour Messieurs, Ma question va paraitre probablement assez stupide La construction de ma maison est en cours et je souhaite mettre a disposition, pres de la porte d'entrée, une tablette android qui restera en charge Question : de quoi ai je besoin pour realiser cela niveau materiel ? Merci d'avance pour vos réponses
  3. Salut à Tous, Quelqu'un a un retour d'expérience et d'intégration des produits Hauppauge dans la HC2 ?
  4. gars_toff

    Chauffage Au Sol

    Bonjour, Dans mon appartement est installé un chauffage au sol avec un collecteur 8 entrée/sortie manuel sans aucun thermostat et ouverture des robinets automatique. Existe t'il une solution pour permettre d'automatiser tout ceci ? Merci de vos conseil Christophe
  5. Bonjour Je ne sais pas si d'autres personnes disposent d'une caméra trendnet ip422-wn mais comme j'ai bien galéré pour obtenir les URL permettant de faire bouger la caméra... je les partage avec la communauté : ----------------------------------------------------- Modèle caméra: Trendnet A ----------------------------------------------------- URL JPG: cgi/jpg/image.cgi URL MPEG: cgi/mjpg/mjpg.cgi URL Gauche: admin/ptctl.cgi?move=left URL Droite: admin/ptctl.cgi?move=right URL haut : admin/ptctl.cgi?move=up URL bas : admin/ptctl.cgi?move=down URL Stop : command=stop -----------------------------------------------------
  6. Bonjour Voici un site qui peut vous aider. Il y a toutes les marques et modèles de caméra... et vous aurez l'URL à reprendre pour déplacer la caméra à indiquer dans notre HC2 : http://www.ispyconnect.com/sources.aspx enjoy
  7. Hello, Quelqu'un s'est déjà penché sur cette caméra et son intégration dans nos HC2? https://live.amaryllo.eu/store/store_service_p22m.php?fromproduct=y Full HD, PTZ, wifi, IR vision, suivi de mouvement, etc pour 260$ port compris
  8. Bonjour, Je souhaite domotiser ma maison pour inclure une station météo et un retour d'info avec un anémomètre, qui pourrait me permettre de gérer mes BSO en cas de fortes rafales de vent. J'ai entendu parler des stations netatmo, et je voudrais vos avis sur le sujet. Avez vous déja utilisé ce produit, et est-ce quelque chose de fiable? (j'ai également vu que Fibaro propose un plugin). Pour info je suis sur HCL et suis assez novice en domotique a ce jour. Merci d'avance,
  9. Bonjour, Je viens de connecter un FGRM-222 à ma centrale Fibaro et je peux actionner mes volets avec ma centrale ou mon téléphone : montée OK, descente OK. Mais l' interrupteur devrait aussi me permettre d' actionner mes volets, or avec le bouton gauche de mon interrupteur, ils montent, mais avec le bouton droit ils ne descendent pas.... Erreur de branchement, de paramétrage, d' appairage????? Merci votre aide car je cale.......
  10. MasterBT

    Camera Heden Wifi

    Camera Heden, Extérieur Wifi Lien officiel: http://www.heden.fr/42-18-Cameras-de-surveillance-Camera-Ext-Fixe-p-320-Camera-IP-CLOUD-Exterieure----V-3.4---Gris.html Fiche technique: http://www.heden.fr/media/fiche-technique/Camera-IP-Exterieure---Wifi---V-3.3---Gris.pdf Résolution: 640x480 Test: http://www.touteladomotique.com/index.php?option=com_content&view=article&id=1058%3Ale-test-de-visioncam-la-nouvelle-camera-cloud-dheden&catid=85%3Asecurite&Itemid=14&limitstart=3#.Uz0Trfl_t8H http://domotique-info.fr/2013/12/camera-ip-heden-cloud-exterieure-une-installation-royale/ Tarifs: 100€ Configuration sur HC: Url jpg: snapshot.cgi Url MPEG: videostream.cgi
  11. Bonjour, J'ai une sonde DALLAS waterproof DS10B20 installée à l'intérieur d'un sauna reliée à un module FGK 101 J'ai un sauna relié à un module ZW078 J'aimerai que la sonde n'envoie la température du sauna que quand celui-ci est allumé pour économiser les piles du FGK101 Est-ce possible ? Pipiou
  12. Bonjour à tous, J'ai installé la caméra sur le HC2, celle-ci fonctionne bien. Je voudrais cependant configurer les flèches de directions. Il faut mettre une URL, mais impossible de la trouver, les flèches de l'interface de la camré fonctionne avec (je pense) un javascript donc impossible pour moi de le déchiffrer. Je rajoute le code HTML au cas où : <html> <head> <title>TRENDnet | Maison(TV-IP651WI)</title> <meta http-equiv="X-UA-Compatible" content="requiresActiveX=true"> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <link rel="stylesheet" href="style.css?cidx=1.062014-03-11" type="text/css"> <style type=text/css> A:link {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: ff6600; FONT-FAMILY: arial,geneva,sans-serif} A:visited {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: ff6600; FONT-FAMILY: arial,geneva,sans-serif} .org-news {FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: ff6600; FONT-FAMILY: arial,geneva,sans-serif} </style> <script language="Javascript" SRC="function.js?cidx=1.062014-03-11"></script> <script language="Javascript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } var tInterval = ""; var fInterval = ""; function Stop() { window.clearInterval(tInterval); window.clearInterval(fInterval); } function ShowRunningString() { tInterval = window.setInterval("GetTrigger()", 1000); fInterval = window.setInterval("ShowFrameRate()", 1000); } function Init() { window.setTimeout("ShowRunningString()", 3000); if (0 == 1) { document.forms[0].nightmodeon.disabled = false; document.forms[0].nightmodeoff.disabled = false; document.forms[0].nightmodeon.className="ButtonSmall"; document.forms[0].nightmodeoff.className="ButtonSmall"; } else { document.forms[0].nightmodeon.disabled = true; document.forms[0].nightmodeoff.disabled = true; document.forms[0].nightmodeon.className="ButtonSmallOff"; document.forms[0].nightmodeoff.className="ButtonSmallOff"; } } function ShowFrameRate() { var fFrameRate; if ((1) || (0)) { fFrameRate = cvcs.GetFrameRate(); } if (1) { window.status = "Frame:" + fFrameRate.toString() + " fps"; } if (0) { CurrentFrame.innerHTML = "Frame:" + fFrameRate.toString() + " fps"; } cvcs.GetRealTimeData(); CurrentTime.innerHTML = cvcs.GetTimeString(); } function SubmitAudioOn() { cvcs.SetSound(1); javascript:document.forms[1].submit(); } function SubmitAudioOff() { cvcs.SetSound(0); javascript:document.forms[2].submit(); } function SubmitUploadOn() { javascript:document.forms[3].submit(); } function SubmitUploadOff() { javascript:document.forms[4].submit(); } function SubmitEmailOn() { javascript:document.forms[5].submit(); } function SubmitEmailOff() { javascript:document.forms[6].submit(); } function SubmitNightModeOn() { javascript:document.forms[7].submit(); } function SubmitNightModeOff() { javascript:document.forms[8].submit(); } function GetTrigger() { HPos.innerHTML = cvcs.GetHorizontalPosition(); VPos.innerHTML = cvcs.GetVerticalPosition(); if (cvcs.GetImageUpload() == 1) { ImageUpload.innerHTML = "[ON]"; } else { ImageUpload.innerHTML = "[OFF]"; } if (cvcs.GetImageEmail() == 1) { EmailImage.innerHTML = "[ON]"; } else { EmailImage.innerHTML = "[OFF]"; } } function SubmitSingleMove(i) { document.forms[9].PanSingleMoveDegree.value=document.forms[0].PanDegree.selectedIndex+1; document.forms[9].TiltSingleMoveDegree.value=document.forms[0].TiltDegree.selectedIndex+1; document.forms[9].PanTiltSingleMove.value=i; javascript:document.forms[9].submit(); } function SubmitClearPosition() { if (1) { var i = document.forms[0].PresetList.selectedIndex; if (i > 0) { document.forms[11].ClearPosition.value=i; javascript:document.forms[11].submit(); document.forms[0].PresetList.options[i].text = i; SubmitPresetList(document.forms[0].PresetList); } } } function SubmitPresetList(selObj) { for (var i=0; i < selObj.options.length; i++) if (selObj.options[i].selected) break; var sel=selObj[i].text; var a=sel.indexOf(' '); var b=sel.lastIndexOf(' '); if (a < document.forms[0].PresetName.value=sel.substring(a+1,; else document.forms[0].PresetName.value=""; if (i == 0) document.forms[0].PresetName.disabled = true; else document.forms[0].PresetName.disabled = false; } function SubmitSetPosition() { if (1) { var i=document.forms[0].PresetList.selectedIndex; if (i > 0) { var sel=document.forms[0].PresetName.value; var hp=cvcs.GetHorizontalPosition(); var vp=cvcs.GetVerticalPosition(); document.forms[0].PresetList.options[i].text = i+" "+sel+" ("+hp+","+vp+")"; document.forms[10].PanTiltHorizontal.value=hp; document.forms[10].PanTiltVertical.value=vp; document.forms[10].SetName.value=sel; document.forms[10].SetPosition.value=i; javascript:document.forms[10].submit(); } } } function SubmitGoToPosition() { var i=document.forms[0].PresetList.selectedIndex; if (i > 0) { document.forms[12].PanTiltPresetPositionMove.value=i; javascript:document.forms[12].submit(); } } function SubmitSwingMode(i) { document.forms[13].PanTiltSwingMode.value=i; javascript:document.forms[13].submit(); } //--> </script> </head> <body bgcolor=white onload="Init();MM_preloadImages('btthome1.gif?cidx=1.062014-03-110','bttadmn1.gif?cidx=1.062014-03-110','bttatvx1.gif?cidx=1.062014-03-110','bttjava1.gif?cidx=1.062014-03-110')" onunload="Stop()"> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="21"><img src="c1_tl.gif" width="21" height="21" id="Image1"></td> <td width="758" background="bg1_t.gif"><img src="top_1.gif" width="390" height="21"></td> <td width="21"><img src="c1_tr.gif" width="21" height="21"></td> </tr> <tr> <td valign="top" background="bg1_l.gif"><img src="top_2.gif" width="21" height="69"></td> <td background="bg.gif"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="13%"><img src="logo.gif" width="270" height="69"></td> <td width="87%" align="right" valign="top"><img src="descript.gif?cidx=TV-IP651WI1.062014-03-11"></td> </tr> <tr><td colspan="2"><img src="spacer.gif" width="15" height="2"></td></tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0" background="c3_bg.gif"> <tr> <td width="10"><img src="c3_tl.gif" width="6" height="6"></td> <td width="100%"><img src="spacer.gif" width="6" height="6"></td> <td width="10"><img src="c3_tr.gif" width="6" height="6"></td> </tr> <tr> <td width="10"><img src="spacer.gif" width="6" height="6"></td> <td> <table border="0" cellpadding="3" cellspacing="0"> <tr><!-- Start of Title --> <td><img src="spacer.gif" width="8" height="8"></td> <td><a href="home.htm"><img src="btthome0.gif?cidx=1.062014-03-110" name="bhome1" width="161" height="28" border="0" id="bhome1" onMouseOver="MM_swapImage('bhome1','','btthome1.gif?cidx=1.062014-03-110',1)" onMouseOut="MM_swapImgRestore()"></a></td> <td><a href="stssys.htm"><img src="bttadmn0.gif?cidx=1.062014-03-110" name="badmin1" width="161" height="28" border="0" id="badmin1" onMouseOver="MM_swapImage('badmin1','','bttadmn1.gif?cidx=1.062014-03-110',1)" onMouseOut="MM_swapImgRestore()"></a></td> <td><a href="aview.htm"><img src="bttatvx0.gif?cidx=1.062014-03-110" name="bactivex1" width="161" height="28" border="0" id="bactivex1" onMouseOver="MM_swapImage('bactivex1','','bttatvx1.gif?cidx=1.062014-03-110',1)" onMouseOut="MM_swapImgRestore()"></a></td> <td><a href="jview.htm"><img src="bttjava1.gif?cidx=1.062014-03-110" name="bjava1" width="161" height="28" border="0" id="bjava1" onMouseOver="MM_swapImage('bjava1','','bttjava1.gif?cidx=1.062014-03-110',1)" onMouseOut="MM_swapImgRestore()"></a></td> </tr><!-- End of Title --> </table> </td> <td><img src="spacer.gif" width="6" height="6"></td> </tr> <tr> <td width="10"><img src="c3_bl.gif" width="6" height="6"></td> <td width="100%"><img src="spacer.gif" width="6" height="6"></td> <td><img src="c3_br.gif" width="6" height="6"></td> </tr> </table><img src="spacer.gif" width="15" height="12"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="black"> <tr> <td><img src="spacer.gif" width="8" height="8"></td> <td width="750"><img src="spacer.gif" width="10" height="10"></td> <td><img src="spacer.gif" width="8" height="8"></td> </tr> <tr> <td><img src="spacer.gif" width="10" height="10"></td> <td align="center" bgcolor="#FFFFFF"><!-- Start of Contenet --> <form action="/jview.htm" METHOD="POST" autocomplete="off"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr><td class="headerbg">View Video - Java Mode</td></tr> </table> <table width="100%" border="0" cellpadding="5" cellspacing="1"> <tr><td> <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF" class="box_tn"> <tr><td colspan="2"> <table width="100%" border="0" cellpadding="1" cellspacing="1"> <tr> <td width="59%"> Maison<br> Salon<br> <SPAN ID="CurrentTime"></SPAN> <SPAN ID="CurrentFrame"></SPAN> </td> <td width="41%"> <table width="100%" border="0" cellpadding="3" cellspacing="1"> <tr> <td align="right" nowrap><font class=bluetextbold><span style="width:90px">Upload Image:</span></font></td> <td nowrap> <INPUT type="button" style="width:40px" class="ButtonSmall" onClick="SubmitUploadOn()" value=' ON '> <INPUT type="button" style="width:40px" class="ButtonSmall" onClick="SubmitUploadOff()" value='OFF'> <SPAN ID="ImageUpload"></SPAN> </td> </tr> <tr> <td align="right" nowrap><font class=bluetextbold><span style="width:90px">E-mail Image:</span></font></td> <td nowrap> <INPUT type="button" style="width:40px" class="ButtonSmall" onClick="SubmitEmailOn()" value=' ON '> <INPUT type="button" style="width:40px" class="ButtonSmall" onClick="SubmitEmailOff()" value='OFF'> <SPAN ID="EmailImage"></SPAN> </td> </tr> </table> </td> </tr> </table> </td></tr> <tr><td colspan="2"><hr size="1"></td></tr> <tr> <td width="190" valign="top"> <table width="190" border="0" cellpadding="3" cellspacing="2" bgcolor="#F0F0F0" class="box_subtn"> <tr> <td colspan=3>Zoom : <INPUT type="button" class="ButtonSmall" style="width:25px" onClick="cvcs.Zoom(1)" value='x1'> <INPUT type="button" class="ButtonSmall" style="width:25px" onClick="cvcs.Zoom(2)" value='x2'> <INPUT type="button" class="ButtonSmall" style="width:25px" onClick="cvcs.Zoom(3)" value='x3'> <INPUT type="button" class="ButtonSmall" style="width:25px" onClick="cvcs.Zoom(4)" value='x4'> </td> </tr> <tr> <td colspan=3>Audio : <INPUT type="button" style="width:40px" class="ButtonSmall" onClick="SubmitAudioOn()" value=' ON '> <INPUT type="button" style="width:40px" class="ButtonSmall" onClick="SubmitAudioOff()" value='OFF'> </td> </tr> <tr> <td colspan=3>Night Mode : <INPUT id="nightmodeon" type="button" class="ButtonSmall" style="width:40px" value='ON' onClick="SubmitNightModeOn()"> <INPUT id="nightmodeoff" type="button" class="ButtonSmall" style="width:40px" value='OFF' onClick="SubmitNightModeOff()"> </td> </tr> <tr> <td colspan=2>Pan Degree</td> <td><SELECT id="PanDegree" name="PanDegree" size="1""><OPTION selected>1</OPTION> <OPTION>2</OPTION> <OPTION>3</OPTION> <OPTION>4</OPTION> <OPTION>5</OPTION> <OPTION>6</OPTION> <OPTION>7</OPTION> <OPTION>8</OPTION> <OPTION>9</OPTION> <OPTION>10</OPTION> </SELECT></td> </tr> <tr> <td colspan=2>Tilt Degree</td> <td><SELECT id="TiltDegree" name="TiltDegree" size="1""><OPTION selected>1</OPTION> <OPTION>2</OPTION> <OPTION>3</OPTION> <OPTION>4</OPTION> <OPTION>5</OPTION> <OPTION>6</OPTION> <OPTION>7</OPTION> <OPTION>8</OPTION> <OPTION>9</OPTION> <OPTION>10</OPTION> </SELECT></td> </tr> <tr><td colspan=3 height="10"></td></tr> <tr> <td colspan="3"> <table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#999999"> <tr><td height="25" align="center" bgcolor="#CCCCCC">(<SPAN ID="HPos"></SPAN>,<SPAN ID="VPos"></SPAN>)</td></tr> </table> </td> </tr> <tr> <td></td> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitSingleMove(1)" value='Up'></td> <td></td> </tr> <tr> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitSingleMove(3)" value='Left'></td> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitSingleMove(4)" value='Home'></td> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitSingleMove(5)" value='Right'></td> </tr> <tr> <td></td> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitSingleMove(7)" value='Down'></td> <td></td> </tr> <tr><td colspan=3 height="10"></td></tr> <tr><td colspan=3>Preset Position</td></tr> <tr><td colspan=3><SELECT id="PresetList" name="PresetList" size="1" onChange="SubmitPresetList(this)"><OPTION>0 Home (170,30)</OPTION> <OPTION>1</OPTION> <OPTION>2</OPTION> <OPTION>3</OPTION> <OPTION>4 (141,24)</OPTION> <OPTION>5</OPTION> <OPTION>6</OPTION> <OPTION>7</OPTION> <OPTION>8</OPTION> <OPTION>9</OPTION> <OPTION>10</OPTION> <OPTION>11</OPTION> <OPTION>12</OPTION> <OPTION>13</OPTION> <OPTION>14</OPTION> <OPTION>15</OPTION> <OPTION>16</OPTION> <OPTION>17</OPTION> <OPTION>18</OPTION> <OPTION>19</OPTION> <OPTION>20</OPTION> <OPTION>21</OPTION> <OPTION>22</OPTION> <OPTION>23</OPTION> <OPTION>24</OPTION> </SELECT></td></tr> <tr><td colspan=3><INPUT type="text" size=18 maxlength=12 id="PresetName" name="PresetName"></td></tr> <tr> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitSetPosition()" value='Set'></td> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onClick="SubmitClearPosition()" value='Clear'></td> <td></td> </tr> <tr> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onclick="SubmitGoToPosition()" value='Go To'></td> <td></td> <td></td> </tr> <tr> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onclick="SubmitSwingMode(2)" value='Swing'></td> <td><INPUT type="button" class="ButtonSmall" style="width:50px" onclick="SubmitSwingMode(0)" value='Stop'></td> <td></td> </tr> </table> </td> <td align="left" valign="top"> <table border="0" cellpadding="3" cellspacing="2"> <tr><td><img src="text.png"></td></tr> <tr><td style="padding: 0px 0px 0px 3px;"> <applet name="cvcs" codeBase="http://192.168.1.10:5001" archive="aplug.jar" code="aplug.class" width=640 height=480> <param name="RemotePort" value=5001> <param name="Timeout" value=5000> <param name="RotateAngle" value=0> <param name="PreviewFrameRate" value=2> <param name="Algorithm" value=2> <param name="DeviceSerialNo" value="YWRtaW46RHlzY3VzMjA="> </applet> </td></tr> </table> </td> </tr> </table> </td></tr></table> </form> </td><!-- End of Contenet --> <td><img src="spacer.gif" width="8" height="8"></td> </tr> <tr> <td><img src="spacer.gif" width="8" height="8"></td> <td><img src="spacer.gif" width="10" height="10"></td> <td><img src="spacer.gif" width="8" height="8"></td> </tr> </table> </td> </tr> </table> </td> <td background="bg1_r.gif"> </td> </tr> <tr> <td><img src="c1_bl.gif" width="21" height="20"></td> <td align="right" background="bg1_b.gif"><img src="cpright.gif?cidx=1.062014-03-110" width="264" height="20"></td> <td><img src="c1_br.gif" width="21" height="20"></td> </tr> </table> </body> <form action="/audiocontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="AudioMute" value="0"> </form> <form action="/audiocontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="AudioMute" value="1"> </form> <form action="/iocontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="ImageUpload" value="1"> </form> <form action="/iocontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="ImageUpload" value="0"> </form> <form action="/iocontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="ImageEmail" value="1"> </form> <form action="/iocontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="ImageEmail" value="0"> </form> <form action="/nightmodecontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="IRLed" value="1"> </form> <form action="/nightmodecontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="IRLed" value="0"> </form> <form action="/pantiltcontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="PanSingleMoveDegree"> <INPUT type="hidden" name="TiltSingleMoveDegree"> <INPUT type="hidden" name="PanTiltSingleMove"> </form> <form action="/pantiltcontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="PanTiltHorizontal"> <INPUT type="hidden" name="PanTiltVertical"> <INPUT type="hidden" name="SetName"> <INPUT type="hidden" name="SetPosition"> </form> <form action="/pantiltcontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="ClearPosition"> </form> <form action="/pantiltcontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="PanTiltPresetPositionMove" value="0"> </form> <form action="/pantiltcontrol.cgi" METHOD="POST" autocomplete="off"> <INPUT type="hidden" name="PanTiltSwingMode" value="0"> </form> </html> Quelqu'un aurait des pistes ? Merci par avance.
  13. Bonjour j'aimerais domotiser mon Échangeur d'air, VMC mais je me demande quel module je devrais prendre? Avez-vous des suggestion? je vous joint le fichier PDF de mes 2 controleurs, soit 1 X quatre fils et 2 X 2 fils. Merci de votre support. patrick Scan0017.pdf
  14. Bonjour, Je souhaiterai modifier la température de mes vannes Danfoss en fonction de la température de consigne de mon thermostat Netatmo. Pour cela je voudrai passer par un module virtuel via lequel : Récupère la température de consigne du thermostat Netatmo Récupérer la température de consigne de chaque vanne Gérer l'hystérésis des vannes Comment puis je récupérer de façon simple la température de consigne de mon thermostat? Merci d'avance pour vos réponses
  15. Bonjour àtous, Je suis détenteur d une hc2 ... Est oui j ai sauté le pas ! Désoler pour ceux qui n apprécié pas Apple mais moi j adore et j ai i phone i pad... Je souhaite acheter des enceintes pour pouvoir d une par les contrôler depuis ma box et aussi faire des scenario avec le tts et aussi pouvoir mettre de la musique depuis mon iPhone ou iPad avec la fonction AirPlay.... Avez vous des idées ?? Merci pour ce site super enrichissant
  16. Bonjour, Je n'ai pas vu les module Intermatic sous la rubrique "Module Z-Wave". J'ai des modules CA600 et CA3000 qui fonctionne parfaitement. Mais je suis incapable de faire fonctionner les modules CA5100. Quelqu'un a t-il réussis? Merci
  17. jjacques68

    Maj 4.058 Et Panneau De Chauffage

    Bonjour à tous, Je viens de faire la mise à jour en 4.058 et depuis, le panneau de chauffage semble ne plus fonctionner !!! Pourtant les paramètres sont bien là ! Je n'ai rien dans les évènements qui m'indique une quelconque communication avec le Danfoss. Avez-vous connu ce problème et avez-vous réussi à le résoudre ? Bien cordialement, JJacques68
  18. Bonjour, j'ai tenter d'utiliser le script de yannick pour la détection de lumière mais je rencontre un problème.. le script fonctionne bien tant que l'on bouge durant la phase ou le détecteur est en alerte. Mais si je bouge une fois qu'il s'est remis en position normale et avant la fin des 60 secondes, le script bug et la lumière reste allumé indéfiniment... en gros si on fait les actions suivante : - 0 sec : je bouge, la lumière s'allume, le détecteur est en alerte pour 30 sec - 30 sec : le détecteur passe en mode normal - 35 sec : je bouge, le détecteur passe en mode alerte Là , la lumière reste allumé à l'infini. Par contre si je rebouge après 60 sec, la lumière s'éteint bien au bout de 60 nouvelles secondes. bref si je fais : 0:00 : lumière s'allume 0:55 : je bouge 1:56 : je rebouge 2:56 : la lumière s'éteint Mais si je sors entre 0:55 et 1:55 la lumière restera allumé indéfiniment.. Une idée du script à modifié ? --[[ %% properties 92 value 94 value %% globals --]] local id_lampe = 31 local id_mouv_couloir = 92 local id_lux_couloir = 94 local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(92, "value"); local HeureActuelle = os.date("*t"); -- si il y a plus d'une instance en route alors on arrête if (fibaro:countScenes() > 1) then fibaro:abort() end; -- ça c'est pour la forme fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min") -- entre 18h et 7h du matin s'il y a un mouvement et que les lux < à 10 alors on allume tant qu'il y a du mouvement -- sinon on éteint après 1 minute de calme if ((HeureActuelle['hour']>= 18 or HeureActuelle['hour'] <= 7) and ( tonumber(fibaro:getValue(id_mouv_couloir, "value")) > 0 ) and ( tonumber(fibaro:getValue(id_lux_couloir, "value")) <= 10 ) ) then fibaro:call(id_lampe, "turnOn"); fibaro:sleep(60*1000); end if (( tonumber(fibaro:getValue(id_mouv_couloir, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 60) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(id_lampe, "turnOff") end Merci d'avance !
  19. BenjyNet

    Caméras Ip Zavio-Vivotek

    Moi je veux un test de ZAVIO. Demande a domadoo ou domotique store de devenir revendeur en France. Pour le moment il n'y en a qu'un seul ! Et je veux bien les tester
  20. pipiou_ch

    Piloter L'allumag D'un Sauna

    Bonsoir, Nouvel utilisateur d'une centrale Home Center Lite, je cherche le moyen d'allumer mon sauna à distance. Soit un interrupteur On/Off qui supporte 6 Kw Soit un module capable de mettre "On/Off le disjoncteur sur le tableau électrique de la maison Soit une autre solution Merci de votre aide Dominique
  21. zorbeclegras

    Conseils Sirène Et Clavier

    Bonjour, J'envisage de mettre un sirène interieure sur ma HC2. De préférence avec alimentation par piles. J'ai parcouru les offres, il y pas mal de choses intéressantes. Entre Zipato, Fortrezz, Vision etc que choisir ? Et également un clavier + badges rfid pour armer/desarmer. Merci pour vos conseils et retours d'expériences.
  22. L’idée, utiliser le panneau de chauffage pour sa souplesse pour la gestion de mes chaudières, sans en subir les conséquences. Toutes les consignes sont utilisées normalement (consignes courantes, consignes vacances et consignes provisoires) pour toutes zones existante. Pour chaque zone, un pré-requis, créer une variable prédéfinie appelé id_Chauf_pièce, où pièce correspond au nom de la zone de consigne(ex : pour une zone définie dans le panneau de chauffage nommée « Salon », on crée une variable prédéfinie appellée « id_Chauf_Salon »). Pour chaque variable, on crée : - une valeur D_xxx où xxx est l’ID du module qui déclenche la chaudière (pour ma part, un FGS211 relié à chaque chaudière) - une valeur T_xxx où xxx est l’ID du module qui renvoie la température courante de la zone - une ou plusieurs valeur Z_xxx où xxx correspond aux ID des modules qui contrôlent les radiateurs ou SRT321 (vannes Danfoss dans mon cas). En cas d’absence d’un de ces modules dans une zone, on met Z_000 On crée une variable prédéfinie : - Present (Oui/Non) - Fenetre_ouverte (Oui/Non) - JourChome (Oui/ Non) On crée un module virtuel avec un bouton nommé « rafraichir » et on colle le code LUA suivant : Adresse_IP="192.168.1.xxx"; Utilisateur="admin" MotDePasse="12345678"; function EnumZone() -- Relève l'ensemble des zones du panneau de chauffage local a, b, c = 0; local p = { }; local i = 0; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/panels/heating"); a, b = string.find(result, "name", 1); while a do b, c = string.find(result, ",", a + 6); i = i + 1; table.insert(p, string.sub(result, a + 7, b -2)); a = b + 1; a, b = string.find(result, "name", a); end; return p; end function IdZone(piece) -- Récupère l'ID d'une zone local a, b, c = 0; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/panels/heating"); a, b = string.find(result, piece, 1); b, c = string.find(result, "id", a - 18); return string.sub(result, b + 4, a - 10); end function TempActuelle(piece) -- Relève la température actuelle d'une zone local a, b, c, d = 0; local T = ""; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/globalVariables"); a, b = string.find(result, "id_Chauf_" .. piece, 1); b, c = string.find(result, "T_", a); c, d = string.find(result, "\"", ; T = string.sub(result, b + 2, c - 1); return fibaro:getValue(T, "value"); end; function TempMini(Id) -- Recherche la température mini d'une zone, pour la définir comme température de consigne en cas d'absence local c, d, e, i =0; local t=""; local TM = "99"; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/panels/heating?id=" .. Id); for i = 1, 4 do c, d = string.find(result, "temperature", e); e, d = string.find(result, "}", c); t = string.sub(result, c + 13, e-1); if tonumber(t) < tonumber(TM) then TM = t end; end; return TM; end; function TempProv(Id) local a, b, c, d =0; local TP, TM = ""; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/panels/heating"); a, b = string.find(result, "id\":" .. Id, 1); b, c = string.find(result, "handTemperature", a); c, d = string.find(result, ",", ; TP = string.sub(result, b+17, c-1); a, b = string.find(result, "handTimestamp", c); b, c = string.find(result, ",", a); TM = string.sub(result, a+15, b-1); if tonumber(TM) < os.time() then TP = "0" end; return TP; end; function TempVac(Id) local a, b, c, d =0; local TP, TM = ""; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/panels/heating"); a, b = string.find(result, "id\":" .. Id, 1); b, c = string.find(result, "vacationTemperature", a); c, d = string.find(result, "}", ; TP = string.sub(result, b+21, c-1); return TP; end; function TempConsigne(Id) -- Défini la température de consigne pour une zone local T = ""; if fibaro:getGlobalValue("Present") == "Oui" then T = TempProv(Id); if T == "0" then local a, b, c, d = 0; local h, heureCourante, e, programme = ""; local jour = ""; local currentDate = os.date("*t"); local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/panels/heating?id=" .. Id); if fibaro:getGlobalValue("JourChome") == "Oui" then jour = "sunday"; else jour = string.lower(os.date("%A")); end; a, b = string.find(result, jour, 1); b, c = string.find(result, "}}", a); programme = string.sub(result, a-1, ; b = 1; if tonumber(currentDate.hour)<10 then e = "0" else e = "" end; heureCourante = e .. currentDate.hour if tonumber(currentDate.min)<10 then e = "0" else e = "" end; heureCourante = heureCourante .. ":" .. e .. currentDate.min; for a = 1, 4 do h = ""; b, c = string.find(programme, "hour", b+1); c, d = string.find(programme, ",", ; if tonumber(string.sub(programme, b+6, c-1))<10 then e = "0" else e = "" end; h = e .. string.sub(programme, b+6, c-1); b, c = string.find(programme, "minute", ; c, d = string.find(programme, ",", ; if tonumber(string.sub(programme, b+8, c-1))<10 then e = "0" else e = "" end; h = h .. ":" .. e .. string.sub(programme, b+8, c-1); if h < heureCourante then c, d = string.find(programme, "temperature", ; e, d = string.find(programme, "}", ; T = string.sub(programme, c + 13, e-1); end; end; if T == "0" then jour = string.lower(os.date("%A", os.time()- 24 * 60 * 60)); a, b = string.find(result, jour, 1); b, c = string.find(result, "}}", a); programme = string.sub(result, a-1, ; b = 1; a, b = string.find(programme, "night", 1) ; a,b = string.find(programme, "temperature", a); e, d = string.find(programme, "}", a); T = string.sub(programme, a + 13, e-1); end; end; else T = TempVac(Id); if T == "0" then T = TempMini(Id) end; end return T; end function EnumDeclencheur() -- Enumère les modules qui enclenchent les chaudières ou radiateurs électriques d'une zone (FGS211) local a, b = 0; local Declencheur = ""; local Exist = false; local i, j = 0; local D = { }; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/globalVariables"); a, b = string.find(result, "D_", 1); while a do i = i + 1 ; b, c = string.find(result, "\"", a); Declencheur = string.sub(result, a + 2, b - 1); j = 1; Exist = false; while D[j] do if D[j] == Declencheur then Exist = true end; j = j + 1; end if not Exist then table.insert(D, Declencheur) end; a, b = string.find(result, "D_", a + 2); end; return D; end function DeclencheurZone(piece) -- Recherche l'ID du déclencheur de chaudière pour une zone local a, b, c = 0; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/globalVariables"); a, b = string.find(result,"id_Chauf_" .. piece, 1); a, b = string.find(result, "D_", a); b, c = string.find(result, "\"", a); return string.sub(result, a + 2, b - 1); end function EnumSourceZ(piece) -- Enumère toutes les vannes ou thermostat d'une zone local a, b, c, d = 0; local Cons = { }; local HC2= Net.FHttp(Adresse_IP); HC2:setBasicAuthentication(Utilisateur, MotDePasse); local result, status, errorCode = HC2:GET("/api/globalVariables"); a, b = string.find(result, "id_Chauf_" .. piece, 1); a, b = string.find(result, "Z_", a); while a do b, c = string.find(result, "\"", a); table.insert(Cons, string.sub(result, a + 2, b - 1)); d = a; a, b = string.find(result, "Z_", a + 2); if a then b, c = string.find(result, "id_Chauf_", d); if b then if b < a then a = nil end; end; end; end; return Cons; end; function Inertie(piece, TempCons, TempAct) return "0"; end; function DecInertie(piece, TempCons, TempAct) end; function DefInertie(piece, TempCons, TempAct) end local declencheur = EnumDeclencheur(); if fibaro:getGlobalValue("Fenetre_ouverte") == "Non" then local i,j,k = 1; local l = 0; local piece = EnumZone(); local besoin = {}; while piece[i] do -- Pour chaque zone du panneau de chauffage j = 1; EnumSource = EnumSourceZ(piece[i]); while EnumSource[j] do if EnumSource[j] ~= "000" then fibaro:call(EnumSource[j], "setTargetLevel", TempConsigne(IdZone(piece[i]))); -- Défini les consignes de température pour les vannes Danfoss ou thermostat pour chaque zone (piece[i]) end; j = j + 1; end; l = 0; k = 1; while declencheur[k] do if declencheur[k] == DeclencheurZone(piece[i]) then l = k end; -- Repère le l'ID du déclencheur de chauffage pour la zone étudiée k = k + 1; end; -- besoin{} établi si, pour un déclencheur, un besoin de chauffage est nécessaire -> Si température actuelle inférieur à température consigne - 0.7, on déclenche un besoin (envoi de "turnOn" au déclencheur). -- Si besoin=nil, si toutes les zones attachées ont atteint la température, on coupe le besoin (envoi de "turnOff" sur le déclencheur), sinon, on laisse faire if tonumber(TempActuelle(piece[i])) < (tonumber(TempConsigne(IdZone(piece[i]))) - 0.7) then besoin[l] = "turnOn"; DecInertie(IdZone(piece[i]), TempConsigne(IdZone(piece[i])), TempActuelle(piece[i])) else if not besoin[l] and tonumber(TempActuelle(piece[i])) < tonumber(TempConsigne(IdZone(piece[i]))) - tonumber(Inertie(IdZone(piece[i]), tonumber(TempConsigne(IdZone(piece[i]))), TempActuelle(piece[i]))) then besoin[l] = "standby"; --DefInertie(piece[i], TempConsigne(IdZone(piece[i])), TempActuelle(piece[i])) else DefInertie(IdZone(piece[i]), TempConsigne(IdZone(piece[i])), TempActuelle(piece[i])) if not besoin[l] then besoin[l] = "turnOff"; end; end; end; --fibaro:debug(tostring(tonumber(TempConsigne(IdZone(piece[i]))) - tonumber(Inertie(piece[i], tonumber(TempConsigne(IdZone(piece[i]))))))); i = i + 1; end; i = 1; while declencheur[i] do if besoin[i] ~= "standby" then fibaro:call(declencheur[i], besoin[i]); -- Envoi la consigne au déclencheur end; i = i + 1; end; else local k = 1; while declencheur[k] do fibaro:call(declencheur[k], "turnOff"); -- Si Fenetre_ouverte alors tout déclencheur à "turnOff" k = k + 1; end; end; On adaptera les 3 variables (Adresse_IP, Utilisateur, MotDePasse) Les fonctions Inertie, DecInertie et DefInertie ne sont pas partagées pour le moment, en cours de développement... Petite précision, ce code a été écrit en 4.018, alors que JSON ne fonctionnait pas. Enfin, on créera une scène par bloc qui appuiera toutes les minutes sur le bouton "Rafraichir" du module virtuel en omettant pas de cocher la case "Lancer au démarrage de la HC2" Je crois que je n'ai rien oublié
  23. jnevestdl

    Que Pensez-Vous De Ces Modules?

    Bonjour a tous. Excusez moi pour mon Francais! Que pensez-vous de ces modules? Il utilize les modules Fibaro, mais sont une solution plus professionnel que utilizer les boitiers CamdBoss par exemple! http://x10modules.com/shop/default.php?cPath=74_98 Donnez moi votre opinion svp. Merci!
  24. Bonjour, Je souhaitai mettre en place un Chien électronique à partir d'un déclencheur type détecteur de mouvement fibaro. Mon but était que lorsqu'il y a un mouvement, un mp3 d'un chien qui aboie, qui est stocké sur mon NAS, se joue sur une de mes enceintes Sonos actuellement enregistré dans mon HC2 (v4) en module virtuel. Après d'âpres recherchent j'ai trouvé comment faire.. Merci aux contributeur de ce post qui m'ont donné envie de chercher En avant la musique : 1- Ajoutez un module virtuel que l'on nommera "Chien Virtuel" 2- Ajouter l'adresse IP du Sonos que vous souhaitez utiliser pour diffuser le son 3- Ajouter le port 1400 4- Dans "Avancé", créez un bouton sur une seul ligne (dans Etiquette) et cliquez sur "ajouter un réglage" 5- Descendez pour éditer votre bouton et passez en mode "Code LUA" 6- Collez le code suivant : ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------- -- SONOS Play stream... -- Copyright © 2014 Jean-Christophe Vermandé ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- selfId = fibaro:getSelfId(); ip = fibaro:get(selfId, 'IPAddress'); port = fibaro:get(selfId, 'TCPPort') or 1400; currentTransportState = ""; lastTransportState = ""; currentVolume = 0; lastVolume = 0; ttsVolumeIsDifferent = false; urlencode = function(str) if (str) then str = string.gsub (str, "\n", "\r\n"); str = string.gsub (str, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end); str = string.gsub (str, " ", "+"); end return str; end createRequestBody = function(action, schema, data) return string.format("<u:%s xmlns:u=\"%s\">%s</u:%s>", action, schema, data, action); end reponseCallback = function(fnc, args) if (fnc == nil) then return nil; end return fnc(args); end createSocket = function() -- Check IP and PORT before if (ip == nil or port == nil) then fibaro:debug("You must configure IPAddress and TCPPort first"); return; end local socket; local status, err = pcall(function() socket = Net.FTcpSocket(ip, port); socket:setReadTimeout(1000); end); if (status ~= nil and status ~= true) then fibaro:debug("socket status: " .. tostring(status or '')); end if (err ~= nil) then fibaro:debug("socket err: " .. tostring(err or '')); return; end return socket; end disposeSocket = function(socket) if (socket ~= nil) then socket:disconnect(); socket = nil; return true; end return false; end sendSoapMessage = function(url, service, action, args, callback, retry) local socket = createSocket(); if (socket == nil) then return; end retry = retry or 0 -- prepare data local url = "POST " .. url .. " HTTP/1.1"; local soapaction = "SOAPACTION: \"" .. service .. "#" .. action.name .. "\""; local body = createRequestBody(action.name, action.service, tostring(args or "")); local envelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body>" .. body .. "</s:Body></s:Envelope>"; local ctl = "Content-Length: " .. string.len(envelope); local payload = url .. "\r\n" .. ctl .. "\r\n" .. soapaction .. "\r\n" .. "\r\n" .. envelope; -- write data local bytes, errorcode = socket:write(payload); if (errorcode == 0) then local state, errorcode = socket:read(); if (errorcode == 0) then if (string.len(state or "") > 0) then -- callback if (callback ~= nil) then reponseCallback(callback, state); end -- dispose ... disposeSocket(socket); return true; else fibaro:debug("Error: Invalid response. response length: " .. string.len(state or "")); end else if (retry < 5) then fibaro:debug("retry #"..retry.." action: " .. action.name); return sendSoapMessage(url, service, action, args, callback, (retry + 1)); else fibaro:debug("Error: Code returned "..tostring(errorcode or "")); end end elseif (errorcode == 2) then fibaro:debug("Error: You must check your IP and PORT settings."); else if (retry < 5) then fibaro:debug("retry #"..retry.." action: " .. action.name); return sendSoapMessage(url, service, action, args, callback, (retry + 1)); else fibaro:debug("Error: Code returned "..tostring(errorcode or "")); end end -- dispose ... disposeSocket(socket); -- default response return false; end -- stop = function() -- return sendSoapMessage( -- -- control url -- "/MediaRenderer/AVTransport/Control", -- -- service type -- "urn:schemas-upnp-org:service:AVTransport:1", -- -- action -- { name = "Stop", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- -- soap body data (options) -- "<InstanceID>0</InstanceID><Speed>1</Speed>", -- -- callback (options) -- function(response) -- fibaro:debug("stop sent"); -- end); -- end unMute = function() return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:RenderingControl:1", -- action { name = "SetMute", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>0</DesiredMute>", -- callback (options) function(response) fibaro:debug("unMute sent"); end); end play = function(duration) return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Play", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Speed>1</Speed>", -- callback (options) function(response) if (duration ~= nil) then fibaro:debug("play sent for " .. duration .. " seconds"); fibaro:sleep(duration); stop(); else fibaro:debug("play sent"); local n = 0; currentTransportState = "TRANSITIONING"; while (currentTransportState == "TRANSITIONING") do if (n > 10) then break end; getTransportState(); fibaro:debug(currentTransportState); fibaro:sleep(5000); n = n + 1; end local i = 0; currentTransportState = "PLAYING"; while (currentTransportState == "PLAYING") do if (i > 10) then break end; getTransportState(); fibaro:debug(currentTransportState); fibaro:sleep(2000); i = i + 1; end fibaro:sleep(1000); stop(); end -- update volume with value before tts if different if (ttsVolumeIsDifferent == true) then setVolume(lastVolume); ttsVolumeIsDifferent = false; end end); end setVolume = function(value) return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:RenderingControl:1", -- action { name = "SetVolume", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>" .. tostring(value) .. "</DesiredVolume>", -- callback (options) function(response) fibaro:debug("Volume set: " .. value); end); end getVolume = function() fibaro:log("Get volume, please wait..."); return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "GetVolume", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel>", -- callback (options) function(response) currentVolume = tonumber(response:match("<CurrentVolume>(.+)</CurrentVolume>") or 0); end); end getTransportState = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "GetTransportInfo", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>", -- callback (options) function(response) currentTransportState = response:match("<CurrentTransportState>(.+)</CurrentTransportState>") or ""; end); end playFile= function(file, volume) return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "SetAVTransportURI", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<CurrentURI>x-file-cifs:" .. file .. "</CurrentURI>,<CurrentURIMetaData></CurrentURIMetaData>", -- callback (options) function(response) -- retrieve current transport state getTransportState(); lastTransportState = currentTransportState; -- unmute before unMute(); -- retrieve volume getVolume(); lastVolume = currentVolume; -- set tts volume if <> with current if (volume ~= nil and volume ~= currentVolume) then setVolume(volume); ttsVolumeIsDifferent = true; end play(); end); end playFile("//SERV_DOMESTIK/Music/Sons/chien_2.mp3", 30); 7- Modifié le chemin de votre MP3 sur la dernière ligne : playFile("//SERV_DOMESTIK/Music/Sons/chien_2.mp3", 30); le chiffre "30" correspond au volume de lecture J'ai utilisé le son suivant : http://www.orangefreesounds.com/dog-bark-sound-2/ 8-Enregistrez avec la disquette à droite 8.5- Mon icon : http://www.domotique-fibaro.fr/index.php/gallery/album/260-chien-virtuel/ 9- Créez une scène avec les "étiquettes magiques" 10- Personnellement j'ai mis : Si <Détecteur> == <en alerte> Alors <Module virtuel Chien><Button11> (pour moi c'est button11 mais pour vous ca peut être autre chose). 11- et voila ! Quand je bouge ca aboie ! C'est plein de scène que l'on peut faire avec des Mp3 enregistré du coup. Il devient possible de faire des retours audio à des scénarios avec des sons pré-enregistré un peu comme SARAH mais du coup on évite le TTS Je sens que je vais m'amuser ! Merci et à Bientôt
  25. Bonjour, J'ai essayé beaucoup de solution pour piloter ma centrale MyFox avec Une HC2 mais j'ai échoué. Voici ce que j'aimerais faire : Gérer l'alarme (désactivation, marche partielle et marche complète), piloter des boitiers de prise. J'aimerai faire un point avec vous car il y a certainement des choses que je n'ai pas compris. - Activation de l'API MyFox et j'ai bien toutes les informations (User ID, User Pwd, Site Id, Client ID, Client Secret et un Jeton) - Je fais des tests a partir du site https://api.myfox.me/ et là bien sà»r tout va bien. - Création de modules virtuels : un pour l'alarme et un pour les prises (4 en tout) si j'ai bien compris la démarche, il faut d'abord se connecter à l'API Myfox qui nous donne un Jeton d'accès périssable, qu'il faudra renouveller régulièrement. Ce jeton sert de système d'authentification simplifié et donc simplifie l'écriture de l'URL. C'est à partir de là que je patauge. J'ai lu d'utiliser le module de KriKroff mais il n'a pas de module MyFox ? J'ai essayé un tuto sur le forum, je pense avoir tout bien fait mais il se passe rien. Bref pour faire simple : Qui a réussit à piloter sa centrale MyFox avec l'API ? Est-ce que quelqu'un peux m'expliquer comment y arriver ? Merci à Vous
×