EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER v2

et assistants vocaux

EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER v2

Messagepar sle49 » 05 Avr 2013 20:46

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
sle49
 
Messages : 4
Inscription : 05 Avr 2013

Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Messagepar domotics » 14 Avr 2013 22:40

Bonsoir,
Ca doit fonctionner ...
Quel XPatch as tu essayé ?
A+
Domotics
domotics
 
Messages : 107
Inscription : 09 Jan 2012

Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Messagepar sle49 » 15 Avr 2013 20:54

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)
sle49
 
Messages : 4
Inscription : 05 Avr 2013

Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Messagepar sle49 » 12 Mai 2013 21:35

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
sle49
 
Messages : 4
Inscription : 05 Avr 2013

Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Messagepar yaprev » 23 Mars 2015 22:11

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
yaprev
 
Messages : 1
Inscription : 23 Mars 2015

Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Messagepar schizo » 26 Avr 2015 07:20

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.
eedomus+ | Vera3 | IPX800 V3 | X880 | X4R | ++Modules Fibaro | station météo Orégon | détecteur de pluie KEMO | OW-SERVER EDS 1-wire | Lecteurs biométriques | Synology | Cameras IP | Googles Home | Fronius PV
schizo
 
Messages : 108
Inscription : 02 Fév 2015
Localisation : Marrakech

Re: EMBEDDED DATA SYSTEM - Serveur Ethernet 1-Wire OW-SERVER

Messagepar schizo » 26 Avr 2015 08:03

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
eedomus+ | Vera3 | IPX800 V3 | X880 | X4R | ++Modules Fibaro | station météo Orégon | détecteur de pluie KEMO | OW-SERVER EDS 1-wire | Lecteurs biométriques | Synology | Cameras IP | Googles Home | Fronius PV
schizo
 
Messages : 108
Inscription : 02 Fév 2015
Localisation : Marrakech


Retour vers Périphériques réseau

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 24 invité(s)