Announcement

Collapse
No announcement yet.

Is there any interest in a plugin for Bond Ceiling Fan controller if I write one?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • The Profit
    replied
    Originally posted by sirmeili View Post

    Not yet. I'm about to start back on it. I was holding off waiting for the API to mature, but there is now a work around if it's not there yet.
    Not sure if you've received an email from Bond yet but the email I received this morning introduces an OpenAPI released today. Hoping you will have some time to get this moving again?
    Thank you!

    Leave a comment:


  • Timmy_G
    replied
    Hi sirmeili!

    Any update on a plugin mate?

    Leave a comment:


  • The Barnacle
    replied
    Spooner Thank you for taking the time to put this little script together. It worked great for me! Cheers!!

    Leave a comment:


  • Spooner
    replied
    This is version 2. The virtual device used will work with Alexa and allow you to control a light switch that powers the fan. The commands used to Alexa are "Alexa Master Ceiling Fan 20%" "Alexa Master Ceiling Fan On" "Alexa Master Ceiling Fan Off". If the power switch is off and you ask "Alexa Master Ceiling Fan 20%", it will turn on the switch, wait 5 seconds, and issue the speed command for 20% of 1-6. The On and Off commands only control the light switch.


    Create a virtual device
    Click image for larger version

Name:	v2DEV01.jpg
Views:	210
Size:	65.4 KB
ID:	1325496
    Click image for larger version

Name:	v2DEV02.jpg
Views:	153
Size:	66.0 KB
ID:	1325497

    Create an event that will monitor the virtual device for any changes.

    Click image for larger version

Name:	v2EVENT.jpg
Views:	154
Size:	69.8 KB
ID:	1325498
    The parameters are a comma separated string.
    xxxx,xxxx,bond-device-id,bond-token,name used in log

    Here is a script that works with Bond Bridge v2

    Replace the bond-IP and bond-TOKEN with IP address and Token of your bond device. Both Ver1 and Ver2 are saved with a VB extension, script.vb.

    Both scripting for Ver1 and Ver2 were taken from examples found using google.

    PHP Code:
    Imports System.IO  
    Imports System
    .Net  
    Imports System
    .Text  
    Sub Main
    (parm as object)
    'parms() = 
    '
    0Vurtual device ID to monitor;
    '1: Z-wave Device ID on/off switch;
    '
    2Bond device ID            curl -"BOND-Token: bond-TOKEN" -i http://bond-IP/v2/devices
    '3: Bond token                 curl -i http://bond-IP/v2/token
    '
    4Homeseer Device Name used in log

    'bond JSON from http://docs-local.appbond.com/#section/Getting-Started/Getting-the-Bond-Token

    Dim parms()
    Dim dVal
    Dim dSwitch
    const server = "bond-IP"


    If parm Is Nothing Then
       hs.WriteLog("Alexa Fan", "Error; no parameters given " & parm.ToString)
       Exit Sub
    Else
       parms = Split(parm.ToString,",")
    End If

    dVal = hs.DeviceValue(parms(0))

    If (dVal = 0) OR (dVal > 100) Then

       If dVal = 255 Then 
         hs.CAPIControlHandler(hs.CAPIGetSingleControl(parms(1), true, "On", false, true))
         hs.WriteLog("Alexa Fan", parms(4)& ": Switch On")
       End If
       If dVal = 0 Then
        hs.CAPIControlHandler(hs.CAPIGetSingleControl(parms(1), true, "Off", false, true))
        hs.WriteLog("Alexa Fan", parms(4)& ": Switch Off")
       End If
       Exit Sub

    Else

       dVal = Decimal.Round((((dVal - 0) * (6-1)) / (100-0)) + 1, 0, MidpointRounding.AwayFromZero)
       '
    If dVal 0 Then dVal 1
       dSwitch 
    hs.DeviceValue(parms(1))
       If 
    dSwitch 0 Then
        hs
    .CAPIControlHandler(hs.CAPIGetSingleControl(parms(1), true"On"falsetrue))
        
    hs.WaitSecs(5)
       
    End If
       
    hs.WriteLog("Alexa Fan"parms(4)& ": Button " dVal)

    End If

        
    Dim json_data As String "{""argument"":1}"
        
    json_data Replace(json_data,"1",dVal)
        
    ' Create a request using a URL that can receive a post.  
        Dim uri As String = "http://" & server & "/v2/devices/" & parms(2) & "/actions/SetSpeed"

        Dim request As Net.HttpWebRequest = Net.HttpWebRequest.Create(uri)
        request.Method = "PUT"

        request.Headers.Add("BOND-Token", parms(3))
        request.ContentType = "application/json"
        Dim json_bytes() As Byte = System.Text.Encoding.ASCII.GetBytes(json_data)
        request.ContentLength = json_bytes.Length

        Dim stream As IO.Stream = request.GetRequestStream
        stream.Write(json_bytes, 0, json_bytes.Length)

        Dim response As Net.HttpWebResponse = request.GetResponse

        Dim dataStream As IO.Stream = response.GetResponseStream()
        Dim reader As New IO.StreamReader(dataStream)          ' 
    Open the stream using a StreamReader for easy access.
        
    Dim responseFromServer As String reader.ReadToEnd()  ' Read the content.
        '
    hs.WriteLog("Response"responseFromServer)

        
    reader.Close()
        
    dataStream.Close()
        
    response.Close()
    End Sub 

    Leave a comment:


  • Spooner
    replied
    This is Version 1 of 2. This device works well without Alexa, Version 2 works with Alexa, and will allow you to set the speed via %.


    Create a virtual device that will control the ceiling fan
    Device Screen 1
    Click image for larger version

Name:	Dev-02.jpg
Views:	152
Size:	89.8 KB
ID:	1325492

    Create an event that will monitor this virtual device for any changes.
    Click image for larger version

Name:	event01.jpg
Views:	152
Size:	72.1 KB
ID:	1325493

    The parameters are a comma separated string.
    xxxx,bond-device-id,bond-token,name used in log

    Here is a script that works with Bond Bridge v2

    PHP Code:
    Imports System.IO
    Imports System
    .Net
    Imports System
    .Text
    Sub Main
    (parm as object)
    'parms() =
    '
    0Vurtual device ID to monitor;
    '1: Bond device ID curl -H "BOND-Token: bond-TOKEN" -i http://bond-IP/v2/devices
    '
    2Bond token curl -i http://bond-IP/v2/token
    '3: Homeseer Device Name used in log

    '
    bond JSON from http://docs-local.appbond.com/#section/Getting-Started/Getting-the-Bond-Token

    Dim parms()
    Dim dVal
    const server "bond-IP"

    If parm Is Nothing Then
    hs
    .WriteLog("Alexa Fan""Error; no parameters given " parm.ToString)
    Exit 
    Sub
    Else
    parms Split(parm.ToString,",")
    End If

    dVal hs.DeviceValue(parms(0))
    hs.WriteLog("Alexa Bond"parms(3)& ": " hs.DeviceVSP_GetStatus(parms(0), hs.devicevalue(parms(0)), 1))

    Dim json_data As String "{""argument"":1}"
    Dim uri As String "http://" server "/v2/devices/" parms(1) & "/actions/TurnOn"

    Select Case dVal
    Case 100 'off
    json_data = "{""power"":1}"
    uri = "http://" & server & "/v2/devices/" & parms(1) & "/actions/TurnOff"
    Case 101 '
    on
    json_data 
    "{""power"":1}"
    uri "http://" server "/v2/devices/" parms(1) & "/actions/TurnOn"
    Case Else
    json_data Replace(json_data,"1",dVal)
    uri "http://" server "/v2/devices/" parms(1) & "/actions/SetSpeed"
    End Select

    Dim request 
    As Net.HttpWebRequest Net.HttpWebRequest.Create(uri)
    request.Method "PUT"

    request.Headers.Add("BOND-Token"parms(2))
    request.ContentType "application/json"
    Dim json_bytes() As Byte System.Text.Encoding.ASCII.GetBytes(json_data)
    request.ContentLength json_bytes.Length

    Dim stream 
    As IO.Stream request.GetRequestStream
    stream
    .Write(json_bytes0json_bytes.Length)

    Dim response As Net.HttpWebResponse request.GetResponse

    Dim dataStream 
    As IO.Stream response.GetResponseStream()
    Dim reader As New IO.StreamReader(dataStream' Open the stream using a StreamReader for easy access.
    Dim responseFromServer As String = reader.ReadToEnd() ' 
    Read the content.
    'hs.WriteLog("Response", responseFromServer)

    reader.Close()
    dataStream.Close()
    response.Close()
    End Sub 

    Leave a comment:


  • iragoldstone@gmail.com
    replied
    I just added a Bond plug in for three fans and would be very interested in a Homeseer plug in. I also added a blaze automation B.One hub to control my split air conditioning system and would like to have a plug in for that also.

    Leave a comment:


  • josed1963
    replied
    Yes, I am interested. I have a bond device at home that controls 5 fans. Jose

    Leave a comment:


  • Fellhahn
    replied
    Originally posted by smikkelsen View Post
    I am in process of installing 3 fans that all need to be on the same circuit, and the fans do not allow for separate wiring of light and fan. Long story short, in order to automate them and be able to individually turn light/fan on for 3 different fans, i'm going to need something like this. From the looks of it, this integration probably isn't going anywhere anytime soon? Does anyone have alternatives (since I don't have a bond yet), that would work now with homeseer?

    Thanks!
    Have you bought the fans already?

    Are they AC fans controlled by knob on the wall, or DC fans controlled by a remote?

    I've been using DC fans (Lucci brand) controlled by the RFXCOM plugin and it works brilliantly. The same plugin/TRX device also controls my motorised blinds.

    Just brainstorming: If you're locked to an AC fan, maybe a HS-FC200 on the wall to control all three fans in tandem, then see if you can wire something like a Qubino 1-relay module into the base of each fan to do the light?

    Leave a comment:


  • smikkelsen
    replied
    I am in process of installing 3 fans that all need to be on the same circuit, and the fans do not allow for separate wiring of light and fan. Long story short, in order to automate them and be able to individually turn light/fan on for 3 different fans, i'm going to need something like this. From the looks of it, this integration probably isn't going anywhere anytime soon? Does anyone have alternatives (since I don't have a bond yet), that would work now with homeseer?

    Thanks!

    Leave a comment:


  • The Profit
    replied
    Originally posted by The Barnacle View Post
    Any updates? Looking forward to Beta testing, if needed. Bought the Bond a few weeks ago and it's been great!
    Bond has been really slow getting out the API so could be a little while. Glad to see another Homeseer user close by!

    Leave a comment:


  • The Barnacle
    replied
    Any updates? Looking forward to Beta testing, if needed. Bought the Bond a few weeks ago and it's been great!

    Leave a comment:


  • JakeStallman
    replied
    Very interested in this. Using with IFTTT right now, but it's slow and not reliable. Trying to turn on a fan light with HSWD100+

    Leave a comment:


  • bobsilver1
    replied
    I also would want this Frank. I have been using a Bond controlling 6 fans and has worked flawlessly since I installed it. Be happy to test it for you.

    Bob Silver

    Leave a comment:


  • The Barnacle
    replied
    I'm also interested in the Bond Plugin. Any status change?

    Also, is there anyone on this thread that plans to use the Bond + HS Plugin in conjunction with the HS-FC200+? If so, how do you envision wiring the switch and fan? Or do you plan to bypass and leave the fan hardwired / always hot?

    Leave a comment:


  • sirmeili
    replied
    Originally posted by chiphead View Post
    Do we have a Bond plug-in?
    Not yet. I'm about to start back on it. I was holding off waiting for the API to mature, but there is now a work around if it's not there yet.

    Leave a comment:

Working...
X