Hallo,...
Ik probeer een manier te vinden om een waarde van een in homeseer aanwezige device te gebruiken in een applicatie.
kan ik de waarde van bv een temp sensor importeren in bv een v.b .net projectje.
ik gebruik nog de HS2 software.
is het mogelijk een homeseer device value aan te roepen
Re: is het mogelijk een homeseer device value aan te roepen
Natuurlijk kan dat, geen enkel probleem
In hoeverre is je kennis van .NET ontwikkelen? Kan ik gewoon een paar code snippers posten of moet je een compleet voorbeeld hebben maar dat dan weer uitgebreider is met overbodige zaken waar je weer overheen moet lezen?
In hoeverre is je kennis van .NET ontwikkelen? Kan ik gewoon een paar code snippers posten of moet je een compleet voorbeeld hebben maar dat dan weer uitgebreider is met overbodige zaken waar je weer overheen moet lezen?
Bram
Re: is het mogelijk een homeseer device value aan te roepen
Dit zou moeten werken
Een aparte class HSTools.cs
Die kan je dan bijvoorbeeld in Main() aanroepen met
Vergeet niet om in de folder waar je applicatie draait de volgende DLL's neer te zetten.
HomeSeer2.dll
HS2Util.dll
interop.dll
Scheduler.dll
Een aparte class HSTools.cs
Code: Select all
using System;
using System.Net;
using System.Collections.Generic;
using System.Text;
using HomeSeer2;
namespace Je_Programma_Namespace
{
class HSTools
{
private static HomeSeer2.application hsapp = new HomeSeer2.application();
private static Scheduler.hsapplication hs = new Scheduler.hsapplication();
public HSTools()
{
}
#region Homeseer
public bool HSConnect()
{
try
{
// Get the Username and Paswoord from the config file
hsapp.SetHost(ConfigurationManager.AppSettings["HSLocation"]);
hsapp.Connect(ConfigurationManager.AppSettings["HSUsername"], ConfigurationManager.AppSettings["HSPassword"]);
hs = hsapp.GetHSRef();
}
catch
{
WriteToLog(string.Format("{0} - My program could not connect to HomeSeer!", DateTime.Now));
return false;
}
return true;
}
/// <summary>
/// Get a device value
/// </summary>
/// <param name="strDeviceCode"></param>
/// <param name="Action"></param>
public int GetDeviceValue(string strDeviceCode)
{
int DeviceValue = -1;
try
{
DeviceValue = hs.GetDeviceValue(strDeviceCode);
}
catch
{
WriteToLog(string.Format("{0} - My program could not get the value of device {1}.", DateTime.Now, strDeviceCode));
}
return DeviceValue;
}
/// <summary>
/// Control a device
/// </summary>
/// <param name="strDeviceName"></param>
/// <param name="Statuse"></param>
/// <param name="Value"></param>
/// <param name="strText"></param>
/// <param name="Action"></param>
public void DoDevice(string strDeviceCode, int Status, int Value, string strText)
{
try
{
hs.SetDeviceStatus(strDeviceCode, Status);
hs.SetDeviceValue(strDeviceCode, Value);
hs.SetDeviceString(string strDeviceCode, strText, true);
}
catch
{
WriteToLog(string.Format("{0} - My program could not control device {1}.", DateTime.Now, strDeviceCode));
}
}
/// <summary>
/// Trigger an event
/// </summary>
/// <param name="EventName"></param>
public void DoEvent(string EventName)
{
try
{
hs.TriggerEvent(EventName);
}
catch
{
Console.WriteLine("There was a problem to trigger the HS event named : {0}", EventName);
}
}
#endregion
}
}
Code: Select all
var hstools = new HSTools();
if (hstools.HSConnect() == true)
{
HSTools.GetDeviceValue("B12");
}
else
{
// Could not connect the HS2 server
}
HomeSeer2.dll
HS2Util.dll
interop.dll
Scheduler.dll
Bram
Re: is het mogelijk een homeseer device value aan te roepen
bedankt voor de info, motiveert weer enorm zo op weg geholpen te worden...
nog genoeg donkere winter avonden om hier mee aan de slag te kunnen.
voorbeelden, zijn natuurlijk altijd welkom.... hier mee ontdek je vaak methodes waar je zelf nog niet op was gekomen .
nog genoeg donkere winter avonden om hier mee aan de slag te kunnen.
voorbeelden, zijn natuurlijk altijd welkom.... hier mee ontdek je vaak methodes waar je zelf nog niet op was gekomen .
Re: is het mogelijk een homeseer device value aan te roepen
Ik blijf toch nog wat steken.
het plan is vanaf een andere pc, verbinding te maken met de Hs2 server. en daar de waarde ophalen en die vervolgens weer gebruiken in een VB.Net applicatie.
het plan is vanaf een andere pc, verbinding te maken met de Hs2 server. en daar de waarde ophalen en die vervolgens weer gebruiken in een VB.Net applicatie.
Re: is het mogelijk een homeseer device value aan te roepen
Het kan nog steeds gedaan worden met bovenstaand voorbeeld
Het config file
Wat heb je al en wat is je probleem?
Het config file
Code: Select all
<?xml version="1.0"?>
<configuration>
<appSettings>
<!-- Homeseer settings
For tests from a remote location change this setting
from localhost to the IP address of the HomeSeer machine
<add key="HSLocation" value="localhost" />-->
<add key="HSLocation" value="192.168.1.56"/>
<add key="HSUsername" value="default"/>
<add key="HSPassword" value="default"/>
</appSettings>
</configuration>
Bram