Contacting HomeSeer This Week

HomeSeer is open and operational this week. All orders are being processed and shipped as usual. However, some staff are working from home. If you need to contact HomeSeer for support or customer service, please use our Email or Chat options.
See more
See less

Estimate Energy Usage Per Device

  • Filter
  • Time
  • Show
Clear All
new posts

  • Estimate Energy Usage Per Device

    Think I finally figured out a way to estimate energy Usage per device and figured I would share. It is a little bit of a setup, but I think the #'s are accurate (as accurate as can be for an estimate).

    This is based off using a script and passing variables from an event to make it all work. You will need to create 2 virtual devices and a timer, per physical device you want to monitor.

    - One device to get the wattage usage
    - Another to have a running total for kWh
    - Timer is needed to aid in kWh calculation

    I still need to create a button on this device to reset to 0 for monthly recycle.

    You will need three events:
    - One for physical device on, restart timer
    - One for physical device off, stop timer and update kWh device
    - Last one to update the wattage device for current usage (used to calculate kWh)

    On your events that reference the script, you will need to have the data sent. I did this so that I only had to create one script and can send multiple devices thru it.

    Example of how the parameter pass should look:
    'Array setup for event / LightDevice,WattDevice,TimerName,kWhDevice,TotalLightWattage
    'LightDevice = RefID for Light
    'WattDevice = RefID for Virtual Device that maintains watt usage
    'TimerName = Name of Timer being used to monitor light
    'kWhDevice = Virtual Device to hold kWh
    'TotalLightWattage = Maximum wattage for light
    'Example = 33,836,Kitchen Ceiling Lights,837,60

    Again this is only going to be an estimate and I have only found a way to update the kWh when the device is turned off. This gives you a running total, but does not update real time. I tried to do the update real time and couldn't figure out the math/script. But this works for my needs.

    'Updates kWh Device
    Sub kWh_Update(ByVal Parms As Object)
    dim ParmArray() As String = Split(Parms,",")
    dim kWh as decimal
    dim kWh_Previous as decimal
    dim Watts as integer = ParmArray(1)
    dim ts As TimeSpan = hs.TimerValue(ParmArray(2))
    dim Time as decimal
    dim Session_kWh as decimal
        Time = ts.TotalHours
        kWh_Previous = hs.DeviceValueEx(ParmArray(3))
            Session_kWh = (Time*Watts)/1000
            kWh = (kWh_Previous + Session_kWh)
            hs.SetDeviceValueByRef(ParmArray(3), kWh, True)
    End Sub
    'Update Wattage Virtual Device
    Sub Wattage_Update (ByVal Parms As Object)
    dim ParmArray() As String = Split(Parms,",")
    dim Lights as integer = hs.DeviceValue(ParmArray(0))
    dim Actual_Wattage as integer
    dim Maximum_Wattage as integer = (ParmArray(4))
        Actual_Wattage = (Lights*Maximum_Wattage)/100
        hs.SetDeviceValueByRef(ParmArray(1), Actual_Wattage, True)
    End Sub
    Attached Files