Jump to content

Agave support for Ecobee on Polyglot Cloud


toflaherty

Recommended Posts

Posted
1 hour ago, toflaherty said:

Is there any plan to add the ecobee as a thermostat to the agave app when using the ecobee polyglot cloud service?

When the NS/polyglot service supports the nodehint compliance I will start to investigate the possibility of adding support. 

Posted

Now that I'm on ISY v5 with Polyglot/Ecobee, and using Agave more, I was going to ask the same thing.  Then I though about it more, and wasn't sure of the use case where I'd find value in it.  Ecobee already has an app that I occasionally use to make adjustments.  And realistically, I'm not sure when I'd actually ever make use of the Ecobee data/control in Agave.  

Other than the nodes currently show up as confused switches right now, I was wondering what use cases/value others see in having the thermostat show up in Agave...

-Sam

Posted
Now that I'm on ISY v5 with Polyglot/Ecobee, and using Agave more, I was going to ask the same thing.  Then I though about it more, and wasn't sure of the use case where I'd find value in it.  Ecobee already has an app that I occasionally use to make adjustments.  And realistically, I'm not sure when I'd actually ever make use of the Ecobee data/control in Agave.  
Other than the nodes currently show up as confused switches right now, I was wondering what use cases/value others see in having the thermostat show up in Agave...
-Sam
The same argument could have been made about elk integration yet enough people wanted it there that it got included.

Sent from my LG-H915 using Tapatalk

Posted
[mention=4839]James Peterson[/mention],
It already does. 
With kind regards,
Michel
It was just added to PGC this week and Ecobee NS is defining the hints so hopefully it can happen.

Sent from my Pixel 3 XL using Tapatalk

Posted

Ok. I'll do this.
1st. I don't have one. Soo.

2nd. If someone can contact me who has this setup so we can discuss getting the information I need to attempt this.

It was just added to PGC this week and Ecobee NS is defining the hints so hopefully it can happen.

Sent from my Pixel 3 XL using Tapatalk



Sent from my Pixel 3 using Tapatalk

Posted
Ok. I'll do this.
1st. I don't have one. Soo.

2nd. If someone can contact me who has this setup so we can discuss getting the information I need to attempt this.


Sent from my Pixel 3 using Tapatalk

I'll get you the info!

Sent from my Pixel 3 XL using Tapatalk

Posted

Not really what I need.  I previously found the yaml file on github.  

- No clear definition on all the device types

- No info on how to implement hints in code

- No info on the required drivers for each device type

Posted
Not really what I need.  I previously found the yaml file on github.  
- No clear definition on all the device types
- No info on how to implement hints in code
- No info on the required drivers for each device type
Check the slack compliance channel, there was a lot of discussion. Not sure if anyone summarized it, but we should.

Sent from my Pixel 3 XL using Tapatalk

Posted
9 hours ago, mwester said:

Anyone gonna share for those who aren't reading the slack channel (or reverse engineering python and nodejs code on github)?! :-)

 

Nope, all we get is 2.5 year old API docs.  

If you dig through the developer site and github you can get to the yaml

https://github.com/UniversalDevicesInc/hints/blob/master/hint.yaml

Which doesn't answer any of my 3 points and is not pointed to from anywhere else.  

Posted
24 minutes ago, io_guy said:

Nope, all we get is 2.5 year old API docs.  

If you dig through the developer site and github you can get to the yaml

https://github.com/UniversalDevicesInc/hints/blob/master/hint.yaml

Which doesn't answer any of my 3 points and is not pointed to from anywhere else.  

I will admit that the YAML is very lacking in details for most devices.  I will agree to "look at"  the implementation of the ecobee as a "thermostat" nothing else.  no other controls for now.  If I choose to pursue or not is up in the air.  As for the rest of the device specifications, they are most if not all missing the required drivers (probably because nobody is working on that type of device), another reason why I am hesitant to pursue FE NS development because it is not ready.  

Posted

I will make one more comment.  Here is the YAML for Thermostat:  So I know it "HAS" to have the required drivers if listed.   But there is no clear documentation on how to link the other files included in the NS setup.  exp: I know that CLIMD from nodedef/custom.xml has I_TSTAT_MODE from "not editor/custom.xml" but editor/editors.xml . <- (not really cohesive here) has modes 0-3.   But where do I find the mode descriptions.   There is no NLS for CLIMD . I now its probably somewhere, but without a good documentation, its just shooting in the dark.  

        0x0c:
            name: HVAC
            description:
            subcategories:
                0x01:
                    name: Thermostat
                    description:
                    ST: Current Temperature
                    CLISPC: Set Point Cool
                    CLISPH: Set Point Heat
                    CLIMD: Current Mode
                    CLIHUM: Humidity
                    CLIHCS: 
                    CLIFRS: Fan State
                    CLISMD: Set Mode

 

NODEDEF

<nodeDef id="EcobeeC_411956665463" nodeType="140" nls="140E">
<sts>
<st id="ST" editor="I_TEMP_C"/>
<st id="CLISPH" editor="I_CLISPH_C"/>
<st id="CLISPC" editor="I_CLISPC_C"/>
<st id="CLIMD" editor="I_TSTAT_MODE"/>
<st id="CLIFS" editor="I_TSTAT_FAN_MODE"/>
<st id="CLIHUM" editor="I_HUMIDITY"/>
<st id="CLIHCS" editor="I_TSTAT_ECOHCS"/>
<st id="CLIFRS" editor="I_TSTAT_FAN_STATE"/>
<st id="GV1" editor="I_TSTAT_HUM_SET"/>
<st id="CLISMD" editor="I_TSTAT_PROG_MODE2"/>
<st id="GV4" editor="I_TSTAT_FANONTIME"/>
<st id="GV3" editor="CTA_411956665463"/>
<st id="GV5" editor="I_HUMIDITY"/>
<st id="GV6" editor="I_ENABLED"/>
<st id="GV7" editor="I_ENABLED"/>
<st id="GV8" editor="BOOL"/>
</sts>
<cmds>
<accepts>
<cmd id="CLISPH">
<p id="" editor="I_CLISPH_C" init="CLISPH"/>
</cmd>
<cmd id="CLISPC">
<p id="" editor="I_CLISPC_C" init="CLISPC"/>
</cmd>
<cmd id="CLIMD">
<p id="" editor="I_TSTAT_MODE" init="CLIMD"/>
</cmd>
<cmd id="CLISMD">
<p id="" editor="I_TSTAT_PROG_MODE2" init="CLISMD"/>
</cmd>
<cmd id="GV3">
<p id="" editor="CT_411956665463" init="GV3"/>
<p id="HoldType" editor="I_TSTAT_ECO_SCHED_OPT" init="0" optional="T"/>
</cmd>
<cmd id="CLIFS">
<p id="" editor="I_TSTAT_FAN_MODE" init="CLIFS"/>
<p id="HoldType" editor="I_TSTAT_ECO_SCHED_OPT" init="0" optional="T"/>
</cmd>
<cmd id="GV4">
<p id="" editor="I_TSTAT_FANONTIME" init="GV4"/>
</cmd>
<cmd id="GV6">
<p id="" editor="I_ENABLED" init="GV6"/>
</cmd>
<cmd id="GV7">
<p id="" editor="I_ENABLED" init="GV7"/>
</cmd>
<cmd id="BRT">
<p id="" editor="I_SETTEMP_C" optional="T"/>
</cmd>
<cmd id="DIM">
<p id="" editor="I_SETTEMP_C" optional="T"/>
</cmd>
<cmd id="QUERY"/>
</accepts>
</cmds>
</nodeDef>

 

<editors>
<editor id="CTA_411956665463">
<range uom="25" subset="0-10" nls="CT_411956665463"/>
</editor>
<editor id="CT_411956665463">
<range uom="25" subset="0-9" nls="CT_411956665463"/>
</editor>
<editor id="CTA_511889241737">
<range uom="25" subset="0-10" nls="CT_511889241737"/>
</editor>
<editor id="CT_511889241737">
<range uom="25" subset="0-9" nls="CT_511889241737"/>
</editor>
</editors>
<editors>
<editor id="BOOL">
<range uom="2" subset="0,1"/>
</editor>
 <!--  io_guy Ecobee models  -->
 <!--  Temperature  -->
<editor id="I_TEMP_C">
<range uom="4" min="-50" max="75" step="0.5" prec="1"/>
</editor>
<editor id="I_TEMP_F">
<range uom="17" min="-50" max="150" step="0.5" prec="1"/>
</editor>
<editor id="I_SETTEMP_C">
<range uom="4" min="0" max="10" step="0.5" prec="1"/>
</editor>
<editor id="I_SETTEMP_F">
<range uom="14" min="0" max="10" step="1" prec="0"/>
</editor>
 <!--  CLISPC -  Cool Setpoint  -->
<editor id="I_CLISPC_C">
<range uom="4" min="5" max="35" step="0.5" prec="1"/>
</editor>
<editor id="I_CLISPC_F">
<range uom="17" min="32" max="90" step="1" prec="0"/>
</editor>
 <!--  CLISPH -  Heat Setpoint  -->
<editor id="I_CLISPH_C">
<range uom="4" min="5" max="35" step="0.5" prec="1"/>
</editor>
<editor id="I_CLISPH_F">
<range uom="17" min="32" max="90" step="1" prec="0"/>
</editor>
 <!--  Ecobee - Editors  -->
<editor id="I_ENABLED">
<range uom="25" subset="0-1" nls="EN_ENABLED"/>
</editor>
<editor id="I_TSTAT_ALERT">
<range uom="25" subset="0,1" nls="EN_ALERT"/>
</editor>
<editor id="I_TSTAT_ECO_SCHED_OPT">
<range uom="25" subset="0-1" nls="EN_ECOSCH_OPT"/>
</editor>
<editor id="I_TSTAT_FAN_MODE">
<range uom="68" subset="0,1"/>
</editor>
<editor id="I_TSTAT_FAN_STATE">
<range uom="80" subset="0,1"/>
</editor>
<editor id="I_TSTAT_FANONTIME">
<range uom="25" min="0" max="55" step="1" prec="0"/>
</editor>
<editor id="I_TSTAT_ECOHCS">
<range uom="25" subset="0-8" nls="EN_ECOHCS"/>
</editor>
<editor id="I_TSTAT_VEN_ACTSTAGE">
<range uom="25" subset="0-4"/>
</editor>
<editor id="I_TSTAT_HCS">
<range uom="66" subset="0-2"/>
</editor>
<editor id="I_HUMIDITY">
<range uom="22" min="0" max="100" prec="0"/>
</editor>
<editor id="I_TSTAT_HUM_SET">
<range uom="22" min="10" max="100" step="1" prec="0"/>
</editor>
<editor id="I_TSTAT_LOC">
<range uom="25" subset="0,1" nls="EN_LOC"/>
</editor>
<editor id="I_TSTAT_MODE">
<range uom="67" subset="0-3"/>
</editor>
<editor id="I_TSTAT_OCC">
<range uom="25" subset="0-2" nls="EN_OCC"/>
</editor>
<editor id="I_TSTAT_PROG_MODE">
<range uom="25" subset="0,1" nls="EN_PM"/>
</editor>
<editor id="I_TSTAT_PROG_MODE2">
<range uom="25" subset="0-2" nls="EN_PM2"/>
</editor>
<editor id="I_TSTAT_RUNTIME">
<range uom="25" min="0" max="5000000000" prec="0"/>
</editor>
<editor id="I_TSTAT_RUNTIME2">
<range uom="10" min="0" max="5000000000" prec="2"/>
</editor>
 <!--  Wind - Editors  -->
<editor id="I_SKY">
<range uom="25" subset="0-34" nls="EN_SKY"/>
</editor>
<editor id="I_WIND_DIRECTION">
<range uom="25" subset="0-16" nls="EN_WIND_DIRECTION"/>
</editor>
<editor id="I_WIND_C">
<range uom="32" subset="0-500"/>
</editor>
<editor id="I_WIND_F">
<range uom="48" subset="0-500"/>
</editor>
<editor id="I_WEATHER_SYMBOL">
<range uom="25" subset="0-21" nls="EN_SYMBOL"/>
</editor>
<editor id="I_WEATHER_SYMBOL_NUM">
<range uom="25" subset="0-21"/>
</editor>
</editors>

NLS

ND-ECO_CTR-NAME = Ecobee Controller
ND-ECO_CTR-ICON = GenericCtl

CMD-ECTR-DISCOVER-NAME = Re-Discover
ST-ECTR-ST-NAME = NodeServer Online

ND-EcobeeC-NAME = Ecobee Thermostat (C)
ND-EcobeeC-ICON = Thermostat
ND-EcobeeF-NAME = Ecobee Thermostat (F)
ND-EcobeeF-ICON = Thermostat
ND-EcobeeSensorC-NAME = Ecobee Sensor (C)
ND-EcobeeSensorC-ICON = TempSensor
ND-EcobeeSensorF-NAME = Ecobee Sensor (F)
ND-EcobeeSensorF-ICON = TempSensor
ND-EcobeeSensorHC-NAME = Ecobee Sensor H (C)
ND-EcobeeSensorHC-ICON = TempSensor
ND-EcobeeSensorHF-NAME = Ecobee Sensor H (F)
ND-EcobeeSensorHF-ICON = TempSensor
ND-EcobeeWeatherC-NAME = Ecobee Weather (C)
ND-EcobeeWeatherC-ICON = Weather
ND-EcobeeWeatherF-NAME = Ecobee Weather (F)
ND-EcobeeWeatherF-ICON = Weather

ST-140E-ST-NAME = Temperature
ST-140E-GV1-NAME = Humidification Setpoint
ST-140E-GV3-NAME = Climate Type
ST-140E-GV4-NAME = Fan On Time
ST-140E-GV5-NAME = Dehumidification Setpoint
ST-140E-GV6-NAME = Smart Home-Away
ST-140E-GV7-NAME = Follow Me
ST-140E-GV8-NAME = Connected
CMD-140E-GV3-NAME = Climate Type
CMD-140E-GV4-NAME = Fan On Time
CMD-140E-GV6-NAME = Smart Home-Away
CMD-140E-GV7-NAME = Follow Me
CMD-140E-BRT-NAME = Setpoint Up
CMD-140E-DIM-NAME = Setpoint Down
PGM-CMD-140E-GV3-FMT = //${c}/to ${v}/ /HoldType//, Hold Type ${v}/
CMDP-I_TSTAT_ECO_SCHED_OPT-HoldType-NAME = Hold Type
ST-140ES-ST-NAME = Temperature
ST-140ES-GV1-NAME = Occupancy
ST-140EW-ST-NAME = Temperature
ST-140EW-GV1-NAME = Humidity
ST-140EW-GV2-NAME = POP
ST-140EW-GV3-NAME = High Temp
ST-140EW-GV4-NAME = Low Temp
ST-140EW-GV5-NAME = Wind Speed
ST-140EW-GV6-NAME = Wind Direction
ST-140EW-GV7-NAME = Sky
ST-140EW-GV8-NAME = Symbol
ST-140EW-GV9-NAME = Weather

EN_WIND_DIRECTION-0 = N/A
EN_WIND_DIRECTION-1 = N
EN_WIND_DIRECTION-2 = NNE
EN_WIND_DIRECTION-3 = NE
EN_WIND_DIRECTION-4 = ENE
EN_WIND_DIRECTION-5 = E
EN_WIND_DIRECTION-6 = ESE
EN_WIND_DIRECTION-7 = SE
EN_WIND_DIRECTION-8 = SSE
EN_WIND_DIRECTION-9 = S
EN_WIND_DIRECTION-10 = SSW
EN_WIND_DIRECTION-11 = SW
EN_WIND_DIRECTION-12 = WSW
EN_WIND_DIRECTION-13 = W
EN_WIND_DIRECTION-14 = WNW
EN_WIND_DIRECTION-15 = NW
EN_WIND_DIRECTION-16 = NNW

EN_SKY-0 = N/A
EN_SKY-1 = Sunny
EN_SKY-2 = Clear
EN_SKY-3 = Mostly Sunny
EN_SKY-4 = Mostly Clear
EN_SKY-5 = Hazy Sunshine
EN_SKY-6 = Haze
EN_SKY-7 = Passing Clouds
EN_SKY-8 = More Sun than Clouds
EN_SKY-9 = Scattered Clouds
EN_SKY-10 = Partly Cloudy
EN_SKY-11 = A Mixture of Sun and CLouds
EN_SKY-12 = High Level Clouds
EN_SKY-13 = More Clouds than Sun
EN_SKY-14 = Partly Sunny
EN_SKY-15 = Broken Clouds
EN_SKY-16 = Mostly Cloudy
EN_SKY-17 = Cloudy
EN_SKY-18 = Overcast
EN_SKY-19 = Low Clouds
EN_SKY-20 = Light Fog
EN_SKY-21 = Fog
EN_SKY-22 = Dense Fog
EN_SKY-23 = Ice Fog
EN_SKY-24 = Sandstorm
EN_SKY-25 = Duststorm
EN_SKY-26 = Increasing Cloudiness
EN_SKY-27 = Decreasing Cloudiness
EN_SKY-28 = Clearing Skies
EN_SKY-29 = Breaks of Sun Late
EN_SKY-30 = Early Fog Followed by Sunny Skies
EN_SKY-31 = Afternoon Clouds
EN_SKY-32 = Morning Couds
EN_SKY-33 = Smoke
EN_SKY-34 = Low Level Haze

EN_SYMBOL-0 = Sunny
EN_SYMBOL-1 = Few Clouds
EN_SYMBOL-2 = Partly Cloudy
EN_SYMBOL-3 = Mostly Cloudy
EN_SYMBOL-4 = Overcast
EN_SYMBOL-5 = Drizzle
EN_SYMBOL-6 = Rain
EN_SYMBOL-7 = Freezing Rain
EN_SYMBOL-8 = Showers
EN_SYMBOL-9 = Hail
EN_SYMBOL-10 = Snow
EN_SYMBOL-11 = Flurries
EN_SYMBOL-12 = Freezing Snow
EN_SYMBOL-13 = Blizzard
EN_SYMBOL-14 = Pellets
EN_SYMBOL-15 = Thunderstorm
EN_SYMBOL-16 = Windy
EN_SYMBOL-17 = Tornado
EN_SYMBOL-18 = Fog
EN_SYMBOL-19 = Haze
EN_SYMBOL-20 = Smoke
EN_SYMBOL-21 = Dust

EN_PM-0 = Manual
EN_PM-1 = Running

EN_PM2-0 = Running
EN_PM2-1 = Hold Next
EN_PM2-2 = Hold Indefinite

EN_BOOL-0 = No
EN_BOOL-1 = Yes

EN_OCC-0 = No
EN_OCC-1 = Yes
EN_OCC-2 = NA

EN_ENABLED-0 = Disabled
EN_ENABLED-1 = Enabled

EN_ALERT-0 = OK
EN_ALERT-1 = Alert

EN_LOC-0 = Home
EN_LOC-1 = Away

EN_ECOHCS-0 = Idle
EN_ECOHCS-1 = Heat
EN_ECOHCS-2 = Cool
EN_ECOHCS-3 = Heat2
EN_ECOHCS-4 = Heat3
EN_ECOHCS-5 = Cool2
EN_ECOHCS-6 = AuxHeat
EN_ECOHCS-7 = AuxHeat2
EN_ECOHCS-8 = AuxHeat3

EN_ECOSCH-0 = Away
EN_ECOSCH-1 = Home
EN_ECOSCH-2 = Sleep
EN_ECOSCH-3 = Custom 1
EN_ECOSCH-4 = Custom 2
EN_ECOSCH-5 = Custom 3
EN_ECOSCH-6 = Custom 4
EN_ECOSCH-7 = Custom 5
EN_ECOSCH-8 = Custom 6
EN_ECOSCH-9 = Custom 7
EN_ECOSCH-10 = N/A

EN_ECOSCH_OPT-0 = Permanent
EN_ECOSCH_OPT-1 = Transition

ND-EcobeeC_411956665463-NAME = Ecobee Thermostat 411956665463 (C)
ND-EcobeeC_411956665463-ICON = Thermostat
ND-EcobeeF_411956665463-NAME = Ecobee Thermostat 411956665463 (F)
ND-EcobeeF_411956665463-ICON = Thermostat
CT_411956665463-0 = Away
CT_411956665463-1 = Home
CT_411956665463-2 = Sleep
CT_411956665463-3 = AwayExtended
CT_411956665463-4 = Smart2
CT_411956665463-5 = Another3
CT_411956665463-6 = Another4
CT_411956665463-7 = Smart5
CT_411956665463-8 = Smart6
CT_411956665463-9 = Smart7
CT_411956665463-10 = Vacation

ND-EcobeeC_511889241737-NAME = Ecobee Thermostat 511889241737 (C)
ND-EcobeeC_511889241737-ICON = Thermostat
ND-EcobeeF_511889241737-NAME = Ecobee Thermostat 511889241737 (F)
ND-EcobeeF_511889241737-ICON = Thermostat
CT_511889241737-0 = Away
CT_511889241737-1 = Home
CT_511889241737-2 = Sleep
CT_511889241737-3 = ExGone
CT_511889241737-4 = Just Testing
CT_511889241737-5 = Smart3
CT_511889241737-6 = Smart4
CT_511889241737-7 = Smart5
CT_511889241737-8 = Smart6
CT_511889241737-9 = Smart7
CT_511889241737-10 = Vacation

 

Posted

That's a fair point... I think crawl/walk/run applies here:

  • Who owns defining YAML for specific devices? My thought is that a particular nodesever author would do that
  • As such, a particular mobile app author will have to assume a particular node server when providing controls (?)
    • Documentation on configuration and assumptions are required by the app developer, wherever they are located
    • "Crossover" needs to be considered... in this case, we have 2 nodeserver developers for the same device. 
  • That YAML will drive who can do what with the app

This is in no way a comment about what a nodeserver developer does, its more about "what will the process look like?", going forward. I believe it will get figured out, but this is a very early first case example. Patience and expectations need to be set accordingly.

Paul

Posted

Hello everyone,

To be perfectly clear, UD does NOT want to use hints. We had this debate for a very long time on the slack channel. The hints are only needed because some developers prefer a type based system and not a node server based system which is dynamic. To set a hint, @io_guy, what you will do something like this:

/rest/ns/3/nodes/n003_73121dea8c/set/hint/0x01020304

Now, who's going to decide what's the difference between your Ecobee implementation vs. Jimbo's? I have no clue. Well, I do. If you do NOT use hints, you don't have to worry about it.

With kind regards,
Michel

Posted

Michel, I'm 100% behind whatever the recommended UDI method will be, it just hasn't been clearly defined yet.  I would rather not add another layer of confusion (hints) if not required.  

I thought it was using the node types to mimic z-wave, which is what I originally did.  

James, if you have a method you want to use to support Agave with NodeServers, let me know.  I have no problem tweaking NodeLink to suit.

Posted

@io_guy,

THANK YOU so very much. The issue is not node server developers. The issue is the consumers of the node servers (such as the Admin Console, Alexa, Google Home, Agave, MobiLinc, etc.). In those worlds, hints/types definitely make it easier to develop BUT it is definitely one of the reasons we invented Node Server so that no one would have to use hints/types. A balance between the two is definitely desired and thus the hints doc in the GitHub. The main issue is that, above and beyond the Ecobee hint, no one has actually used them. If you are not on slack, please do let me know and I'll invite you. 

Thanks again so very much.

With kind regards,
Michel

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...