Aller au contenu

Messages recommandés

Posté(e)

Alors là  très bonne question, Openremote est assez capricieux, j'ai pas mal galeré au début. 

Pour ma part je ne vois pas d'anomalie, reprend peut être l'installation d'openremote au début, en tout cas je tourne aussi en java 8 et pas de soucis.

Pour le rasberry je ne suis pas équipé donc .. 

  • 4 semaines après...
Posté(e)

Bonjour Fred.domotique,

 

me voila de retour :) .

 

Bon pour le Nas j'ai laissé tomber pour l'instant, mais maintenant je bloque sur la mise en place d'un slide.

D'abord pour mes volets piloter par ma HC2, pour les lumières piloter par ma Zibase avec des modules X10 (LD11),

et aussi pour créer mon interface Thermostat piloté aussi par la Zibase.

 

J'ai trouvé un Tuto mais il est incomplet car trop vieux et les images du tuto n'apparaisse plus  :(.

Voici le lien

http://web.archive.org/web/20120929001843/http://zibase.alwaysdata.net/openremote-eploitation-des-sliders-actifs-ou-passifs/

Merci d'avance ;)

Posté(e)

Je profite du sujet pour parler du polling entre HC2 et OpenRemote

Le problème de base avec OpenRemote c'est que pour un statut il faut faire une requète, ce qui avec beaucoup de capteurs sature un peu le système/reseau (Une commande par capteur qui envoie 1 requete toutes les X ms)
De mon coté j'explore une piste sur OpenRemote pour pouvoir récupérer tous les status avec une seule commande. Je suis parti sur la base d'un post sur le forum OR( http://www.openremote.org/display/forums/One+UDPListener+for+several+sensors)

En fait je crée un Device Virtuel qui toutes les X ms envoie un message en UDP sur le réseau contenant mes ID et leur niveau,par exemple:
 

325:off,303:71,295:36,309:18.18,296:off,331:on,298:on


Dans cet Exemple:
325,296,331,298 sont les id pour des eclairage on et off sont leur statut
309 est l'id d'une sonde de temperature et 18.18 sa valeur
303 est l'id d'un VR, 71 sa valeur
295 est l'id d'un dimmer

Donc on obtient un message assez petit contenant déjà  7 états. Si je traitais ceci avec des requètes, nous aurions 7 requètes avec des messages beaucoup plus long......
L'inconvénient de l'UDP c'est qu'on est jamais sà»re que tout arrive....


Coté OR j'ai un UDP Listener qui reçoit cette chaine, la traite et met à  jour des "In-virtual Memory command".
Les premiers essais sont assez encourageant et le système réactif.

Pour l'instant le message est émis depuis le HC2 toutes les 800ms et aucun soucis (par exemple ralentissement coté autres scénarios)

J'ai fait une petite vidéo de démo de ce que cela donne, (3 éclairages dont 1 dimmer, 1 volet roulant et 1 sonde de température)

 

Comme la vidéo est pas terrible sur la visu tablette, je met aussi un screenshot de l'interface pour aider à  comprendre la video (bah oui j'ai pas pu faire mieux car sinon vu mon débit la vidéo aurait mis 10 ans à  uploader...)

 

post-376-0-63449000-1427797598_thumb.png

Les boutons MARCHE et ARRRET sur la gauche envoient juste la commande désirée
Le bouton MARCHE à  droite est un switch (commande ON/OFF selon etat)
Le Texte Statut indique le statut ou le niveau

Lien: https://www.youtube.com/watch?v=1pW7NhNMAT4

 

Si il y a des remarques, ne pas hésiter ;)

Nicolas
 

Posté(e)

C'est la partie Graphique ou vraiment juste créer un sider ton soucis ? En page 2 du sujet ( http://www.domotique-fibaro.fr/index.php/topic/2172-openremote-et-hc2/page-2#entry29446 ), c'est bien expliqué

Pour un Slider il faut un sensor (de type Range) et une commande qui permet d'ajuster le niveau.

 

Dans un premier temps (ce que je fais moi) c'est de créer un sensor, de le mettre dans un label pour vérifier qu'il arrive et est bien interprété par OR.

Posté(e)

Bonjour,

 

Je bloque vraiment sur ce thermostat, voici les scripts que j'ai trouvé mais que je n'arrive pas a exploiter.

 

Dans le meme dossier que ces fichier j'ai le script "ZiBase.php"

 

Si sa intéresse quelqu'un de réaliser ce thermostat et  de m'apporter son aide

 

Merci d'avance :)

 

 chauffage_trigger.php

<?php

require_once("./ZiBase.php");
$zibase = new ZiBase("192.168.0.101");

   $valeur = $_GET['valeur'];
   
   //DEFINITION DES VARIABLES DES MODES
   $jour = 22;
   $nuit = 23;
   $horsgel = 6;
   $auto = 0;
   $tempjour = 32;
   $tempnuit = 64;
   $stop = 5;
   
   
   //AFFECTE LES VARIABLES ADEQUATES POUR DECLENCHEMENT DU MODE
      
            if ($valeur == 'jour')
               {$zibase->setVariable(22, $jour);}
               
            if ($valeur == 'nuit')
               {$zibase->setVariable(23, $nuit);}
            
            if ($valeur == 'horsgel')
               {$zibase->setVariable(6, $horsgel);}
               
            if ($valeur == 'auto')
               {$zibase->setVariable(0, $auto);}
               
            if ($valeur == 'tempjour')
               {$zibase->setVariable(32, $tempjour);}
               
            if ($valeur == 'tempnuit')
               {$zibase->setVariable(64, $tempnuit);}
            
            if ($valeur == 'stop')
               {$zibase->setVariable(5, $stop);}
   
   
   //UPDATE DU XML REFERENT
   $zibase->runScenario(6);

   file_get_contents("./updateXML.php");
   
   echo "Done Mate";
   
   
   ?>

updateXML.php : 

<?php

require_once("./ZiBase.php");
# Adresse IP de la zibase est nécessaire pour utiliser cette classe
$zibase = new ZiBase("192.168.0.101");

#Definition des Variables On et Off
$var_on = 1;
$var_off = 0;

#Definition des Etats Sonde Texte
   $jour = "Jour";
   $nuit = "Nuit";
   $horsgel = "Hors-Gel";
   $auto = "Auto";
   $tempjour = "T.Jour";
   $tempnuit = "T.Nuit";
   $stop = "Arret";

# Lit la variable 22 et 23 CONSIGNE JOUR et NUIT de la zibase
$cons_jour = $zibase->getVariable(22);
$cons_nuit = $zibase->getVariable(23);
$statut = $zibase->getVariable(24);
$etat = $zibase->getVariable(8);
echo $etat;

//DIVISE PAR 10 LES CONSIGNES
$consigne_jour = $cons_jour/10;
$consigne_nuit = $cons_nuit/10;
//ARRONDI AU PLUS PROCHE LES CONSIGNES
$arrondi_jour = round ($consigne_jour , 0 , PHP_ROUND_HALF_EVEN);
$arrondi_nuit = round ($consigne_nuit , 0 , PHP_ROUND_HALF_EVEN);


                     //ENTETE
                     $dom_object = new DomDocument('1.0', 'utf-8');
                     $dom_object->load("devices_data.xml");
                     $xpath = new Domxpath($dom_object);
                     
                     $dom_object->formatOutput = true;
                     $dom_object->preserveWhiteSpace = false;
                     
                     //RECHERCHE LA SOUS ARBORESCENCE CHAUFFAGE
                     $dom = $dom_object->getElementsByTagName('chauffage')->item(0);
   
      //LECTURE DES ELEMENTS DANS LE FICHIER DEVICES_DATA.XML
      $consjour = $dom->getElementsByTagName('consjour')->item(0);
      $consnuit = $dom->getElementsByTagName('consnuit')->item(0);
      $etat_xml = $dom->getElementsByTagName('etat')->item(0);
      
      $statutModeJour = $dom->getElementsByTagName('modejour')->item(0);
      $statutModeNuit = $dom->getElementsByTagName('modenuit')->item(0);
      $statutModeAuto = $dom->getElementsByTagName('modeauto')->item(0);
      $statutModeHorsgel = $dom->getElementsByTagName('horsgel')->item(0);
      $statutModeTempJour = $dom->getElementsByTagName('tempjour')->item(0);
      $statutModeTempNuit = $dom->getElementsByTagName('tempnuit')->item(0);
      $statutModeStop = $dom->getElementsByTagName('modestop')->item(0);
      $etatexte = $dom->getElementsByTagName('etatexte')->item(0);
      
      
            //AFFECTE LES VALEURS GET AUX VARIABLES ITEM XML
                  #Affectation des Consignes
                  if ($arrondi_jour >= 0)
                     {$consjour->nodeValue = $arrondi_jour;
                     $dom->replaceChild($consjour, $consjour);
                     }
                     
                  if ($arrondi_nuit >= 0)
                     {$consnuit->nodeValue = $arrondi_nuit;
                     $dom->replaceChild($consnuit, $consnuit);
                     }
            #Etat de la Variable ON/OFF V8
            if ($etat == 0)
               {$etat_xml->nodeValue = $etat;
               $dom->replaceChild($etat_xml, $etat_xml);
               }
            if ($etat == 1)
               {$etat_xml->nodeValue = $etat;
               $dom->replaceChild($etat_xml, $etat_xml);
               }
            else
               {$etat_xml->nodeValue = $var_off;
               $dom->replaceChild($etat_xml, $etat_xml);
               }   
                        //MODE JOUR   
                        if ($statut == 22) 
                           {
                           $statutModeJour->nodeValue = $var_on;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           
                           //OFF SUR LE RESTE
                           $statutModeNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           $statutModeAuto->nodeValue = $var_off;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           $statutModeHorsgel->nodeValue = $var_off;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           $statutModeTempJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           $statutModeTempNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           $statutModeStop->nodeValue = $var_off;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           $etatexte->nodeValue = $jour;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }      
                           
                        //MODE NUIT   
                        if ($statut == 23) 
                           {
                           $statutModeNuit->nodeValue = $var_on;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           
                           //OFF SUR LE RESTE
                           $statutModeJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           $statutModeAuto->nodeValue = $var_off;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           $statutModeHorsgel->nodeValue = $var_off;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           $statutModeTempJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           $statutModeTempNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           $statutModeStop->nodeValue = $var_off;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           $etatexte->nodeValue = $nuit;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }

                           //MODE AUTO   
                        if ($statut == 0) 
                           {
                           $statutModeAuto->nodeValue = $var_on;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           
                           //OFF SUR LE RESTE
                           $statutModeJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           $statutModeNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           $statutModeHorsgel->nodeValue = $var_off;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           $statutModeTempJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           $statutModeTempNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           $statutModeStop->nodeValue = $var_off;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           $etatexte->nodeValue = $auto;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }

                           //MODE STOP   
                        if ($statut == 5) 
                           {
                           $statutModeStop->nodeValue = $var_on;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           
                           //OFF SUR LE RESTE
                           $statutModeJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           $statutModeNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           $statutModeHorsgel->nodeValue = $var_off;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           $statutModeTempJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           $statutModeTempNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           $statutModeAuto->nodeValue = $var_off;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           $etatexte->nodeValue = $stop;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }
                           
                           //MODE HORS-GEL   
                        if ($statut == 6) 
                           {
                           $statutModeHorsgel->nodeValue = $var_on;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           
                           //OFF SUR LE RESTE
                           $statutModeJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           $statutModeNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           $statutModeStop->nodeValue = $var_off;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           $statutModeTempJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           $statutModeTempNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           $statutModeAuto->nodeValue = $var_off;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           $etatexte->nodeValue = $horsgel;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }
      
                           //MODE TEMPORAIRE JOUR   
                        if ($statut == 32) 
                           {
                           $statutModeTempJour->nodeValue = $var_on;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           
                           //OFF SUR LE RESTE
                           $statutModeJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           $statutModeNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           $statutModeStop->nodeValue = $var_off;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           $statutModeHorsgel->nodeValue = $var_off;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           $statutModeTempNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           $statutModeAuto->nodeValue = $var_off;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           $etatexte->nodeValue = $tempjour;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }   

                           //MODE TEMPORAIRE NUIT
                        if ($statut == 64) 
                           {
                           $statutModeTempNuit->nodeValue = $var_on;
                           $dom->replaceChild($statutModeTempNuit, $statutModeTempNuit);
                           
                           //OFF SUR LE RESTE
                           $statutModeJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeJour, $statutModeJour);
                           $statutModeNuit->nodeValue = $var_off;
                           $dom->replaceChild($statutModeNuit, $statutModeNuit);
                           $statutModeStop->nodeValue = $var_off;
                           $dom->replaceChild($statutModeStop, $statutModeStop);
                           $statutModeHorsgel->nodeValue = $var_off;
                           $dom->replaceChild($statutModeHorsgel, $statutModeHorsgel);
                           $statutModeTempJour->nodeValue = $var_off;
                           $dom->replaceChild($statutModeTempJour, $statutModeTempJour);
                           $statutModeAuto->nodeValue = $var_off;
                           $dom->replaceChild($statutModeAuto, $statutModeAuto);
                           $etatexte->nodeValue = $tempnuit;
                           $dom->replaceChild($etatexte, $etatexte);                           
                           }


// ENREGISTRE LE FICHIER
$dom_object->save('devices_data.xml');

?>

devices_data.xml : 

<?xml version="1.0" encoding="iso-8859-1"?>
<peripheriques>
<chauffage>
                              <consjour>0</consjour>
                              <consnuit>1</consnuit>
                  </chauffage>
 </peripheriques>

  • 3 semaines après...
×
×
  • Créer...