Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Script Zidom

Avatar de l’utilisateur
Sshafi
Actif
Messages : 3882
Inscription : 01 juil. 2014, 16:08
Localisation : Albi

Script Zidom

Message par Sshafi » 23 nov. 2016, 15:23

A quoi ça sert :

- Le script à pour objectif de remonter les informations de vos périphériques Zibase dans Jeedom
- Le script est en cours de développent, donc soyer indulgent.
- A terme, ce script devrait être convertit en plugin

Etat :

Actuellement le développement se focalise sur la bonne interprétation des trames Zibase

Principe de fonctionnement :

Principe de fonctionnement en prenant pour exemple une sonde Oregon :
Une sonde Oregon génère la trame suivante :

Code : Tout sélectionner

Oct 26 2014 10:31:08 Received radio ID (ZWAVE ZA8 Low-Power Measure Total Energy=10.6kWh Power=130W Batt=Ok): Conso_Prise1 (PZA8)<br>
 Oct 26 2014 10:31:15 Received radio ID (433Mhz Oregon Noise=2091 Level=3.7/5 THGx8x0 Ch=1 T=+14.5C (+58.1F) Humidity=94%  Batt=Low): TempExt (OS4196953345)<br>
 Oct 26 2014 10:31:22 Launch SCENARIO: 3 (trigged by TIMER)<br>
 Oct 26 2014 10:31:23 Completed SCENARIO: 3<br>
 Oct 26 2014 10:31:25 Sent radio ID (1 Burst(s), Protocols='XDD868 Radiator/Pilot Wire :Auto' ): B1_ON<br>
 Oct 26 2014 10:31:25 Received radio ID (433Mhz Oregon Noise=2076 Level=4.2/5 Temp-Hygro Ch=2 T=+17.4C (+63.3F) Humidity=66%  Batt=Ok): TempComble (OS439179778)<br>
 Oct 26 2014 10:31:26 Received radio ID (433Mhz OWL Noise=2082 Level=4.5/5 High-Power Measure Ch=2 Total Energy=4641.7kWh Power=600W Batt=Ok): Power (WS132632)<br>
 Oct 26 2014 10:31:32 Received radio ID (433Mhz Oregon Noise=2080 Level=5.0/5 Temp-Hygro Ch=1 T=+20.6C (+69.0F) Humidity=61%  Batt=Ok): Sonde_RIKA (OS439158017)<br>
 Oct 26 2014 10:31:32 Launch SCENARIO: 23 (trigged by OS439158017)<br>
 Oct 26 2014 10:31:32 Completed SCENARIO: 23<br>
 Oct 26 2014 10:31:42 Received radio ID (433Mhz Oregon Noise=2090 Level=1.5/5 Temp-Hygro Ch=2 T=+19.2C (+66.5F) Humidity=68%  Batt=Low): TempAlyssia (OS439185922)
Prenons l'exemple de la trame

Code : Tout sélectionner

Oct 26 2014 10:31:32 Received radio ID (433Mhz Oregon Noise=2080 Level=5.0/5 Temp-Hygro Ch=1 T=+20.6C (+69.0F) Humidity=61%  Batt=Ok): Sonde_RIKA (OS439158017)
Le script Zidom permet d'interpréter la trame, et d'envoyer les informations à jeedom :

Code : Tout sélectionner

Sun Oct 26 2014 20:13:17 GMT+0100 (CET) Received radio ID (<rf>433Mhz Oregon</rf> Noise=<noise>2109</noise> Level=<lev>5.0</lev>/5 <dev>Temp-Hygro</dev> Ch=<ch>1</ch> T=<tem>+22.6</tem>C (+72.6F) Humidity=<hum>53</hum>%  Batt=<bat>Ok</bat>): <id>OS439158017</id>
Debug : oregon    : true | Composant/Id OS439158017
 Test de l equipement Oregon Sonde_RIKA, d'ID Zibase OS439158017 et de type temperature
  Envoi de la requete HTTP temperature: +22.6
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=87idcptlk12srv8xfri9&type=virtual&id=65&value=+22.6
  Envoi de la requete HTTP Niveau de reception radio: 5.0
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=87idcptlk12srv8xfri9&type=virtual&id=68&value=5.0
  Envoi de la requete HTTP Batterie: Ok
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=87idcptlk12srv8xfri9&type=virtual&id=67&value=Ok
  Envoi de la requete HTTP Hygrometrie: 53
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=87idcptlk12srv8xfri9&type=virtual&id=66&value=53
Sun Oct 26 2014 20:13:17 GMT+0100 (CET)
Prérequis

A définir

Installation du script

A partir du Github https://github.com/zeldoi5/Zidom, récupérer la dernière version du fichier parse_generate_baseXX.js
Le plus simple est de récupérer l'URL de la version raw du fichier (https://raw.githubusercontent.com/zeldo ... _base10.js) et le la télécharger sur votre système.
Sur la machine hôte (vous pouvez l'héberger directement sur votre serveur Jeedom si vos ressources système le permet) :
Créer un répertoire:

Code : Tout sélectionner

 # mkdir zidom 
Télécharger le script:

Code : Tout sélectionner

# wget https://raw.githubusercontent.com/zeldoi5/Zidom/master/parse_generate_baseXX.js
(Remplacer le XX par la version en cours du script)

Modifier dans le script avec un vi ou nano:
ligne 2 :

Code : Tout sélectionner

zibase_ip = "192.168.0.x"
(spécifier l'adresse IP de votre zibase)
et les lignes 14 à 17 :

Code : Tout sélectionner

// A remplir :
 zibase_device = "ZiBASExxxxx"; (disponible dans l'interface Zibase=> avancé => système)
 zibase_token = "yyyyyyyyyy"; (disponible dans l'interface Zibase=> avancé => système)
 jeedom_ip = "192.168.0.x"; (spécifier l'adresse IP de votre jeedom)
 jeedom_api = "zzzzzzzzzzzzzzzzzz"; (disponible dans jeedom => administration => configuration => Configuration générale => Clef api)
Génération du fichier zidomXX.js

Code : Tout sélectionner

# node parse_generate_baseXX.js
(Remplacer le XX par la version en cours du script)

Exécution du script zidomXX.js

Code : Tout sélectionner

# nodejs zidomXX.js
(Remplacer le XX par la version du script générée précédemment)

Création de vos périphériques virtuels

Créer des périphériques virtuels sur votre Jeedom, récupérer les id que vous insérer dans le script zidomXX.js.

Plugin virtual

Le plugin "Virtual" doit être installé.
Aller dans Plugins => Programmation => Virtual
[img]Virtuel.png[/img]

Création de l'équipement

Cliquer en haut à gauche sur "ajouter un équipement"
Spécifier, le nom de l'équipement virtuel, l'objet parent, sa ou ses catégorie :
[img]VirtuelOregon1.png[/img]
Cliquer sur "Activer" et "Visible"
En fonction de votre modèle de sonde, ajouter autant l'info virtuelle que nécessaire.
Dans mon cas, la sonde en question remonte, la température, l'hydrométrie, son niveau de batterie et radio. VirtuelOregon2.png

ID Jeedom

Noter bien les numéro d'ID de chaque info virtuelle :
  • 65 : Température
  • 66 : Hydrométrie
  • 67 : Batterie
  • 68 : Radio
Ces informations seront nécessaire pour le script Zidom.

Intégration des ID Jeedom dans le script Zidom

Script Zidom.js

Dans le script zidomXX.js, vous devriez retrouver les variables correspondantes à votre sonde.
! Le nom de la sonde correspond à la convention de votre Zibase !
Essayer de reproduire les mêmes nom entre Jeedom et la Zibase. Eviter aussi les accents et caractères spéciaux
Remplacer les numéros d'ID par défaut par ceux de votre configuration Jeedom relevée plus haut :
j_Sonde_RIKA = 65; //Sonde_RIKA;
j_Sonde_RIKA_hygro = 66; //Sonde_RIKA;
j_Sonde_RIKA_batterie = 67; //Sonde_RIKA;
j_Sonde_RIKA_radio = 68; //Sonde_RIKA;
Exécution

Le traitement du script sera le suivant pour

Code : Tout sélectionner

--------------------------------------------------------------------------------------
Sun Oct 26 2014 20:13:17 GMT+0100 (CET) Received radio ID (<rf>433Mhz Oregon</rf> Noise=<noise>2109</noise> Level=<lev>5.0</lev>/5 <dev>Temp-Hygro</dev> Ch=<ch>1</ch> T=<tem>+22.6</tem>C (+72.6F) Humidity=<hum>53</hum>%  Batt=<bat>Ok</bat>): <id>OS439158017</id>
Debug : oregon    : true | Composant/Id OS439158017
 Test de l equipement Oregon Sonde_RIKA, d'ID Zibase OS439158017 et de type temperature
  Envoi de la requete HTTP temperature: +22.6
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=xxxxxxxxxxxxxxxxxxxx&type=virtual&id=65&value=+22.6
  Envoi de la requete HTTP Niveau de reception radio: 5.0
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=xxxxxxxxxxxxxxxxxxxx&type=virtual&id=68&value=5.0
  Envoi de la requete HTTP Batterie: Ok
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=xxxxxxxxxxxxxxxxxxxx&type=virtual&id=67&value=Ok
  Envoi de la requete HTTP Hygrometrie: 53
  Requete :http://192.168.0.59/jeedom/core/api/jeeApi.php?api=xxxxxxxxxxxxxxxxxxxx&type=virtual&id=66&value=53
Sun Oct 26 2014 20:13:17 GMT+0100 (CET)
--------------------------------------------------------------------------------------
Widget Jeedom

Pour la gestion des widgets, suivre le tuto suivant ;

Tuto-widget-sonde

Bons tests
??? Menfin ...
VM ESXi # Aeon Lab Gen5 | RFXtrx433E | ...
Trucs & Astuces

Verrouillé

Revenir vers « Plugins »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité