Objectif du Framework
Le framework est une librairie des fonctions vbscripts les plus utilisées. Tout au long de mes développements, j'améliore cette librairie pour y ajouter les développements qui peuvent reservir. Si vous utilisez mon framework, dans l'avenir, vous pourrez utiliser chaque nouvelle version en copiant/collant juste les nouvelles librairies. Tous mes développements gardent une compatibilité ascendante.
**Attention : **
Suite à la demande de plusieurs membres du forum, j'ai modifié la table EVENTS du framework afin de transformer la colonne VALUE en entier "int(11)". Auparavant cette colonne était une chaîne de caractères "varchar" qui rendait moins pratique l'utilisation des directes des valeurs.
Vous trouverez dans le répertoire SQL du framework, deux scripts SQL pour créer votre table EVENT:
- /sql/create-events (before FM4.3).sql =>pour les versions de framework avant 4.3
- /sql/create-events (since FM 4.3).sql =>pour les versions de framework après 4.3
Historique des différentes versions
La version actuelle la plus stable est la version 4.3.2 (Téléchargeable ici)
Version 4.3.0
- Ajout d'une librairie faisant des graphiques (en utilisant kavachart)
- Ajoute la possibilité de créer des buttons sur les devices (par simple paramétrage des fichiers dev_xxx.ini )
- Amélioration de la grammaire ! en utilisant A12**STRING A12**STATUS A12**VALUE vous pouvez paramétrer votre watch.dog pour paramétrer des devices ACRF (voir nouveau module watch.dog)
- Ajout de la fonction runSQLQuery pour executer en une ligne de commande des requetes SQL comme des DELETE ou des UPDATE.
- Ajout d'un paramètre WGET_PARAMS pour que les personnes qui utilisent un proxy local puisse en profiter lorsque le framework fait des wget
- Ajoute la possibilité de gérer location et location2 via les fichiers device properties (dev_xxx.ini)
- La fonction SaveFileAppend fonctionne correctement depuis ce framework
- La property device.MISC fonctionne correctement depuis les fichiers dev_xxx.ini. Elle vous permet de desactiver les logs d'un device si vous le souhaitez (Voir l'aide HS2 pour voir les différentes valeurs possibles)
Version 4.2.2
- Ce framework corrige un bug qui logguait plusieurs voir certains changements
- Gère les Events avec EVT_ABS_TIME=12 (Merci à Laser pour sa contribution)
Version 4.2.1
- Maintenant, la règle [CONTAINS;xx;xx] ne tient pas compte de la casse
- Corrige les bugs de G_DEV_WHICH_MUST_BE_LOGGED et "traceDeviceChanges". Ces events n'étaient plus sauvés dans la base de données depuis le FM 4.2.0.
- "traceDeviceChanges" sauve maintenant les events avec une présicion à la seconde. Depuis que je monitore ma chasse d'eau, j'ai besoin d'une précision à la seconde :)
Version 4.2.0
- Utilise WGET au lieu d'utilise IE (Corrige les problèmes de Météo avec IE7)
- Implémentation des règles CONTAINS, EXECX10 et EXECEVT (Voir Section Support)
- Support l'envoi de SMS via SKYPE 3.0
- Corrige les bugs sur les propriétés MISC et CAN_DIM
- Ajout d'une fonction SaveFileAppend (Merci à Seb pour sa contribution)
- Gère les Events avec EVT_ABS_TIME=11 (Merci à Laser pour sa contribution)
Version 4.1.2
- Amélioration du packaging, maintenant les commandes SYSINTERNALS sont livrés avec le zip du framework. La dll wolcom.dll aussi, il vous suffit juste de l'installer.
- Amélioration de la gestion des règles (régle = sorte d'expression "si alors sinon"), maintenant, on peut baser une règle en fonction de la date du dernier déclenchement.
Version 4.1.1
- Amélioration pour que le module MANAGE.NETWORK réponde plus vite.
- Ajout d'une fonction SetDeviceWithPolicy qui permet de controler un module selon des règles (régle = sorte d'expression "si alors sinon").
- Avec cette version, au démarrage de Homeseer, le framework prend en priorité les status/string/value de devices provenant de la base de données Homeseer.
- Correction de bug : Nettoyage des requêtes SQL avec des '
- Ajout d'une fonction SaveINIFile qui sauve une string dans un fichier .ini
- Amélioration de la fonction doExpression pour gérer les extractions de chaines à multiple occurrences (Utilisez par exemple lors de la récupération des prévisions météo).
Version 4.1.0
- Ajout de la compatibilité HS 2.0.41
Version 4.0.9
- Correction de bug : pour qu'on puisse utiliser les modules sans MySQL
Ajout d'une fonction notifyWithNabaztag pour piloter le NABAZTAG
Pré-requis
Pour utiliser le framework, vous avez besoin des logiciels ci-dessous:
* Homeseer 1.7 ou 2.X (seulement 2.0.41 a été testé)
* Les utilitaires SYSINTERNALS sont nécessaires si vous voulez utiliser les fonctions killProcess ou isAlive
* La dll wolcom.dll est nécessaire si vous souhaitez utiliser la fonction doWakeUp.
* La dll Skype4COM.dll est nécessaire si vous souhaitez vous envoyer des SMS via Skype v3.0. Attention, un compte et des crédits sont nécessaires (0,11 centimes d'euros le SMS)
* La commande wget-1.8.2.exe est nécessaire, pour les modules Domotic's qui prélèvent des informations sur des pages Web (exemple : le module GET.METEO.FROM.YAHOO).
Comment installer le framework ?
Le framework étant une librairie de fonctions et de paramètres communs à toute votre domotique, vous devez installer le framework séparément (hors de vos modules DOMOTICS). Pour installer un framework commun à plusieurs modules, il faut suivre ces étapes:
- Arrêtez votre application Homeseer
- Dézippez les fichiers dans le répertoire scripts de Homeseer. Vous devez avoir une structure du style C:\Program Files\Homeseer 2\scripts\lib, C:\Program Files\Homeseer 2\scripts\lib\config, etc
- Si vous voulez utiliser la fonction qui envoie des SMS, vous devez éditer votre fichier startup.txt et ajouter la ligne ci-dessous dès le début du fichier: hs.run "scripts\install.vbs" . Si vous voulez un exemple, vous pouvez regarder le fichier startup.txt.domotics.
- Si vous utilisez une base MySQL, il vous faut modifier votre fichier startup.txt et ajouter la ligne hs.RegisterStatusChangeCB "lib\framework_domotics.vbs","traceDeviceChanges" à la fin de ce fichier (Cette ligne permet de sauver en base tous les changements de devices). Si vous voulez un exemple, vous pouvez regarder le fichier startup.txt.domotics.
- Editez le fichier de paramètre framework_domotics.inc pour configurer votre environnement. Ce fichier est ici : C:\Program Files\Homeseer 2\scripts\lib\framework_domotics.inc
- Exécuter le fichier C:\Program Files\Homeseer 2\scripts\scripts\install.bat. Ce fichier va enregistrer les deux dll wolcom et skype sur votre PC.
- Redémarrez Homeseer
Comment paramétrer le fichier framework_domotics.inc ?
Je détaille ici les paramètres que vous pouvez changer selon vos besoins. En revanche, je vous déconseille de changer les autres, sinon vous aurez du mal à utiliser mes nouvelles versions de framework et de modules.
Le framework est optimisé pour envoyer un ordre X10 seulement s'il est nouveau, sinon l'ordre n'est pas envoyé. Si vous voulez envoyé l'ordre dans tous les cas, il vous faut utiliser G_SENDONLY_NEWX10 = False au lieu de True.
Si vous souhaitez débugger ce qu'il se passe, vous pouvez temporairement utiliser G_DEBUG_MODE = True. Les logs du framework vont par défaut dans c:\Program Files\Homeseer 2\scripts\log\framework_domotics.log. Attention, ce mode est très verbeux, n'oubliez de remettre G_DEBUG_MODE à False !
Le Framework a besoin d'un device ! Il s'agit d'un device qui permet d'arrêter l'exécution des scripts systèmes à la veille d'un reboot. Ce device permet aussi de détecter si votre PC reboot automatiquement, ou manuellement, lors d'une coupure de courant. C'est un simple device de type ON, OFF. Par défaut, il s'agit du device G_BLOCK_ALL_EXT_SCRIPTS = "I14", mais vous pouvez le changer.
Depuis le framework 4.2.0, une nouvelle variable apparait :G_DEV_WHICH_CANNOT_BE_LOGGED = "Virtual;MS13;C/RF ;SOFTWARE SECURITY SYSTEM". Cette variable permet de lister les types de devices que vous souhaitez logguer dans votre base de données. Vous pouvez changer cette variable selon votre projet.
Si vous utilisez une base de données MySQL, vous devez renseigner les 4 variables suivantes : G_SERVER = "localhost", G_DB_NAME = "xxx", G_DB_USER = "xxx", G_DB_PASSWD = "ppp". Vous devez également créer les tables events et logs conformément à ce que le framework a besoin. Pour celà, je vous propose quelques scripts de création dans le répertoire C:\Program Files\Homeseer 2\scripts\sql\*
G_DEFAULT_AUTHOR = "Default set by framework" est l'acteur par défaut qui loggue dans la base MySQL, vous pouvez le changer pour mettre votre chaine de caractères.
Si vous utilisez un NABAZTAG, vous devez éventuellement modifier les paramètres suivants : G_NABAZTAG_DEFAULT_MESSAGE = "Zut, le message est vide !", G_NABAZTAG_POSLEFT = 0
G_NABAZTAG_POSRIGHT = 0, G_NABAZTAG_VOICE = "claire22s 100 100 Claire", G_NABAZTAG_FROM = "_domotics".
Le paramètre suivant doit être changé, il s'agit du nom de votre NABAZTAG : G_NABAZTAG_TO = "domotics".
Si vous utilisez des modules qui envoient des mails, vous devez paramétrer G_MAIL_FROM = "votre adresse@ votre provider" et G_MAIL_TO = "votre adresse@ votre provider"
Si vous souhaitez utiliser les SMS via SKYPE, vous devez installer SKYPE v3.0. Vous devez ensuite créer vos contacts SKYPE. Et enfin donner ces informations dans le fichier framework_domotics.inc:
- G_SMS_TO = "+33666667849" est le numéro de destinataire par défaut
- G_SMS_COST = 0.11 est le cout actuelle du SMS SKYPE
- G_SMS_BUDGET = 9.36 est votre budget SKYPE la dernière fois que vous l'avez rechargé
- G_SMS_DEV_SUMMARY = "Z25" est le device Homeseer vous donnant le reste de SMS
- G_SMS_DEV_SENT = "Z26" est le device Homeseer vous donnant le nombre de SMS envoyés
- G_SMS_DEV_TOBESENT = "Z27" est le device Homeseer vous donnant le nombre de SMS restant sur votre budget
Le framework propose une fonction WGET pour télécharger des pages web comme la méteo ou tempo. si certains de vous utilisent un proxy local, la constante WGET_PARAMS vous permet d'y déposer le user / password à utiliser ... Sinon, laissez cette chaine vide.
Enfin, vous devez vérifier votre variable G_FRAMEWORK_ROOT_FOLDER_WITHOUTBLANKS = "c:\Progra~1\HomeSe~1\scripts\". Selon si vous avez un ou deux Homeseer, il faudra modifier cette valeur vitale pour le framework. Pour vérifier cette valeur, je vous propose d'ouvrir une commande DOS, de faire "c: <Entrée>", puis "cd c:\Progra~1\HomeSe~1\scripts\ <Entrée>". Normalement, vous devriez vous retrouver dans le répertoire scripts du homeseer que vous souhaitez utiliser. Dans le cas contraire, votre variable doit être changée.

















