Homeseer:Dev VBNET
Un article de MacodaWiki.
Homeseer 2.0 a apporté quelque chose qui manquait cruellement avec HS 1.7 : Un environnement de développement, de compilation et de debug.
Couplé avec l'utilisation d'une librairie de fonctions .DLL, c'est parfait pour un développement propre et rapide.
Sommaire |
[modifier]
Ensemble des scripts de mon installation
Si vous désirez voir un ensemble de scripts que j'utilise, vous pouvez télécharger ceux-ci à l'adresse suivante :
[modifier]
Instructions
- Télécharger et installer le produit Microsoft Visual Basic 2005 Express :
- Créer un nouveau projet console
- Recopier le code pour le module principal dans le fichier module.vb
- Recopier le code pour le script dans un nouveau fichier .vb
- Rajouter des références .NET au projet
- Dans le Menu Visual Basic : Projet, Ajouter des Référence, Parcourir ...)
- HomeSeer2 - c:\Program Files\HomeSeer 2\HomeSeer2.dll
- Scheduler - c:\Program Files\HomeSeer 2\Scheduler.dll
- Modifier le source pour changer le login/mot de passe de connexion à Homeseer si nécessaire (default dans mon cas)
- Lancer Homeseer
- Lancer le programme (touche F5)
- Regarder le log Homeseer qui doit contenir
18/03/2007 19:03:42 ~!~Info~!~Remote client connected from: 127.0.0.1 18/03/2007 19:03:42 ~!~DEBUG~!~Voici un code Homeseer permettant d'écrire dans le LOG. 18/03/2007 19:03:53 ~!~Info~!~Remote client disconnected
[modifier]
Code source
[modifier]
Pour le Module Principal
Ce script sert à englober le script qui sera copié dans le répertoire Homeseer et qui sera lancé par Homeseer.
Imports System.IO
#Region "HS Script Template Support"
Module HSScriptTemplate
Private Const MACHINE As String = "localhost"
' Les paramètres de connexion sur votre Homeseer (default/default par défaut)
Private Const USERNAME As String = "default"
Private Const PASSWORD As String = USERNAME
Public hsinterface As New HomeSeer2.application
Public hs As Scheduler.hsapplication
Public Sub Main(ByVal pCmdArgs As String())
Try
With hsinterface
' .NET remoting connection to HS
.SetHost(MACHINE)
Dim Result As String = .Connect(USERNAME, PASSWORD)
If Not Result.Equals(String.Empty) Then
Throw New Exception(String.Format( _
"Unable to connect to HomeSeer: {0}", Result))
Else
hs = .GetHSRef
'Ici on fait appel au Main du script (qui a été renommé automatiquement)
Main_Script_a_Tester()
End If
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
If Not hs Is Nothing Then
hs = Nothing
End If
If Not hsinterface Is Nothing Then
hsinterface = Nothing
End If
End Try
End Sub
End Module 'HSScriptTemplate
#End Region 'HS Script Template Support
[modifier]
pour le script
Ce script sera réellement lancé dans HOMESEER.
' L'utilisation de la variable d'environnement TARGET permet d'avoir un code différent
' dans Visual Basic et dans HOMESEER, permettant ainsi d'avoir un procédure "Main" dans Homeseer et
' une simple procédure "Main_Script_a_tester" dans Visual Basic.
#If TARGET = "exe" Then
Module script_a_tester
Sub Main_Script_a_Tester()
#Else
Public Sub Main(Optional ByVal pParms As String = "")
#End If
With hs
' Le code "Try Catch Finally" permet de faire une gestion des erreurs poussées et très pratique.
Try 'General Error Handler
'Voici le code (ici simpliste) qui sera utiliser dans Homeseer
.WriteLog("DEBUG", "Voici un code Homeseer permettant d'écrire dans le LOG.")
Catch ex As Exception 'General Error Handler
.WriteLog("ERROR", "Error in VB.NET Script")
.WriteLog("ERROR", " Source : " & ex.Source)
.WriteLog("ERROR", " Message : " & ex.Message)
.WriteLog("ERROR", " HelpLink : " & ex.HelpLink)
.WriteLog("ERROR", " StackTrace : " & ex.StackTrace)
Finally 'General Error Handler - Ce qu'il y a dans le FInally sera toujours exécuté, même s'il y a une erreur
End Try 'General Error Handler
End With 'hs
End Sub
#If TARGET = "exe" Then
End Module
#End If
