Yes, for NA it just takes the Away period as default. But you could still override that with Away and Sleep for instance.
Not sure I understand what you mean by âstill override that with Away and Sleep for instanceâ.
If you want it to show away in both the Away and Sleep period.
Ok. I will let you know how the automations work when my wife leaves to pick the kids
Can we get consolidated install instructions? I get errors unique to me when I piece things together as best as I can interpret and assemble based upon what above. Anything past 0.0.3 fails for me.
Providing the errors might help
It is very simple:
Place these files
lyric.py
climate/lyric.py
climate/services.yaml
in your custom_components folder.
And put this in your config:
lyric:
client_id: xxxx
client_secret: xxxxx
That should be it.
I think you should add these to your readme as well
Hey ! Just got back to work . @Bram_Kragten Are you saying that the issue what was going on has been resolved ? Or do you still want me to share the Json string for you to look at ?
Letâs find out. Try it, if it works great, if it doesnât share the error and the data
That did work!! Now I can set the values as well change the different modes
17-08-11 09:41:48 DEBUG (MainThread) [homeassistant.components.websocket_api] WS 4466477376: Sending {âidâ: 2, âtypeâ: âeventâ, âeventâ: {âevent_typeâ: âstate_changedâ, âdataâ: {âentity_idâ: âclimate.lyricâ, âold_stateâ: <state climate.lyric=cool; current_temperature=73, min_temp=40, max_temp=99, temperature=73, operation_mode=cool, operation_list=[âoffâ, âheatâ, âcoolâ, âautoâ], schedule=None, schedule_sub=None, vacation=None, current_schedule_day=None, current_schedule_period=None, unit_of_measurement=°F, friendly_name=Lyric @ 2017-08-11T09:41:36.442976-07:00>, ânew_stateâ: <state climate.lyric=cool; current_temperature=73, min_temp=40, max_temp=99, temperature=66, operation_mode=cool, operation_list=[âoffâ, âheatâ, âcoolâ, âautoâ], schedule=None, schedule_sub=None, vacation=None, current_schedule_day=None, current_schedule_period=None, unit_of_measurement=°F, friendly_name=Lyric @ 2017-08-11T09:41:36.442976-07:00>}, âoriginâ: âLOCALâ, âtime_firedâ: datetime.datetime(2017, 8, 11, 16, 41, 48, 793497, tzinfo=)}}
17-08-11 09:41:48 DEBUG (MainThread) [homeassistant.components.websocket_api] WS 4466598408: Sending {âidâ: 2, âtypeâ: âeventâ, âeventâ: {âevent_typeâ: âstate_changedâ, âdataâ: {âentity_idâ: âclimate.lyricâ, âold_stateâ: <state climate.lyric=cool; current_temperature=73, min_temp=40, max_temp=99, temperature=73, operation_mode=cool, operation_list=[âoffâ, âheatâ, âcoolâ, âautoâ], schedule=None, schedule_sub=None, vacation=None, current_schedule_day=None, current_schedule_period=None, unit_of_measurement=°F, friendly_name=Lyric @ 2017-08-11T09:41:36.442976-07:00>, ânew_stateâ: <state climate.lyric=cool; current_temperature=73, min_temp=40, max_temp=99, temperature=66, operation_mode=cool, operation_list=[âoffâ, âheatâ, âcoolâ, âautoâ], schedule=None, schedule_sub=None, vacation=None, current_schedule_day=None, current_schedule_period=None, unit_of_measurement=°F, friendly_name=Lyric @ 2017-08-11T09:41:36.442976-07:00>}, âoriginâ: âLOCALâ, âtime_firedâ: datetime.datetime(2017, 8, 11, 16, 41, 48, 793497, tzinfo=)}}
17-08-11 09:41:48 DEBUG (MainThread) [homeassistant.components.websocket_api] WS 4471244728: Sending {âidâ: 2, âtypeâ: âeventâ, âeventâ: {âevent_typeâ: âstate_changedâ, âdataâ: {âentity_idâ: âclimate.lyricâ, âold_stateâ: <state climate.lyric=cool; current_temperature=73, min_temp=40, max_temp=99, temperature=73, operation_mode=cool, operation_list=[âoffâ, âheatâ, âcoolâ, âautoâ], schedule=None, schedule_sub=None, vacation=None, current_schedule_day=None, current_schedule_period=None, unit_of_measurement=°F, friendly_name=Lyric @ 2017-08-11T09:41:36.442976-07:00>, ânew_stateâ: <state climate.lyric=cool; current_temperature=73, min_temp=40, max_temp=99, temperature=66, operation_mode=cool, operation_list=[âoffâ, âheatâ, âcoolâ, âautoâ], schedule=None, schedule_sub=None, vacation=None, current_schedule_day=None, current_schedule_period=None, unit_of_measurement=°F, friendly_name=Lyric @ 2017-08-11T09:41:36.442976-07:00>}, âoriginâ: âLOCALâ, âtime_firedâ: datetime.datetime(2017, 8, 11, 16, 41, 48, 793497, tzinfo=)}}
17-08-11 09:41:48 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_executed[L]: service_call_id=4385765696-3>
17-08-11 09:41:48 DEBUG (MainThread) [homeassistant.components.websocket_api] WS 4466477376: Sending {âidâ: 12, âtypeâ: âresultâ, âsuccessâ: True, âresultâ: None}
Followed the instructions above, deleted lyric.conf, reauthorizedâŚ
2017-08-11 13:20:28 DEBUG (Thread-5) [custom_components.lyric] proceeding with discovery of platforms
2017-08-11 13:20:28 DEBUG (Thread-5) [custom_components.lyric] setup done of component
2017-08-11 13:20:28 DEBUG (Thread-7) [custom_components.climate.lyric] climate discovery_info: OrderedDict([('client_id', 'redacted'), ('client_secret', 'redacted'), ('fan', False)])
2017-08-11 13:20:28 DEBUG (Thread-7) [custom_components.climate.lyric] climate config: {}
2017-08-11 13:20:28 DEBUG (Thread-7) [custom_components.climate.lyric] Set up Lyric climate platform
2017-08-11 13:20:28 DEBUG (Thread-7) [custom_components.climate.lyric] away periods: []
2017-08-11 13:20:28 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/asyncio/tasks.py", line 233, in _step
result = coro.throw(exc)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 381, in async_process_entity
new_entity, self, update_before_add=update_before_add
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 212, in async_add_entity
yield from self.hass.async_add_job(entity.update)
File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/homeassistant/.homeassistant/custom_components/climate/lyric.py", line 308, in update
self._vacationHold = self.device.vacationHold
File "/srv/homeassistant/lib/python3.4/site-packages/lyric/__init__.py", line 459, in vacationHold
return self._lyric_api._device(self._locationId, self._deviceId)['vacationHold']['enabled']
KeyError: 'vacationHold'
Yes I had the same issueâŚsince those files are not in the son string , thats why its throwing an issue. Please commend out the lines
# self._vacationHold = self.device.vacationHold
# self._currentSchedulePeriod = self.device.currentSchedulePeriod[âperiodâ]
# self._currentSchedulePeriodDay = self.device.currentSchedulePeriod[âdayâ]
and that should solve the issue
So you probably have a Lyric Round?
Please, can someone share the JSON string of a round?
{
âsettingsâ: {
âhomeSetPointsâ: {
âhomeHeatSPâ: 70,
âhomeCoolSPâ: 78,
âunitsâ: âFahrenheitâ
},
âawaySetPointsâ: {
âawayHeatSPâ: 62,
âawayCoolSPâ: 85,
âsmartCoolSPâ: 80,
âsmartHeatSPâ: 55,
âuseAutoSmartâ: True,
âunitsâ: âFahrenheitâ
},
âhardwareSettingsâ: {
âbrightnessâ: 10,
âvolumeâ: 5,
âmaxBrightnessâ: 10,
âmaxVolumeâ: 10
},
âfanâ: {
âallowedModesâ: [âAutoâ, âOnâ, âCirculateâ],
âchangeableValuesâ: {
âmodeâ: âCirculateâ
},
âfanRunningâ: True
},
âtemperatureModeâ: {
âfeelsLikeâ: True,
âairâ: True
},
âspecialModeâ: {
âautoChangeoverActiveâ: False
}
},
âisAliveâ: True,
âisUpgradingâ: False,
âmacIDâ: â00D02D976572â,
âthermostatVersionâ: â02.02.20.00â,
âscheduleStatusâ: âResumeâ,
âallowedTimeIncrementsâ: 15,
âdeviceClassâ: âThermostatâ,
âdeviceTypeâ: âThermostatâ,
âdeviceIDâ: âTCC-2494541â,
âuserDefinedDeviceNameâ: âLyricâ,
ânameâ: âLyricâ,
âscheduleâ: {
âscheduleTypeâ: âGeofenceâ
},
âisProvisionedâ: False,
âdeviceSettingsâ: {},
âunitsâ: âFahrenheitâ,
âindoorTemperatureâ: 75,
âoutdoorTemperatureâ: 81,
âallowedModesâ: [âCoolâ, âHeatâ, âOffâ],
âdeadbandâ: 0,
âhasDualSetpointStatusâ: False,
âminHeatSetpointâ: 40,
âmaxHeatSetpointâ: 99,
âminCoolSetpointâ: 40,
âmaxCoolSetpointâ: 99,
âchangeableValuesâ: {
âmodeâ: âCoolâ,
âautoChangeoverActiveâ: False,
âheatSetpointâ: 55,
âcoolSetpointâ: 71,
âheatCoolModeâ: âCoolâ
},
âoperationStatusâ: {
âmodeâ: âCoolâ
},
âsmartAwayâ: {
âactiveâ: False,
âtimeOfDayâ: â00:00:00â,
âdurationInHoursâ: 2,
âdurationInDaysâ: 0,
âlastUsedFormatâ: âTimeOfDayâ,
âendsInâ: â2000-01-01T00:00:00-08:00â
},
âindoorHumidityâ: 54,
âindoorHumidityStatusâ: âMeasuredâ
}
An update is ready for you to try, please let me know if it works.
Just to to confirmâŚthe home
and away
automations work perfectly. I can now change the setpoint when everyone is away and resume schedule when we are home.
First I fixed this by hand:
2017-08-11 16:37:30 ERROR (MainThread) [homeassistant.setup] Error during setup of component lyric
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/setup.py", line 194, in _async_setup_component
component.setup, hass, processed_config)
File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/homeassistant/.homeassistant/custom_components/lyric.py", line 118, in setup
import lyric
File "/srv/homeassistant/lib/python3.4/site-packages/lyric/__init__.py", line 703
elif 'schedule' in self._lyric_api._device(self._locationId, self._deviceId) and 'scheduleType' in self._lyric_api._device(self._locationId, self._deviceId)['schedule']:
^
TabError: inconsistent use of tabs and spaces in indentation
Moving on I then got this:
2017-08-11 16:40:59 DEBUG (Thread-8) [custom_components.lyric] proceeding with discovery of platforms
2017-08-11 16:40:59 DEBUG (Thread-8) [custom_components.lyric] setup done of component
2017-08-11 16:40:59 DEBUG (Thread-2) [custom_components.climate.lyric] climate discovery_info: OrderedDict([('client_id', 'REDACTED'), ('client_secret', 'REDACTED'), ('fan', False)])
2017-08-11 16:40:59 DEBUG (Thread-2) [custom_components.climate.lyric] climate config: {}
2017-08-11 16:40:59 DEBUG (Thread-2) [custom_components.climate.lyric] Set up Lyric climate platform
2017-08-11 16:40:59 DEBUG (Thread-2) [custom_components.climate.lyric] away periods: []
2017-08-11 16:40:59 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/asyncio/tasks.py", line 237, in _step
result = next(coro)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 381, in async_process_entity
new_entity, self, update_before_add=update_before_add
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 238, in async_add_entity
yield from entity.async_update_ha_state()
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/helpers/entity.py", line 247, in async_update_ha_state
device_attr = self.device_state_attributes
File "/home/homeassistant/.homeassistant/custom_components/climate/lyric.py", line 284, in device_state_attributes
"current_schedule_day": self._currentSchedulePeriodDay,
AttributeError: 'LyricThermostat' object has no attribute '_currentSchedulePeriodDay'
Fixed both
It works! In quick testing the temperature change finally functions, but away mode does not.
2017-08-11 17:34:10 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/asyncio/tasks.py", line 233, in _step
result = coro.throw(exc)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/core.py", line 1025, in _event_to_service_call
yield from service_handler.func(service_call)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/__init__.py", line 256, in async_away_mode_set_service
yield from climate.async_turn_away_mode_on()
File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/__init__.py", line 628, in turn_away_mode_on
raise NotImplementedError()
NotImplementedError
I keep seeing Away mode being off. Not my understanding of Away mode. Away mode is the setback temperature if no one is home. If I am not home, allow the temperature to go up to a certain point before turning on the AC or let the temperature drop to a certain point before turning on the heat.