-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
- Simulation d'un capteur.
- Valeur intermédiaire pour un script qui peut, en plus, être affichée sur une interface utilisateur.
Si la machine héberge plusieurs services xPL, il faut installer un HubxPL et s'assurer qu'il démarre en premier.
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
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.
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é).
Le paramétrage du daemon se fait :
- soit par message xPL de classe config
- soit en utilisant le site de démonstration du [projet xPLWebApi] (https://github.com/FragJage/xPLWebApi)
- soit en éditant le fichier de configuration.
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.
Le paramétrage des compteurs se fait :
- soit par message xPL de classe advanceconfig, plus de détails sur cette classe sur le wiki de la librairie C++ xPLLib.
- soit en utilisant le site de démonstration du [projet xPLWebApi] (https://github.com/FragJage/xPLWebApi)
- soit en éditant le fichier de configuration
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.
- 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)
- hbeat.request
- config.list, config.response, config.current
- advanceconfig.list, advanceconfig.current
- sensor.request (device type : count)