cyr-ius / cozytouchpy Goto Github PK
View Code? Open in Web Editor NEWThis project forked from sku4l/cozypy
Cozytouch python implementation
License: GNU General Public License v3.0
This project forked from sku4l/cozypy
Cozytouch python implementation
License: GNU General Public License v3.0
Traceback (most recent call last): File "./example.py", line 98, in <module> loop.run_until_complete(async_demo()) File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete return future.result() File "./example.py", line 58, in async_demo await client.connect() File "/home/rutger/dev/cozytouchpy/cozytouchpy/client.py", line 79, in connect response = await self.__post("login", data=payload) File "/home/rutger/dev/cozytouchpy/cozytouchpy/client.py", line 58, in __post f"{self.server.endpoint}{path}", AttributeError: 'str' object has no attribute 'endpoint' 2023-05-20 16:36:38,085 - asyncio - ERROR - Unclosed client session client_session: <aiohttp.client.ClientSession object at 0x761a6590> 2023-05-20 16:36:38,086 - asyncio - ERROR - Unclosed connector connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x75c35d88>, 2662954.852166356)]'] connector: <aiohttp.connector.TCPConnector object at 0x75d0f970>
I included the proposed fixes for API and auth.
Hi,
Using 2.0.3 version for a while, I uninstalled this version to use the new 3.1, but when I want to try the "example.py", it does not work properly with this result:
$ python3 example.py
2021-09-20 15:16:27,384 - root - INFO - ### PLACES ###
Traceback (most recent call last):
File "example.py", line 98, in <module>
loop.run_until_complete(async_demo())
File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
return future.result()
File "example.py", line 65, in async_demo
logger.info(place.id)
AttributeError: 'str' object has no attribute 'id'
I uninstalled 3.1 and reinstalled 2.0.3, and the example.py is working fine with my cozytouch account set in example.py.
Maybe something to change in example.py?
Great work, by the way. :)
Hello, and thx for moving-on biker91620 nice initial job !
Just to let you know that the Cozytouch API has a strange behaviour when it comes to setting operating mode of Pilot Wire Interfaces (I have a few of them at home).
On a "standard" cozytouch enabled heater, you basicaly set the operating mode (Auto, Basic, Prog ...). If you defined Basic, you can then set the heating level (Confort, etc ...).
Strangely, Pilot Wire Interface does not implement the operating mode API (!) so the cozytouch App only leverage Heating levels (off, confort, eco ...).
Fair enough, it does the job ... The main question is then ... how do we enable prog mode for those Pilot Wire Interfaces as there is no direct API to set te operating mode ! As such, as of today, it is not possible to enable PROG on a Pilot Wire Interace through your library ...
The crazy thing that the cozytouch guys have done on the app to overcome that is that when you set a Pilot Wire Interface from OFF to PROG for instance ... they just re-POST (PUT) the full prog schedule to the server (a big big json !), that looks to trigger PROG to on.
When I enable prog mode a Pilot Wire Interface through the app, I see this, and nothing else --> PUT /enduser-mobile-web/enduserAPI/setup/calendar/ruleSet HTTP/1.1 (application/json)
Attaching an uncrypted PCAP capture for your convinience when I was switching between the modes for Pilot Wire Interfaces in the cosytouch iOS app (as far as I remember, I did a OFF, then moved to BASIC/CONFORT, then to PROG).
Thinking our loud, but if there is a way to get the schedule from the server, enabling prog mode for Pilot Wire Interfaces then could be achievable on your library by just posting it back when prog mode is asked ...
Just my basic feedback on that complex as hell API !
Guillaume.
Hi, it is posible to use cozytouchpy in terminal or with script (python, bash,...)? and How?
Thank
Hi @cyr-ius ,
As you requested (https://github.com/biker91620/ha-cozytouch/issues/18), please find the JSON (with "xxxx" for sensitive data) below.
I should point out that I have 2 water heaters which is why you can see the details twice.
Feel free to request more data if needed, I'd be happy to help :)
2020-06-02 14:29:31 DEBUG (MainThread) [cozytouchpy.client] Response json :
{'creationTime': 1578562995000, 'lastUpdateTime': 1578562995000, 'id': 'SETUP-xxxx-xxxx-xxxx', 'location': {'creationTime': 1578562995000, 'lastUpdateTime': 1578562995000, 'city': 'xxxx', 'country': 'xxxx', 'postalCode': 'xxxxx', 'addressLine1': 'xxxx', 'timezone': 'Europe/Paris', 'longitude': xxxx, 'latitude': xxxx, 'twilightMode': 2, 'twilightAngle': 'CIVIL', 'twilightCity': 'xxxx', 'summerSolsticeDuskMinutes': 1290, 'winterSolsticeDuskMinutes': 990, 'twilightOffsetEnabled': False, 'dawnOffset': 0, 'duskOffset': 0}, 'gateways': [{'gatewayId': 'xxxx-xxxx-xxxx', 'type': 32, 'subType': 0, 'placeOID': 'xxxx', 'alive': True, 'timeReliable': True, 'connectivity': {'status': 'OK', 'protocolVersion': '2020.2.4'}, 'upToDate': True, 'updateStatus': 'UP_TO_DATE', 'syncInProgress': False, 'mode': 'ACTIVE', 'functions': 'INTERNET_AUTHORIZATION,SCENARIO_DOWNLOAD,SCENARIO_AUTO_LAUNCHING,SCENARIO_TELECO_LAUNCHING,INTERNET_UPLOAD,INTERNET_UPDATE,TRIGGERS_SENSORS'}], 'devices': [{'creationTime': 1578562995000, 'lastUpdateTime': 1578562995000, 'label': 'Box', 'deviceURL': 'internal://xxxx/pod/0', 'shortcut': False, 'controllableName': 'internal:PodMiniComponent', 'definition': {'commands': [{'commandName': 'getName', 'nparams': 0}, {'commandName': 'update', 'nparams': 0}, {'commandName': 'setCountryCode', 'nparams': 1}, {'commandName': 'activateCalendar', 'nparams': 0}, {'commandName': 'deactivateCalendar', 'nparams': 0}, {'commandName': 'refreshPodMode', 'nparams': 0}, {'commandName': 'refreshUpdateStatus', 'nparams': 0}, {'commandName': 'setCalendar', 'nparams': 1}, {'commandName': 'setLightingLedPodMode', 'nparams': 1}, {'commandName': 'setPodLedOff', 'nparams': 0}, {'commandName': 'setPodLedOn', 'nparams': 0}], 'states': [{'values': ['offline', 'online'], 'type': 'DiscreteState', 'qualifiedName': 'core:ConnectivityState'}, {'type': 'DataState', 'qualifiedName': 'core:CountryCodeState'}, {'type': 'DataState', 'qualifiedName': 'core:NameState'}, {'values': ['doublePress', 'longPress', 'simplePress', 'triplePress', 'veryLongPress'], 'type': 'DiscreteState', 'qualifiedName': 'internal:LastActionConfigButtonState'}, {'type': 'ContinuousState', 'qualifiedName': 'internal:LightingLedPodModeState'}], 'dataProperties': [], 'widgetName': 'Pod', 'uiClass': 'Pod', 'qualifiedName': 'internal:PodMiniComponent', 'type': 'ACTUATOR'}, 'states': [{'name': 'core:NameState', 'type': 3, 'value': 'Box'}, {'name': 'internal:LightingLedPodModeState', 'type': 2, 'value': 1.0}, {'name': 'core:CountryCodeState', 'type': 3, 'value': 'xxxx'}], 'attributes': [], 'available': True, 'enabled': True, 'placeOID': 'xxxx', 'widget': 'Pod', 'type': 1, 'oid': 'xxxx', 'uiClass': 'Pod'}, {'creationTime': 1578564113000, 'lastUpdateTime': 1578564113000, 'label': 'DHWP Actuator', 'deviceURL': 'io://xxxx#1', 'shortcut': False, 'controllableName': 'io:AtlanticDomesticHotWaterProductionV2_CE_FLAT_C2_IOComponent', 'definition': {'commands': [{'commandName': 'delayedStopIdentify', 'nparams': 1}, {'commandName': 'getName', 'nparams': 0}, {'commandName': 'identify', 'nparams': 0}, {'commandName': 'refreshAbsenceEndDate', 'nparams': 0}, {'commandName': 'refreshAbsenceMode', 'nparams': 0}, {'commandName': 'refreshAbsenceStartDate', 'nparams': 0}, {'commandName': 'refreshBoostEndDate', 'nparams': 0}, {'commandName': 'refreshBoostMode', 'nparams': 0}, {'commandName': 'refreshBoostStartDate', 'nparams': 0}, {'commandName': 'refreshBottomTankWaterTemperature', 'nparams': 0}, {'commandName': 'refreshManufacturerName', 'nparams': 0}, {'commandName': 'refreshMiddleWaterTemperatureIn', 'nparams': 0}, {'commandName': 'refreshTargetTemperature', 'nparams': 0}, {'commandName': 'refreshWaterConsumption', 'nparams': 0}, {'commandName': 'refreshWaterTargetTemperature', 'nparams': 0}, {'commandName': 'refreshWaterTemperature', 'nparams': 0}, {'commandName': 'setAbsenceEndDate', 'nparams': 1}, {'commandName': 'setAbsenceMode', 'nparams': 1}, {'commandName': 'setAbsenceStartDate', 'nparams': 1}, {'commandName': 'setBoostEndDate', 'nparams': 1}, {'commandName': 'setBoostMode', 'nparams': 1}, {'commandName': 'setBoostStartDate', 'nparams': 1}, {'commandName': 'setComfortTargetTemperature', 'nparams': 1}, {'commandName': 'setDateTime', 'nparams': 1}, {'commandName': 'setEcoTargetTemperature', 'nparams': 1}, {'commandName': 'setExpectedNumberOfShower', 'nparams': 1}, {'commandName': 'setFrostProtectionTargetTemperature', 'nparams': 1}, {'commandName': 'setName', 'nparams': 1}, {'commandName': 'setTargetTemperature', 'nparams': 1}, {'commandName': 'setWaterTargetTemperature', 'nparams': 1}, {'commandName': 'setWaterTemperature', 'nparams': 1}, {'commandName': 'startIdentify', 'nparams': 0}, {'commandName': 'stopIdentify', 'nparams': 0}, {'commandName': 'wink', 'nparams': 1}, {'commandName': 'refreshExpectedNumberOfShower', 'nparams': 0}, {'commandName': 'refreshAntiLegionellosis', 'nparams': 0}, {'commandName': 'refreshAwayModeDuration', 'nparams': 0}, {'commandName': 'refreshBoilerInstallationOption', 'nparams': 0}, {'commandName': 'refreshBoostModeDuration', 'nparams': 0}, {'commandName': 'refreshCurrentOperatingMode', 'nparams': 0}, {'commandName': 'refreshDHWCapacity', 'nparams': 0}, {'commandName': 'refreshDHWError', 'nparams': 0}, {'commandName': 'refreshDHWMode', 'nparams': 0}, {'commandName': 'refreshElectricalExtraManagement', 'nparams': 0}, {'commandName': 'refreshExtractionOption', 'nparams': 0}, {'commandName': 'refreshInstallation', 'nparams': 0}, {'commandName': 'refreshMiddleWaterTemperature', 'nparams': 0}, {'commandName': 'refreshOperatingModeCapabilities', 'nparams': 0}, {'commandName': 'refreshOperatingRange', 'nparams': 0}, {'commandName': 'refreshOperatingTime', 'nparams': 0}, {'commandName': 'refreshProgrammingSlots', 'nparams': 0}, {'commandName': 'refreshRateManagement', 'nparams': 0}, {'commandName': 'refreshSmartGridOption', 'nparams': 0}, {'commandName': 'setAntiLegionellosis', 'nparams': 1}, {'commandName': 'setAwayModeDuration', 'nparams': 1}, {'commandName': 'setBoilerInstallationOption', 'nparams': 1}, {'commandName': 'setBoostModeDuration', 'nparams': 1}, {'commandName': 'setCurrentOperatingMode', 'nparams': 1}, {'commandName': 'setDHWMode', 'nparams': 1}, {'commandName': 'setElectricalExtraManagement', 'nparams': 1}, {'commandName': 'setExtractionOption', 'nparams': 1}, {'commandName': 'setHaltedTargetTemperature', 'nparams': 1}, {'commandName': 'setInstallation', 'nparams': 1}, {'commandName': 'setOperatingRange', 'nparams': 1}, {'commandName': 'setProgrammingSlots', 'nparams': 1}, {'commandName': 'setRateManagement', 'nparams': 1}, {'commandName': 'setSmartGridOption', 'nparams': 1}], 'states': [{'type': 'DataState', 'qualifiedName': 'core:AbsenceEndDateState'}, {'type': 'DataState', 'qualifiedName': 'core:AbsenceStartDateState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:BoostElectricPowerConsumptionState'}, {'type': 'DataState', 'qualifiedName': 'core:BoostEndDateState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:BoostModeDurationState'}, {'type': 'DataState', 'qualifiedName': 'core:BoostStartDateState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:BottomTankWaterTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ComfortTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ControlWaterTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:DHWPSoftwareVersionState'}, {'type': 'DataState', 'qualifiedName': 'core:DateTimeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:EcoTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ExpectedNumberOfShowerState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:FrostProtectionTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:HaltedTargetTemperatureState'}, {'type': 'DataState', 'qualifiedName': 'core:HeatingStatusState'}, {'type': 'DataState', 'qualifiedName': 'core:ManufacturerNameState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MaximalShowerManualModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MaximalTemperatureManualModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MiddleWaterTemperatureInState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MinimalShowerManualModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MinimalTemperatureManualModeState'}, {'type': 'DataState', 'qualifiedName': 'core:NameState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:NumberOfShowerRemainingState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:NumberOfTankState'}, {'values': ['antifreeze', 'auto', 'away', 'eco', 'frostprotection', 'manual', 'max', 'normal', 'off', 'on', 'prog', 'program'], 'type': 'DiscreteState', 'qualifiedName': 'core:OperatingModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:PowerHeatElectricalInState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:PriorityLockTimerState'}, {'type': 'DataState', 'qualifiedName': 'core:ProgrammingAvailableState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:RSSILevelState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:SecuredPositionTemperatureState'}, {'values': ['available', 'unavailable'], 'type': 'DiscreteState', 'qualifiedName': 'core:StatusState'}, {'type': 'DataState', 'qualifiedName': 'core:StopRelaunchState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:TargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:TemperatureState'}, {'type': 'DataState', 'qualifiedName': 'core:V40WaterVolumeEstimationState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:VersionState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:WaterConsumptionState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:WaterTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:WaterTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:AntiLegionellosisState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:AwayModeDurationState'}, {'values': ['boilerOptimising', 'boilerPriority', 'heatPumpOptimising', 'heatPumpPriority'], 'type': 'DiscreteState', 'qualifiedName': 'io:BoilerInstallationOptionState'}, {'values': ['off', 'on', 'prog'], 'type': 'DiscreteState', 'qualifiedName': 'io:DHWAbsenceModeState'}, {'values': ['off', 'on', 'prog'], 'type': 'DiscreteState', 'qualifiedName': 'io:DHWBoostModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:DHWCapacityState'}, {'type': 'DataState', 'qualifiedName': 'io:DHWErrorState'}, {'values': ['autoMode', 'manualEcoActive', 'manualEcoInactive'], 'type': 'DiscreteState', 'qualifiedName': 'io:DHWModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:ElectricBoosterOperatingTimeState'}, {'values': ['auto', 'deactive'], 'type': 'DiscreteState', 'qualifiedName': 'io:ElectricalExtraManagementState'}, {'values': ['fastExtractionSpeed', 'lowExtractionSpeed', 'noExtraction'], 'type': 'DiscreteState', 'qualifiedName': 'io:ExtractionOptionState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:HeatPumpOperatingTimeState'}, {'values': ['extraBoiler', 'extraSolar', 'onlyThermodynamic'], 'type': 'DiscreteState', 'qualifiedName': 'io:InstallationState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:MiddleWaterTemperatureState'}, {'type': 'DataState', 'qualifiedName': 'io:OperatingModeCapabilitiesState'}, {'values': ['pac24h_elec24h', 'pacProg_elecProg'], 'type': 'DiscreteState', 'qualifiedName': 'io:OperatingRangeState'}, {'type': 'DataState', 'qualifiedName': 'io:PowerConsumptionFanState'}, {'type': 'DataState', 'qualifiedName': 'io:PowerHeatElectricalState'}, {'type': 'DataState', 'qualifiedName': 'io:PowerHeatPumpState'}, {'values': ['comfortLevel1', 'comfortLevel2', 'comfortLevel3', 'comfortLevel4', 'environmentProtection', 'humanProtection', 'userLevel1', 'userLevel2'], 'type': 'DiscreteState', 'qualifiedName': 'io:PriorityLockLevelState'}, {'values': ['LSC', 'SAAC', 'SFC', 'UPS', 'externalGateway', 'localUser', 'myself', 'rain', 'security', 'temperature', 'timer', 'user', 'wind'], 'type': 'DiscreteState', 'qualifiedName': 'io:PriorityLockOriginatorState'}, {'type': 'DataState', 'qualifiedName': 'io:ProgrammingSlotsState'}, {'values': ['forbidden', 'no', 'recommended', 'unsuitable', 'wanted'], 'type': 'DiscreteState', 'qualifiedName': 'io:RateManagementState'}, {'values': ['active', 'deactive'], 'type': 'DiscreteState', 'qualifiedName': 'io:SmartGridOptionState'}], 'dataProperties': [{'value': '500', 'qualifiedName': 'core:identifyInterval'}], 'widgetName': 'DomesticHotWaterProduction', 'uiClass': 'WaterHeatingSystem', 'uiClassifiers': ['generator'], 'qualifiedName': 'io:AtlanticDomesticHotWaterProductionV2_CE_FLAT_C2_IOComponent', 'type': 'ACTUATOR'}, 'states': [{'name': 'core:NameState', 'type': 3, 'value': 'DHWP Actuator'}, {'name': 'core:VersionState', 'type': 3, 'value': 'xxxx'}, {'name': 'core:PriorityLockTimerState', 'type': 1, 'value': 0}, {'name': 'core:StatusState', 'type': 3, 'value': 'available'}, {'name': 'core:RSSILevelState', 'type': 2, 'value': 92.0}, {'name': 'io:RateManagementState', 'type': 3, 'value': '?'}, {'name': 'io:OperatingModeCapabilitiesState', 'type': 11, 'value': {'relaunch': 1, 'absence': 1, 'rateManagement': 1, 'energyDemandStatus': 0}}, {'name': 'core:OperatingModeState', 'type': 11, 'value': {'relaunch': 'Not_Used', 'absence': 'Not_Used'}}, {'name': 'core:WaterConsumptionState', 'type': 1, 'value': 114}, {'name': 'io:DHWErrorState', 'type': 11, 'value': {'code': 255, 'minor': 255, 'family': 'W', 'type': 4}}, {'name': 'io:HeatPumpOperatingTimeState', 'type': 1, 'value': 0}, {'name': 'io:ElectricBoosterOperatingTimeState', 'type': 1, 'value': 406}, {'name': 'io:DHWModeState', 'type': 3, 'value': 'autoMode'}, {'name': 'core:TemperatureState', 'type': 2, 'value': 20.0}, {'name': 'core:TargetTemperatureState', 'type': 2, 'value': 20.0}, {'name': 'io:OperatingRangeState', 'type': 3, 'value': 'pac24h_elec24h'}, {'name': 'io:ProgrammingSlotsState', 'type': 11, 'value': {'slot2': {'start': '00:00', 'end': '00:00'}, 'slot1': {'start': '22:00', 'end': '06:00'}}}, {'name': 'io:AntiLegionellosisState', 'type': 1, 'value': 1}, {'name': 'core:ProgrammingAvailableState', 'type': 1, 'value': 0}, {'name': 'io:DHWBoostModeState', 'type': 3, 'value': 'off'}, {'name': 'io:DHWAbsenceModeState', 'type': 3, 'value': 'off'}, {'name': 'core:NumberOfTankState', 'type': 1, 'value': 2}, {'name': 'core:BoostElectricPowerConsumptionState', 'type': 1, 'value': 0}, {'name': 'core:PowerHeatElectricalInState', 'type': 1, 'value': 0}, {'name': 'io:MiddleWaterTemperatureState', 'type': 2, 'value': 59.7}, {'name': 'core:BottomTankWaterTemperatureState', 'type': 2, 'value': 0.0}, {'name': 'core:V40WaterVolumeEstimationState', 'type': 1, 'value': 25556}, {'name': 'io:PowerHeatElectricalState', 'type': 1, 'value': 0}, {'name': 'io:PowerHeatPumpState', 'type': 1, 'value': 0}, {'name': 'core:WaterTemperatureState', 'type': 2, 'value': 60.0}, {'name': 'core:WaterTargetTemperatureState', 'type': 2, 'value': 60.0}, {'name': 'core:ExpectedNumberOfShowerState', 'type': 1, 'value': 4}, {'name': 'core:ControlWaterTargetTemperatureState', 'type': 2, 'value': 42.0}, {'name': 'core:StopRelaunchState', 'type': 3, 'value': ' Relaunch Enable'}, {'name': 'core:MiddleWaterTemperatureInState', 'type': 2, 'value': 42.3}, {'name': 'core:HeatingStatusState', 'type': 3, 'value': 'off'}, {'name': 'core:NumberOfShowerRemainingState', 'type': 1, 'value': 2}, {'name': 'core:DateTimeState', 'type': 11, 'value': {'month': 6, 'hour': 19, 'year': 2020, 'weekday': 0, 'day': 1, 'minute': 10, 'second': 8}}, {'name': 'core:ManufacturerNameState', 'type': 3, 'value': 'Thermor'}, {'name': 'core:DHWPSoftwareVersionState', 'type': 3, 'value': 'MALICIO'}, {'name': 'io:DHWCapacityState', 'type': 1, 'value': 80}, {'name': 'core:BoostStartDateState', 'type': 11, 'value': {'month': '??', 'hour': 0, 'year': 0, 'weekday': 0, 'day': '??', 'minute': 0, 'second': 0}}, {'name': 'core:BoostEndDateState', 'type': 11, 'value': {'month': '??', 'hour': 0, 'year': 0, 'weekday': 0, 'day': '??', 'minute': 0, 'second': 0}}, {'name': 'core:MinimalTemperatureManualModeState', 'type': 2, 'value': 50.0}, {'name': 'core:MaximalTemperatureManualModeState', 'type': 2, 'value': 70.0}, {'name': 'core:MinimalShowerManualModeState', 'type': 1, 'value': 2}, {'name': 'core:MaximalShowerManualModeState', 'type': 1, 'value': 4}], 'attributes': [], 'available': True, 'enabled': True, 'placeOID': 'xxxx', 'widget': 'DomesticHotWaterProduction', 'type': 1, 'oid': 'xxxx', 'uiClass': 'WaterHeatingSystem'}, {'creationTime': 1578564113000, 'lastUpdateTime': 1578564113000, 'label': 'IO (xxxx#2)', 'deviceURL': 'io://xxxx', 'shortcut': False, 'controllableName': 'io:DHWCumulatedElectricalEnergyConsumptionIOSystemDeviceSensor', 'definition': {'commands': [{'commandName': 'refreshElectricEnergyConsumption', 'nparams': 0}], 'states': [{'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff0State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff1State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff2State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff3State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff4State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff5State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff6State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff7State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff8State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff9State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ElectricEnergyConsumptionState'}, {'values': ['available', 'unavailable'], 'type': 'DiscreteState', 'qualifiedName': 'core:StatusState'}], 'dataProperties': [], 'widgetName': 'CumulativeElectricPowerConsumptionSensor', 'uiClass': 'ElectricitySensor', 'qualifiedName': 'io:DHWCumulatedElectricalEnergyConsumptionIOSystemDeviceSensor', 'type': 'SENSOR'}, 'states': [{'name': 'core:StatusState', 'type': 3, 'value': 'available'}, {'name': 'core:ElectricEnergyConsumptionState', 'type': 1, 'value': 780996}], 'attributes': [{'name': 'core:PowerSourceType', 'type': 3, 'value': 'mainSupply'}, {'name': 'core:MeasuredValueType', 'type': 3, 'value': 'core:ElectricalEnergyInWh'}], 'available': True, 'enabled': True, 'placeOID': 'xxxx', 'widget': 'CumulativeElectricPowerConsumptionSensor', 'type': 2, 'oid': 'xxxx', 'uiClass': 'ElectricitySensor'}, {'creationTime': 1578564290000, 'lastUpdateTime': 1578564290000, 'label': 'DHWP Actuator', 'deviceURL': 'io://xxxx#1', 'shortcut': False, 'controllableName': 'io:AtlanticDomesticHotWaterProductionV2_CE_FLAT_C2_IOComponent', 'definition': {'commands': [{'commandName': 'delayedStopIdentify', 'nparams': 1}, {'commandName': 'getName', 'nparams': 0}, {'commandName': 'identify', 'nparams': 0}, {'commandName': 'refreshAbsenceEndDate', 'nparams': 0}, {'commandName': 'refreshAbsenceMode', 'nparams': 0}, {'commandName': 'refreshAbsenceStartDate', 'nparams': 0}, {'commandName': 'refreshBoostEndDate', 'nparams': 0}, {'commandName': 'refreshBoostMode', 'nparams': 0}, {'commandName': 'refreshBoostStartDate', 'nparams': 0}, {'commandName': 'refreshBottomTankWaterTemperature', 'nparams': 0}, {'commandName': 'refreshManufacturerName', 'nparams': 0}, {'commandName': 'refreshMiddleWaterTemperatureIn', 'nparams': 0}, {'commandName': 'refreshTargetTemperature', 'nparams': 0}, {'commandName': 'refreshWaterConsumption', 'nparams': 0}, {'commandName': 'refreshWaterTargetTemperature', 'nparams': 0}, {'commandName': 'refreshWaterTemperature', 'nparams': 0}, {'commandName': 'setAbsenceEndDate', 'nparams': 1}, {'commandName': 'setAbsenceMode', 'nparams': 1}, {'commandName': 'setAbsenceStartDate', 'nparams': 1}, {'commandName': 'setBoostEndDate', 'nparams': 1}, {'commandName': 'setBoostMode', 'nparams': 1}, {'commandName': 'setBoostStartDate', 'nparams': 1}, {'commandName': 'setComfortTargetTemperature', 'nparams': 1}, {'commandName': 'setDateTime', 'nparams': 1}, {'commandName': 'setEcoTargetTemperature', 'nparams': 1}, {'commandName': 'setExpectedNumberOfShower', 'nparams': 1}, {'commandName': 'setFrostProtectionTargetTemperature', 'nparams': 1}, {'commandName': 'setName', 'nparams': 1}, {'commandName': 'setTargetTemperature', 'nparams': 1}, {'commandName': 'setWaterTargetTemperature', 'nparams': 1}, {'commandName': 'setWaterTemperature', 'nparams': 1}, {'commandName': 'startIdentify', 'nparams': 0}, {'commandName': 'stopIdentify', 'nparams': 0}, {'commandName': 'wink', 'nparams': 1}, {'commandName': 'refreshExpectedNumberOfShower', 'nparams': 0}, {'commandName': 'refreshAntiLegionellosis', 'nparams': 0}, {'commandName': 'refreshAwayModeDuration', 'nparams': 0}, {'commandName': 'refreshBoilerInstallationOption', 'nparams': 0}, {'commandName': 'refreshBoostModeDuration', 'nparams': 0}, {'commandName': 'refreshCurrentOperatingMode', 'nparams': 0}, {'commandName': 'refreshDHWCapacity', 'nparams': 0}, {'commandName': 'refreshDHWError', 'nparams': 0}, {'commandName': 'refreshDHWMode', 'nparams': 0}, {'commandName': 'refreshElectricalExtraManagement', 'nparams': 0}, {'commandName': 'refreshExtractionOption', 'nparams': 0}, {'commandName': 'refreshInstallation', 'nparams': 0}, {'commandName': 'refreshMiddleWaterTemperature', 'nparams': 0}, {'commandName': 'refreshOperatingModeCapabilities', 'nparams': 0}, {'commandName': 'refreshOperatingRange', 'nparams': 0}, {'commandName': 'refreshOperatingTime', 'nparams': 0}, {'commandName': 'refreshProgrammingSlots', 'nparams': 0}, {'commandName': 'refreshRateManagement', 'nparams': 0}, {'commandName': 'refreshSmartGridOption', 'nparams': 0}, {'commandName': 'setAntiLegionellosis', 'nparams': 1}, {'commandName': 'setAwayModeDuration', 'nparams': 1}, {'commandName': 'setBoilerInstallationOption', 'nparams': 1}, {'commandName': 'setBoostModeDuration', 'nparams': 1}, {'commandName': 'setCurrentOperatingMode', 'nparams': 1}, {'commandName': 'setDHWMode', 'nparams': 1}, {'commandName': 'setElectricalExtraManagement', 'nparams': 1}, {'commandName': 'setExtractionOption', 'nparams': 1}, {'commandName': 'setHaltedTargetTemperature', 'nparams': 1}, {'commandName': 'setInstallation', 'nparams': 1}, {'commandName': 'setOperatingRange', 'nparams': 1}, {'commandName': 'setProgrammingSlots', 'nparams': 1}, {'commandName': 'setRateManagement', 'nparams': 1}, {'commandName': 'setSmartGridOption', 'nparams': 1}], 'states': [{'type': 'DataState', 'qualifiedName': 'core:AbsenceEndDateState'}, {'type': 'DataState', 'qualifiedName': 'core:AbsenceStartDateState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:BoostElectricPowerConsumptionState'}, {'type': 'DataState', 'qualifiedName': 'core:BoostEndDateState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:BoostModeDurationState'}, {'type': 'DataState', 'qualifiedName': 'core:BoostStartDateState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:BottomTankWaterTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ComfortTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ControlWaterTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:DHWPSoftwareVersionState'}, {'type': 'DataState', 'qualifiedName': 'core:DateTimeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:EcoTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ExpectedNumberOfShowerState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:FrostProtectionTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:HaltedTargetTemperatureState'}, {'type': 'DataState', 'qualifiedName': 'core:HeatingStatusState'}, {'type': 'DataState', 'qualifiedName': 'core:ManufacturerNameState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MaximalShowerManualModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MaximalTemperatureManualModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MiddleWaterTemperatureInState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MinimalShowerManualModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:MinimalTemperatureManualModeState'}, {'type': 'DataState', 'qualifiedName': 'core:NameState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:NumberOfShowerRemainingState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:NumberOfTankState'}, {'values': ['antifreeze', 'auto', 'away', 'eco', 'frostprotection', 'manual', 'max', 'normal', 'off', 'on', 'prog', 'program'], 'type': 'DiscreteState', 'qualifiedName': 'core:OperatingModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:PowerHeatElectricalInState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:PriorityLockTimerState'}, {'type': 'DataState', 'qualifiedName': 'core:ProgrammingAvailableState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:RSSILevelState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:SecuredPositionTemperatureState'}, {'values': ['available', 'unavailable'], 'type': 'DiscreteState', 'qualifiedName': 'core:StatusState'}, {'type': 'DataState', 'qualifiedName': 'core:StopRelaunchState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:TargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:TemperatureState'}, {'type': 'DataState', 'qualifiedName': 'core:V40WaterVolumeEstimationState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:VersionState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:WaterConsumptionState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:WaterTargetTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'core:WaterTemperatureState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:AntiLegionellosisState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:AwayModeDurationState'}, {'values': ['boilerOptimising', 'boilerPriority', 'heatPumpOptimising', 'heatPumpPriority'], 'type': 'DiscreteState', 'qualifiedName': 'io:BoilerInstallationOptionState'}, {'values': ['off', 'on', 'prog'], 'type': 'DiscreteState', 'qualifiedName': 'io:DHWAbsenceModeState'}, {'values': ['off', 'on', 'prog'], 'type': 'DiscreteState', 'qualifiedName': 'io:DHWBoostModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:DHWCapacityState'}, {'type': 'DataState', 'qualifiedName': 'io:DHWErrorState'}, {'values': ['autoMode', 'manualEcoActive', 'manualEcoInactive'], 'type': 'DiscreteState', 'qualifiedName': 'io:DHWModeState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:ElectricBoosterOperatingTimeState'}, {'values': ['auto', 'deactive'], 'type': 'DiscreteState', 'qualifiedName': 'io:ElectricalExtraManagementState'}, {'values': ['fastExtractionSpeed', 'lowExtractionSpeed', 'noExtraction'], 'type': 'DiscreteState', 'qualifiedName': 'io:ExtractionOptionState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:HeatPumpOperatingTimeState'}, {'values': ['extraBoiler', 'extraSolar', 'onlyThermodynamic'], 'type': 'DiscreteState', 'qualifiedName': 'io:InstallationState'}, {'type': 'ContinuousState', 'qualifiedName': 'io:MiddleWaterTemperatureState'}, {'type': 'DataState', 'qualifiedName': 'io:OperatingModeCapabilitiesState'}, {'values': ['pac24h_elec24h', 'pacProg_elecProg'], 'type': 'DiscreteState', 'qualifiedName': 'io:OperatingRangeState'}, {'type': 'DataState', 'qualifiedName': 'io:PowerConsumptionFanState'}, {'type': 'DataState', 'qualifiedName': 'io:PowerHeatElectricalState'}, {'type': 'DataState', 'qualifiedName': 'io:PowerHeatPumpState'}, {'values': ['comfortLevel1', 'comfortLevel2', 'comfortLevel3', 'comfortLevel4', 'environmentProtection', 'humanProtection', 'userLevel1', 'userLevel2'], 'type': 'DiscreteState', 'qualifiedName': 'io:PriorityLockLevelState'}, {'values': ['LSC', 'SAAC', 'SFC', 'UPS', 'externalGateway', 'localUser', 'myself', 'rain', 'security', 'temperature', 'timer', 'user', 'wind'], 'type': 'DiscreteState', 'qualifiedName': 'io:PriorityLockOriginatorState'}, {'type': 'DataState', 'qualifiedName': 'io:ProgrammingSlotsState'}, {'values': ['forbidden', 'no', 'recommended', 'unsuitable', 'wanted'], 'type': 'DiscreteState', 'qualifiedName': 'io:RateManagementState'}, {'values': ['active', 'deactive'], 'type': 'DiscreteState', 'qualifiedName': 'io:SmartGridOptionState'}], 'dataProperties': [{'value': '500', 'qualifiedName': 'core:identifyInterval'}], 'widgetName': 'DomesticHotWaterProduction', 'uiClass': 'WaterHeatingSystem', 'uiClassifiers': ['generator'], 'qualifiedName': 'io:AtlanticDomesticHotWaterProductionV2_CE_FLAT_C2_IOComponent', 'type': 'ACTUATOR'}, 'states': [{'name': 'core:NameState', 'type': 3, 'value': 'DHWP Actuator'}, {'name': 'core:VersionState', 'type': 3, 'value': 'xxxx'}, {'name': 'core:StatusState', 'type': 3, 'value': 'available'}, {'name': 'core:RSSILevelState', 'type': 2, 'value': 98.0}, {'name': 'io:RateManagementState', 'type': 3, 'value': '?'}, {'name': 'io:OperatingModeCapabilitiesState', 'type': 11, 'value': {'relaunch': 1, 'absence': 1, 'rateManagement': 1, 'energyDemandStatus': 0}}, {'name': 'core:OperatingModeState', 'type': 11, 'value': {'relaunch': 'Not_Used', 'absence': 'Not_Used'}}, {'name': 'core:WaterConsumptionState', 'type': 1, 'value': 112}, {'name': 'io:DHWErrorState', 'type': 11, 'value': {'code': 255, 'minor': 255, 'family': 'W', 'type': 4}}, {'name': 'io:HeatPumpOperatingTimeState', 'type': 1, 'value': 0}, {'name': 'io:ElectricBoosterOperatingTimeState', 'type': 1, 'value': 179}, {'name': 'io:DHWModeState', 'type': 3, 'value': 'autoMode'}, {'name': 'core:TemperatureState', 'type': 2, 'value': 20.0}, {'name': 'core:TargetTemperatureState', 'type': 2, 'value': 20.0}, {'name': 'io:OperatingRangeState', 'type': 3, 'value': 'pac24h_elec24h'}, {'name': 'io:ProgrammingSlotsState', 'type': 11, 'value': {'slot2': {'start': '00:00', 'end': '00:00'}, 'slot1': {'start': '22:00', 'end': '06:00'}}}, {'name': 'io:AntiLegionellosisState', 'type': 1, 'value': 1}, {'name': 'core:ProgrammingAvailableState', 'type': 1, 'value': 0}, {'name': 'io:DHWBoostModeState', 'type': 3, 'value': 'off'}, {'name': 'io:DHWAbsenceModeState', 'type': 3, 'value': 'off'}, {'name': 'core:NumberOfTankState', 'type': 1, 'value': 2}, {'name': 'core:BoostElectricPowerConsumptionState', 'type': 1, 'value': 0}, {'name': 'core:PowerHeatElectricalInState', 'type': 1, 'value': 0}, {'name': 'io:MiddleWaterTemperatureState', 'type': 2, 'value': 59.3}, {'name': 'core:BottomTankWaterTemperatureState', 'type': 2, 'value': 0.0}, {'name': 'core:V40WaterVolumeEstimationState', 'type': 1, 'value': 7729}, {'name': 'io:PowerHeatElectricalState', 'type': 1, 'value': 0}, {'name': 'io:PowerHeatPumpState', 'type': 1, 'value': 0}, {'name': 'core:WaterTemperatureState', 'type': 2, 'value': 60.0}, {'name': 'core:WaterTargetTemperatureState', 'type': 2, 'value': 60.0}, {'name': 'core:ExpectedNumberOfShowerState', 'type': 1, 'value': 2}, {'name': 'core:ControlWaterTargetTemperatureState', 'type': 2, 'value': 42.0}, {'name': 'core:StopRelaunchState', 'type': 3, 'value': ' Relaunch Enable'}, {'name': 'core:MiddleWaterTemperatureInState', 'type': 2, 'value': 41.4}, {'name': 'core:HeatingStatusState', 'type': 3, 'value': 'off'}, {'name': 'core:NumberOfShowerRemainingState', 'type': 1, 'value': 2}, {'name': 'core:DateTimeState', 'type': 11, 'value': {'month': 6, 'hour': 19, 'year': 2020, 'weekday': 0, 'day': 1, 'minute': 10, 'second': 15}}, {'name': 'core:ManufacturerNameState', 'type': 3, 'value': 'Thermor'}, {'name': 'core:DHWPSoftwareVersionState', 'type': 3, 'value': 'MALICIO'}, {'name': 'io:DHWCapacityState', 'type': 1, 'value': 80}, {'name': 'core:BoostStartDateState', 'type': 11, 'value': {'month': '??', 'hour': 0, 'year': 0, 'weekday': 0, 'day': '??', 'minute': 0, 'second': 0}}, {'name': 'core:BoostEndDateState', 'type': 11, 'value': {'month': '??', 'hour': 0, 'year': 0, 'weekday': 0, 'day': '??', 'minute': 0, 'second': 0}}, {'name': 'core:MinimalTemperatureManualModeState', 'type': 2, 'value': 50.0}, {'name': 'core:MaximalTemperatureManualModeState', 'type': 2, 'value': 70.0}, {'name': 'core:MinimalShowerManualModeState', 'type': 1, 'value': 2}, {'name': 'core:MaximalShowerManualModeState', 'type': 1, 'value': 4}], 'attributes': [], 'available': True, 'enabled': True, 'placeOID': 'xxxx', 'widget': 'DomesticHotWaterProduction', 'type': 1, 'oid': 'xxxx', 'uiClass': 'WaterHeatingSystem'}, {'creationTime': 1578564290000, 'lastUpdateTime': 1578564290000, 'label': 'IO (xxxx#2)', 'deviceURL': 'io://xxxx#2', 'shortcut': False, 'controllableName': 'io:DHWCumulatedElectricalEnergyConsumptionIOSystemDeviceSensor', 'definition': {'commands': [{'commandName': 'refreshElectricEnergyConsumption', 'nparams': 0}], 'states': [{'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff0State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff1State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff2State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff3State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff4State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff5State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff6State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff7State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff8State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ConsumptionTariff9State'}, {'type': 'ContinuousState', 'qualifiedName': 'core:ElectricEnergyConsumptionState'}, {'values': ['available', 'unavailable'], 'type': 'DiscreteState', 'qualifiedName': 'core:StatusState'}], 'dataProperties': [], 'widgetName': 'CumulativeElectricPowerConsumptionSensor', 'uiClass': 'ElectricitySensor', 'qualifiedName': 'io:DHWCumulatedElectricalEnergyConsumptionIOSystemDeviceSensor', 'type': 'SENSOR'}, 'states': [{'name': 'core:StatusState', 'type': 3, 'value': 'available'}, {'name': 'core:ElectricEnergyConsumptionState', 'type': 1, 'value': 253965}], 'attributes': [{'name': 'core:PowerSourceType', 'type': 3, 'value': 'mainSupply'}, {'name': 'core:MeasuredValueType', 'type': 3, 'value': 'core:ElectricalEnergyInWh'}], 'available': True, 'enabled': True, 'placeOID': 'xxxx', 'widget': 'CumulativeElectricPowerConsumptionSensor', 'type': 2, 'oid': 'xxxx', 'uiClass': 'ElectricitySensor'}], 'zones': [], 'resellerDelegationType': 'NEVER', 'oid': 'xxxx', 'rootPlace': {'creationTime': 1578562995000, 'lastUpdateTime': 1578562995000, 'label': 'All House', 'type': 0, 'oid': 'xxxx', 'subPlaces': [{'creationTime': 1578564225000, 'lastUpdateTime': 1578564225000, 'label': "Salle D'eau", 'type': 8, 'oid': 'xxxx', 'subPlaces': []}, {'creationTime': 1578564177000, 'lastUpdateTime': 1578564177000, 'label': 'Salle De Bain', 'type': 8, 'oid': 'xxxx', 'subPlaces': []}]}, 'features': []}
Thanks,
This is a continuation of https://github.com/biker91620/cozypy/issues/7
I will try to get the json ASAP.
I'm still thinking that if it is possible to get the data for all the devices in one call, it should be done. I have 9 heaters and there's at least one call to the API for each of them. I'm suspecting more, one for each sensor in home assistant.
Same comment as #10
Logger: cozytouchpy.objects.device
Source: /srv/homeassistant/lib/python3.7/site-packages/cozytouchpy/objects/device.py:130
First occurred: 16:48:28 (14 occurrences)
Last logged: 16:50:33
Unsupported 'standby' value in ['antifreeze', 'auto', 'away', 'eco', 'frostprotection', 'manual', 'max', 'normal', 'off', 'on', 'prog', 'program']
Unsupported 'internal' value in ['antifreeze', 'auto', 'away', 'eco', 'frostprotection', 'manual', 'max', 'normal', 'off', 'on', 'prog', 'program']
Unsupported 'basic' value in ['antifreeze', 'auto', 'away', 'eco', 'frostprotection', 'manual', 'max', 'normal', 'off', 'on', 'prog', 'program']
This stack trace came from my home assistant.
Logger: cozytouchpy.objects.device
Source: /srv/homeassistant/lib/python3.7/site-packages/cozytouchpy/objects/device.py:124
First occurred: 17:01:24 (7 occurrences)
Last logged: 17:01:46
Unsupported Integer 6.0
Unsupported Integer 20.0
Unsupported Integer 3.5
Unsupported Integer 3.0
Unsupported Integer 4.0
I have 4 heater "Atlantic ONIRIS" and one water heater "Atlantic Linéo"
i don't know if there is a real impact :/
Hi,
I tried to test your library but unfortunatly I had a 401
on client.connect
.
I believe it's related to the credentials I used, I put as username and password those I'm using to connect on the mobile application "Atlantic Cozytouch".
What kind of credentials should I use?
Thanks!
Just after a "git clone" I do:
$ python3 example.py
Traceback (most recent call last):
File "/Users/rousseau/Documents/github/cozytouchpy/example.py", line 21, in <module>
client = CozytouchClient(username, password)
TypeError: CozytouchClient.__init__() missing 1 required positional argument: 'server'
The example code uses client = CozytouchClient(username, password)
without giving any value for the server
parameter.
I guess the correct syntax should be:
client = CozytouchClient(username, password, "atlantic_cozytouch")
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.