@@ -65,7 +65,6 @@ class Warmup4IE:
6565
6666 def __init__ (self , user , password ):
6767 """Initialize the climate device."""
68- _LOGGER .info ("Setting up Warmup4IE component" )
6968 self ._user = user
7069 self ._password = password
7170 self ._warmup_access_token = None
@@ -100,7 +99,6 @@ def connect(self):
10099 return True
101100
102101 def get_locations (self ):
103- """retrieve location ID that corrresponds to self._location_name"""
104102 # make sure we have an accessToken
105103 if self ._warmup_access_token is None :
106104 _LOGGER .error ("Access token is not set. Try calling connect first" )
@@ -219,7 +217,7 @@ def update_all_devices(self):
219217 key = device (location ["id" ], room ["id" ], thermostat ["id" ])
220218 device_to_update = self ._all_devices .get (key , None )
221219 if device_to_update is None :
222- _LOGGER .error ("Found thermostat with SN %s, name %s in location %s " ,
220+ _LOGGER .info ("Found thermostat with SN %s, name %s in location %s " ,
223221 thermostat ["deviceSN" ], room ["roomName" ], location ["name" ])
224222 device_to_update = Warmup4IEDevice (
225223 location ["id" ],
@@ -233,7 +231,7 @@ def update_all_devices(self):
233231 device_to_update .update_room (room , thermostat )
234232 return self ._all_devices
235233
236- def set_override (self , room_id , temperature , hour , minute ):
234+ def set_override (self , room_id , temperature , until ):
237235 if self ._warmup_access_token is None :
238236 return
239237 body = {
@@ -245,7 +243,7 @@ def set_override(self, room_id, temperature, hour, minute):
245243 "method" : "setOverride" ,
246244 "rooms" : [room_id ],
247245 "temp" : "{:03d}" .format (int (temperature * 10 )),
248- "until" : "{:02}:{:02}" . format ( hour , minute ) ,
246+ "until" : until ,
249247 "type" : 3
250248 }
251249 }
@@ -259,7 +257,7 @@ def set_override(self, room_id, temperature, hour, minute):
259257 return None
260258 _LOGGER .info ("Successfully set override, "
261259 "response from server: '%s'" , response .text )
262- return response . json ()[ 'message' ][ 'setOverride' ][ 'overrideDur' ]
260+ self . update_all_devices ()
263261
264262 def _set_location_mode (self , location_id , location_mode ):
265263 """set device to frost protection mode"""
@@ -293,6 +291,7 @@ def _set_location_mode(self, location_id, location_mode):
293291 return
294292 _LOGGER .info ("Successfully set location mode to %s, response "
295293 "from server: '%s'" , location_mode , response .text )
294+ self .update_all_devices ()
296295
297296 def _set_temperature (self , room_id , mode , temperature = None ):
298297 # make sure the room/device is already configured
@@ -322,7 +321,7 @@ def _set_temperature(self, room_id, mode, temperature=None):
322321 return None
323322 _LOGGER .info ("Successfully set room %s - mode to %s, temperature to %s "
324323 "response from server: '%s'" , room_id , mode , temperature , response .text )
325- return int ( response . json ()[ "message" ][ "targetTemp" ]) / 10
324+ self . update_all_devices ()
326325
327326 def set_location_to_frost (self , location_id ):
328327 self ._set_location_mode (location_id , "frost" )
@@ -359,120 +358,117 @@ def __init__(self, location_id, location_name, room_id, room_name, device_id, se
359358 self ._serial_number = serial_number
360359 self ._warmup4ie_account = warmup4ie_account
361360
362- self ._target_temperature = 0
363- self ._current_temperature = 0
364- self ._target_temperature_low = 0
365- self ._target_temperature_high = 0
366- self ._floor_temperature = 0
367- self ._floor_temperature_2 = 0
368- self ._air_temperature = 0
369- self ._away_temperature = 0
370- self ._comfort_temperature = 0
371- self ._cost = "0"
372- self ._energy = "0"
373- self ._fixed_temperature = 0
374- self ._override_temperature = 0
375- self ._override_duration = 0
376- self ._sleep_temperature = 0
377- self ._override_duration_mins = 0
378- self ._away = False
379- self ._on = True
380- self ._run_mode = None
381- self ._room_mode = None
382- self ._heating_target = None
361+ self .target_temperature = 0
362+ self .current_temperature = 0
363+ self .min_temp = 0
364+ self .max_temp = 0
365+ self .floor_temperature = 0
366+ self .floor_temperature_2 = 0
367+ self .air_temperature = 0
368+ self .away_temperature = 0
369+ self .comfort_temperature = 0
370+ self .cost = "0"
371+ self .energy = "0"
372+ self .fixed_temperature = 0
373+ self .override_temperature = 0
374+ self .override_duration_mins = 0
375+ self .sleep_temperature = 0
376+ self .run_mode = None
377+ self .room_mode = None
378+ self .heating_target = None
383379
384380 def get_run_mode (self ):
385381 """return current mode, e.g. 'off', 'fixed', 'prog'."""
386- return self ._run_mode
382+ return self .run_mode
387383
388384 def update_room (self , room , thermostat ):
389385 """Update room/device data for the given room name.
390386
391387 """
392- self ._target_temperature = int (room ['targetTemp' ]) / 10
393- self ._target_temperature_low = int (thermostat [ 'minTemp ' ]) / 10
394- self ._target_temperature_high = int (thermostat ['maxTemp ' ]) / 10
395- self ._current_temperature = int (room [ 'currentTemp ' ]) / 10
396- self ._floor_temperature = int (thermostat ['floor1Temp' ]) / 10
397- self ._floor_temperature_2 = int (thermostat ['floor2Temp' ]) / 10
398- self ._air_temperature = int (thermostat ['airTemp' ]) / 10
399- self ._away_temperature = int (room ['awayTemp' ]) / 10
400- self ._comfort_temperature = int (room ['comfortTemp' ]) / 10
401- self ._cost = room ['cost' ]
402- self ._energy = room ['energy' ]
403- self ._fixed_temperature = int (room ['fixedTemp' ]) / 10
404- self ._override_temperature = int (room ['overrideTemp' ]) / 10
405- self ._override_duration_mins = int (room ['overrideDur' ])
406- self ._sleep_temperature = int (room ['sleepTemp' ]) / 10
407- self ._run_mode = RUN_MODE .get (room ['runModeInt' ], None )
408- self ._room_mode = ROOM_MODE .get (room ['roomModeInt' ], None )
409- self ._heating_target = HEATING_TARGET .get (thermostat ['heatingTargetInt' ], None )
388+ self .target_temperature = int (room ['targetTemp' ]) / 10
389+ self .current_temperature = int (room [ 'currentTemp ' ]) / 10
390+ self .min_temp = int (thermostat ['minTemp ' ]) / 10
391+ self .max_temp = int (thermostat [ 'maxTemp ' ]) / 10
392+ self .floor_temperature = int (thermostat ['floor1Temp' ]) / 10
393+ self .floor_temperature_2 = int (thermostat ['floor2Temp' ]) / 10
394+ self .air_temperature = int (thermostat ['airTemp' ]) / 10
395+ self .away_temperature = int (room ['awayTemp' ]) / 10
396+ self .comfort_temperature = int (room ['comfortTemp' ]) / 10
397+ self .cost = room ['cost' ]
398+ self .energy = room ['energy' ]
399+ self .fixed_temperature = int (room ['fixedTemp' ]) / 10
400+ self .override_temperature = int (room ['overrideTemp' ]) / 10
401+ self .override_duration_mins = int (room ['overrideDur' ])
402+ self .sleep_temperature = int (room ['sleepTemp' ]) / 10
403+ self .run_mode = RUN_MODE .get (room ['runModeInt' ], None )
404+ self .room_mode = ROOM_MODE .get (room ['roomModeInt' ], None )
405+ self .heating_target = HEATING_TARGET .get (thermostat ['heatingTargetInt' ], None )
410406
411407 def get_target_temperature (self ):
412408 """return target temperature"""
413- return self ._target_temperature
409+ return self .target_temperature
414410
415411 def get_current_temperature (self ):
416412 """return current temperature"""
417- return self ._current_temperature
413+ return self .current_temperature
418414
419415 def get_floor_temperature (self ):
420416 """return floor temperature"""
421- return self ._floor_temperature
417+ return self .floor_temperature
422418
423419 def get_floor_temperature_2 (self ):
424420 """return floor second temperature"""
425- return self ._floor_temperature_2
421+ return self .floor_temperature_2
426422
427423 def get_air_temperature (self ):
428424 """return air temperature"""
429- return self ._air_temperature
425+ return self .air_temperature
430426
431427 def get_away_temperature (self ):
432428 """return away temperature"""
433- return self ._away_temperature
429+ return self .away_temperature
434430
435431 def get_comfort_temperature (self ):
436432 """return comfort temperature"""
437- return self ._comfort_temperature
433+ return self .comfort_temperature
438434
439435 def get_fixed_temperature (self ):
440436 """return fixed temperature"""
441- return self ._fixed_temperature
437+ return self .fixed_temperature
442438
443439 def get_override_temperature (self ):
444440 """return override temperature"""
445- return self ._override_temperature
441+ return self .override_temperature
446442
447443 def get_sleep_temperature (self ):
448444 """return sleep temperature"""
449- return self ._sleep_temperature
445+ return self .sleep_temperature
450446
451447 def get_energy (self ):
452448 """return energy usage"""
453- return self ._energy
449+ return self .energy
454450
455451 def get_cost (self ):
456452 """return energy cost"""
457- return self ._energy
453+ return self .energy
458454
459455 def get_override_duration_mins (self ):
460456 """return the number of minutes the current override is set for"""
461- return self ._override_duration_mins
457+ return self .override_duration_mins
462458
463459 def get_target_temperature_low (self ):
464460 """return minimum temperature"""
465- return self ._target_temperature_low
461+ return self .min_temp
466462
467463 def get_target_temperature_high (self ):
468464 """return maximum temperature"""
469- return self ._target_temperature_high
465+ return self .max_temp
470466
471467 def get_room_mode (self ):
472- return self ._room_mode
468+ return self .room_mode
473469
474470 def get_heating_target (self ):
475- return self ._heating_target
471+ return self .heating_target
476472
477473 def get_location_name (self ):
478474 return self ._location_name
@@ -499,17 +495,17 @@ def set_new_temperature(self, new_temperature):
499495 _LOGGER .info ("Server declined to set new target temperature "
500496 "to %.1f°C" , new_temperature )
501497 return
502- self ._target_temperature = returned_temp
498+ self .target_temperature = returned_temp
503499 _LOGGER .info ("Successfully set new target temperature to %.1f°C" ,
504- self ._target_temperature )
500+ self .target_temperature )
505501
506502 def set_temperature_to_auto (self ):
507503 """set device to automatic mode"""
508- self ._target_temperature = self ._warmup4ie_account .set_temperature_to_auto (self ._room_id )
504+ self .target_temperature = self ._warmup4ie_account .set_temperature_to_auto (self ._room_id )
509505
510506 def set_temperature_to_manual (self ):
511507 """set device to manual mode"""
512- self ._target_temperature = self ._warmup4ie_account .set_temperature_to_manual (self ._room_id )
508+ self .target_temperature = self ._warmup4ie_account .set_temperature_to_manual (self ._room_id )
513509
514510 def set_location_to_frost (self ):
515511 """set device to frost protection mode"""
@@ -519,5 +515,5 @@ def set_location_to_off(self):
519515 """ turn off device"""
520516 self ._warmup4ie_account .set_location_to_off (self ._loc_id )
521517
522- def set_override (self , temperature , hour , minute ):
523- self ._override_duration_mins = self ._warmup4ie_account .set_override (self ._room_id , temperature , hour , minute )
518+ def set_override (self , temperature , until ):
519+ self .override_duration_mins = self ._warmup4ie_account .set_override (self ._room_id , temperature , until )
0 commit comments