Forum eedomus
https://forum.eedomus.com/

EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER v2
https://forum.eedomus.com/viewtopic.php?f=17&t=985
Page 1 sur 1
Auteur:  sle49 [ 05 Avr 2013 20:46 ]
Sujet du message:  EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER v2

Bonjour,

J'aimerais savoir si quelqu'un a déja utilisé ce serveur 1-wire avec l'eedomus.
les températures sont accessible via le réseau local sur un fichier xml.
exemple avec un seule sonde de température:
-<Devices-Detail-Response><PollCount>84554</PollCount><DevicesConnected>1</DevicesConnected><LoopTime>1.037</LoopTime><DevicesConnectedChannel1>1</DevicesConnectedChannel1><DevicesConnectedChannel2>0</DevicesConnectedChannel2><DevicesConnectedChannel3>0</DevicesConnectedChannel3><DataErrorsChannel1>0</DataErrorsChannel1><DataErrorsChannel2>0</DataErrorsChannel2><DataErrorsChannel3>0</DataErrorsChannel3><VoltageChannel1>4.71</VoltageChannel1><VoltageChannel2>4.72</VoltageChannel2><VoltageChannel3>4.71</VoltageChannel3><VoltagePower>4.95</VoltagePower><DeviceName>OWServer_v2-Enet</DeviceName><HostName>EDSOWSERVER2</HostName><MACAddress>00:04:A3:B1:F3:28</MACAddress><owd_DS18B20 Description="Programmable resolution thermometer"><Name>DS18B20</Name><Family>28</Family><ROMId>A5000004664A9328</ROMId><Health>7</Health><Channel>1</Channel><RawData>06014B467FFF0A10CCFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData><PrimaryValue>16.3750 Deg C</PrimaryValue><Temperature Units="Centigrade">16.3750</Temperature><UserByte1 Writable="True">75</UserByte1><UserByte2 Writable="True">70</UserByte2><Resolution>12</Resolution><PowerSource>255</PowerSource></owd_DS18B20></Devices-Detail-Response>

Par contre je n'arrive pas a récuperer les valeurs dans l'eedomus en utilisant un capteur http et le chemin xpath.
j'ai essaye plusieurs chemin xpath mais a chaque fois : j'ai une erreur et pas la valeur.

Merci d'avance
Auteur:  domotics [ 14 Avr 2013 22:40 ]
Sujet du message:  Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Bonsoir,
Ca doit fonctionner ...
Quel XPatch as tu essayé ?
A+
Domotics
Auteur:  sle49 [ 15 Avr 2013 20:54 ]
Sujet du message:  Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

J'ai essaye avec /Devices-Detail-Response/owd_DS18B20/PrimaryValue pour la temperature
mais l'eedomus me renvoit valeur lue vide.
j'avais essaye d'afficher d'autres valeurs sans succes.
Chemin xpath recupere avec google chrome.test de validation sur site documentation eedomus en echec( valeur vide a chaque fois)
Auteur:  sle49 [ 12 Mai 2013 21:35 ]
Sujet du message:  Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Bonsoir,
après quelques recherches, voici la solution si cela interesse quelqu'un:
le fichier XML généré n'a pas l'air compatible, surtout : toutes les temperatures ont le meme chemin xpath!!.
le principe est de re-generer un nouveau fichier XML avec les valeurs de temperatures.Dans l'interface du serveur OW-SERVER v2 ( menu POST Client Configuration): on indique le fichier PHP a lancer toutes les 60 secondes pour generer le nouveau fichier XML.
voici mon fichier PHP:
<?php
$tbl_sonde=array (
'sonde_1' => '2D000003EA184628',
'sonde_2' => '7A000003EA4DDE28',
'sonde_3' => 'C1000004666EA128'

);

$fichier = 'http://192.168.1.200/details.xml';


//script de Rno: extrait les températures d'un fichier xml et crée un tableau
//sources : http://www.touteladomotique.com/forum/v ... b&start=12
$xml = simplexml_load_file($fichier);
$i = 0;
foreach($xml->children() as $L0child){
$L0ligne = $L0child->getName();
$L0valeur = trim($L0child);
$result[$L0ligne] = trim($L0child);
foreach($L0child->children() as $L1child){
$L1ligne = $L1child->getName();
$L1valeur = trim($L1child);
// HARD CODED VALUES HERE
if($L1ligne == 'ROMId' ) { $ROMid = $L1valeur; $i++;}
if($L1ligne == 'Temperature' ) {
//$result[$L0ligne][$ROMid][$L1ligne] = trim($L1child);
$sonde[$ROMid]=round($L1valeur,2);
}
}
}

error_reporting(0); //evite l'affichage erreur si id incorrect
// echo ' sonde_1: '.$sonde[$tbl_sonde['sonde_1']]."<BR>";
// echo ' sonde_2: '.$sonde[$tbl_sonde['sonde_2']]."<BR>";
// echo ' sonde_3: '.$sonde[$tbl_sonde['sonde_3']]."<BR>";

// source pour la creation du xml : http://www.formatix.eu/domdocument-crea ... r-xml.html
// Get an instance of Domdocument
$doc = new DOMDocument();
// specify the version and encoding
$doc->version = '1.0';
$doc->encoding = 'ISO-8859-1';

// Create a comment
$comment_elt = $doc->createComment('Generated by sle49 ');
// Put this comment at the Root of the XML doc
$doc->appendChild($comment_elt);

// Create an Empty element 'temperatures'
$note_elt = $doc->createElement('temperatures');
// Put the 'temperatures' element at the Root of the XML doc (just after the comment)
$doc->appendChild($note_elt);

// Create elements
$temperature1 = $doc->createElement('temperature1', $sonde[$tbl_sonde['sonde_1']]);
$temperature2 = $doc->createElement('temperature2', $sonde[$tbl_sonde['sonde_2']]);
$temperature3 = $doc->createElement('temperature3', $sonde[$tbl_sonde['sonde_3']]);
$heure_insert = $doc->createElement('heure',date("H:i:s"));

// Specify that thos newly created elements are 'note' children
$note_elt->appendChild($temperature1);
$note_elt->appendChild($temperature2);
$note_elt->appendChild($temperature3);
$note_elt->appendChild($heure_insert);


// Beautify
$doc->formatOutput = true;
// Display the XML content we just created
echo $doc->saveXML();
// Save this to simple_eng.xml
$doc->save('temperatures.xml');
?>

Voici le fichier XML generé:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--Generated by sle49 -->
-<temperatures>
<temperature1>15.25</temperature1>
<temperature2>20.31</temperature2>
<temperature3>20.06</temperature3>
<heure>22:33:44</heure>
</temperatures>

donc facilement utilisable dans l'eedomus.
Bonne soirée
Auteur:  yaprev [ 23 Mars 2015 22:11 ]
Sujet du message:  Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Bonjour.

il y a plus simple. c'est decrit sur le forum

URL de la requête http://adresseipdetonserverow/details.xml
Chemin XPath : //*[local-name() = 'Temperature'] pour contourner le namespace par défaut.
et (//*[local-name() = 'Temperature'])[2] pour le second élément nommé Temperature

profites en pour choisir type de données: nombre décimal
et unité : °C

je te conseille aussi de creer une autre requête pour identifier les sondes: quand tu as la syntaxe, c'est rapide: Chemin XPath : //*[local-name() = 'ROMId']

Resultat affiché
Sonde T° owserver
23.5 ° C depuis 50 sec

c cool ! yann :D
Auteur:  schizo [ 26 Avr 2015 07:20 ]
Sujet du message:  Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

yaprev a écrit:Bonjour.

il y a plus simple. c'est decrit sur le forum

URL de la requête http://adresseipdetonserverow/details.xml
Chemin XPath : //*[local-name() = 'Temperature'] pour contourner le namespace par défaut.
et (//*[local-name() = 'Temperature'])[2] pour le second élément nommé Temperature

profites en pour choisir type de données: nombre décimal
et unité : °C

je te conseille aussi de creer une autre requête pour identifier les sondes: quand tu as la syntaxe, c'est rapide: Chemin XPath : //*[local-name() = 'ROMId']

Resultat affiché
Sonde T° owserver
23.5 ° C depuis 50 sec

c cool ! yann :D


Bonjour à vous,
Je viens du monde Vera et j'avoue que je suis un peu perdu depuis une semaine devant la eedomus+
J'ai un Serveur one wire sur lequel je voudrais bien récupérer mes sondes.
Je n'arrive pas en suivant le tuto décris plus haut.

Un petit coup de pouce serait apprécié. :D :D

Merci par avance.
Auteur:  schizo [ 26 Avr 2015 08:03 ]
Sujet du message:  Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Je viens de trouver une solution simple:

http://IP-Server-One-Wire/gettag.csv?ro ... re&title=0

Le résultat renvoyé est de la forme:
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>21.375
</root>


Bonne journée
Page 1 sur 1 Le fuseau horaire est UTC+1 heure