is het mogelijk een homeseer device value aan te roepen

Forum over Homeseer scripts (DUTCH forum)

Moderators: TANE, Ruud

Post Reply
User avatar
Harry
Member
Member
Posts: 329
Joined: Mon Apr 10, 2006 1:43 am
Location: Drachten

is het mogelijk een homeseer device value aan te roepen

Post by Harry »

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.
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: is het mogelijk een homeseer device value aan te roepen

Post by AshaiRey »

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?
Bram
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: is het mogelijk een homeseer device value aan te roepen

Post by AshaiRey »

Dit zou moeten werken
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
    }
}
Die kan je dan bijvoorbeeld in Main() aanroepen met

Code: Select all

           var hstools = new HSTools();

            if (hstools.HSConnect() == true)
            {
                 HSTools.GetDeviceValue("B12");
            }
            else
            {
                 // Could not connect the HS2 server
            }
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
Bram
User avatar
Harry
Member
Member
Posts: 329
Joined: Mon Apr 10, 2006 1:43 am
Location: Drachten

Re: is het mogelijk een homeseer device value aan te roepen

Post by Harry »

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 .
User avatar
Harry
Member
Member
Posts: 329
Joined: Mon Apr 10, 2006 1:43 am
Location: Drachten

Re: is het mogelijk een homeseer device value aan te roepen

Post by Harry »

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.
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: is het mogelijk een homeseer device value aan te roepen

Post by AshaiRey »

Het kan nog steeds gedaan worden met bovenstaand voorbeeld

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>
Wat heb je al en wat is je probleem?
Bram
Post Reply

Return to “Homeseer Scripts Forum”