Skip to content
This repository has been archived by the owner on Feb 3, 2019. It is now read-only.
François JARRIER-GELLEZ edited this page Oct 7, 2016 · 2 revisions

Bienvenue sur le wiki xPLFictif

xPLFictif est un daemon/service xPL, fonctionnant sous Windows ou Linux, et qui permet de créer des capteurs fictif sur le réseau xPL.

xPLFictif peut créer tous types de capteurs gérés par la classe de messages xPL sensor.basic. On peut considérer ces capteurs comme des variables en programmation classique.

Pour plus d'information sur le protocole xPL, consulter Wikipédia ou le site du projet xPL.

Exemples d'utilisation

  • Simulation d'un capteur.
  • Valeur intermédiaire pour un script qui peut, en plus, être affichée sur une interface utilisateur.

Installation

Si la machine héberge plusieurs services xPL, il faut installer un HubxPL et s'assurer qu'il démarre en premier.

Sous Windows

Le service Windows embarque son système d'installation en tant que service. Une fois copié dans le dossier C:\Program Files\Fragxpl, il faut taper dans une invite de commande en mode administrateur :

c:
cd "Program Files\Fragxpl"
xPLFictif /install
exit

Le service est alors inscrit dans le gestionnaire de service de Windows. Il faut maintenant le démarrer. Pour cela cliquer sur Démarrer -> Panneau de configuration -> Outils d'administration -> Services, le sélectionner dans la liste, puis cliquer sur Démarrer. Eventuellement fixer le type de démarrage sur automatique pour que le service se lance au démarrage de la machine.

Il est aussi possible de tester le service sans l'installer avec la ligne de commande xPLFictif -Console

Pour désinstaller le service taper la ligne de commande xPLFictif -Remove

Sous Linux

Une fois copié dans le dossier /home/fragxpl, le daemon peut être lancé avec la commande ./xPLFictif -console.

Il gère aussi les paramètres -start, -stop et -restart ce qui lui permet de s'intégrer facilement dans les divers systèmes de démarrage de daemon sous Linux.

Ne pas lire la suite - Rédaction en cours...

Utilisation

La première étape consiste à définir les capteurs. Ces derniers sont possèdent 6 propriétés :

  • configname : Le nom du compteur
  • source : Le nom du device à observer, sous la forme Vendor-Device.Instance:ID.
  • unit : L'unité du compteur (HOUR/MINUTE/SECONDE)
  • resetperiod : Au bout de combien de temps faut-il le remettre à zéro (facultatif)
  • resetunit : L'unité pour le temps de remise à zéro (MINUTE/HOUR/DAY/MONTH/YEAR).
  • savevalue : Mettre à 1 pour stocker la valeur du compteur sur le disque.

Exemple :

  • configname = Sauna
  • source = fragxpl-onewire.sauna:chauffage.
  • unit = HOUR
  • resetperiod = 1
  • resetunit = MONTH
  • savevalue = 0

Ce compteur permet de savoir combien d'heure le sauna à chauffé sur le mois en cours. Tant que le sauna est en chauffe, le deamon va envoyer des messages xPL sensor.basic de type count en précisant la valeur current (le temps de chauffe cumulé sur le mois) et la valeur units (l'unité).

Paramétrage du daemon

Le paramétrage du daemon se fait :

Pour plus de détails sur les différentes options consulter le chapitre Classe xPLDevCfg de la page stockage des paramètres du wiki de la librairie C++ xPLLib.

Paramétrage des compteurs

Le paramétrage des compteurs se fait :

Pour le fichier de configuration, il suffit de créer une nouvelle section par compteur, le nom de la section étant le nom du compteur et de renseigner les 5 propriétés : source, unit, resetperiod, resetunit, savevalue. Exemple :

[Sauna]
source = fragxpl-onewire.sauna:chauffage.
unit = HOUR
resetperiod = 1
resetunit = MONTH
savevalue = 0

Pour plus d'informations consulter la page stockage des paramètres du wiki de la librairie C++ xPLLib.

Messages xPL supportés

Messages sortant

  • hbeat.app, hbeat.end
  • config.app, config.list, config.current
  • advanceconfig.list, advanceconfig.current (plus de détails sur cette classe sur le wiki de la librairie C++ xPLLib)
  • sensor.basic (device type : count)

Messages entrant

  • hbeat.request
  • config.list, config.response, config.current
  • advanceconfig.list, advanceconfig.current
  • sensor.request (device type : count)