-
Notifications
You must be signed in to change notification settings - Fork 0
Home
xPLCalcul est un daemon/service xPL, fonctionnant sous Windows ou Linux, et qui permet d'effectuer des calculs à partir de valeurs lues sur le réseau xPL. Le résultat du calcul est renvoyer sur le même réseau et peut, par exemple, faire basculer un device sur ON.
xPLCalcul support les opérations standard +,-,*,/, les opérateurs logique AND et OR, et les comparaisons inférieure, supérieure.
Pour plus d'information sur le protocole xPL, consulter Wikipédia ou le site du projet xPL.
- J'allume une lumière dès que la luminosité est inférieur à 30%.
- Fixer la puissance de la chaudière en fonction de la température extérieure P=20+(20-Température extérieure/10).
- Mettre la piscine en marche si elle a filtré moins de trois heures ou que les panneaux solaire fournissent de la chaleur.
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"
xPLCalcul /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 xPLCalcul -Console
Pour désinstaller le service taper la ligne de commande xPLCalcul -Remove
Une fois copié dans le dossier /home/fragxpl, le daemon peut être lancé avec la commande ./xPLCalcul -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 calculs à effectuer. Ces derniers sont possèdent 4 propriétés :
- configname : Le nom du calcul
- output : Le nom du device qui va recevoir le résultat du calcul, sous la forme Vendor-Device.Instance:ID.
- type : Type du device xPL (output, balance, slide, ...) voir les types gérés par le schéma xPL control.basic.
- formula : Formule de calcul
Exemple :
- configname = Piscine
- output = fragxpl-onewire.zoe:Filtration
- type = output
- formula = fragxpl-fictif.zoe:PiscineFiltration|fragxpl-fictif.zoe:PiscineChauffage
Cette formule de calcul permet de mettre la filtration de la piscine en marche si l'indicateur filtration est actif ou si l'indicateur chauffage est actif.
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 calculs 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 3 propriétés : output, type, formula. Exemple :
[Piscine]
output = fragxpl-onewire.zoe:Filtration
type = output
formula = fragxpl-fictif.zoe:PiscineFiltration|fragxpl-fictif.zoe:PiscineChauffage
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)
- control.basic
- sensor.request
- hbeat.request
- config.list, config.response, config.current
- advanceconfig.list, advanceconfig.current
- sensor.basic