-
Compteur de contenus
1 331 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Tout ce qui a été posté par Bloug
-
A mon sens, je ne pense pas que le thermostat soit nécessaire, car les informations remontées sont celles du Navistem 100H. ( donc également toutes les infos et options qui s'y trouvent) Au pire commande Amazon sous prime pour un éventuel retour ....
-
C'est bien un écran qu'il y a sur la chaudière ?, c'est la que tu regles tes 60° ou via l'ipx? Que permet l'écran ?
-
Comment règles-tu actuellement la consigne ? Ta chaudière ne dispose pas du Navistem 100H ?
-
Pas bête !!!!! Merci !
-
C'est frustrant d'y arriver avec le PowerShell de 45 lignes ! Les cookies ne sont pas dans le -H en header il y a forcement un truc louche avec le fichier .pymultimatic-cookie ! de toute manière c'est la seule chose qui n'est pas connecté à ma box donc je vais pas lâcher!
-
Déjà testé des trucs sous Android mais l'application bloque au démarrage C'est des lapins chez Vaillant !
-
bahh j'me prends la tête car j'ai tester multiples trucs et toujours en 401 après je cherche des alternatives et comme le seul truc est la boite à cookie .... Après 0 documentation avec api fermée function QuickApp:get() self.http:request("https://smart.vaillant.com/mobile/api/v4/facilities/2**S**E**R**I*A**L**4/storage/default", { options={ method = "GET", headers = { [ 'content-type' ] = 'application/json;charset=UTF-8', [ 'Accept' ] = 'application/json', [ 'Vaillant-Mobile-App' ] = 'multiMATIC v2.1.45 b389 (Android)', -- [ 'JSESSIONID' ] = cook1, -- F492DE3505594D686FD380A0D60E2472 -- [ 'TS01b0e19c' ] = cook2, -- 1e5b3f1f8cef485717100c75634a81f1d7d9dd5c8d258d76d6cf8165cf413fff586a9858f48b64b9371a3dfa2df61559be0bbb855 [ 'Set-Cookie' ] = cookie1, -- JSESSIONID=F492DE3505594D686FD380A0D60E2472 [ 'Set-Cookie' ] = cookie2, -- TS01b0e19c=1e5b3f1f8cef485717100c75634a81f1d7d9dd5c8d258d76d6cf8165cf413fff586a9858f48b64b9371a3dfa2df61559be0bbb855 }, }, success = function(response) if response.status == 200 then self:debug('Connection Ok') local jsonResponse = json.decode(response.data) self:debug(response.data) else self:debug('Error : ' .. response.status .. response.data) end end, error = function(error) self:debug('error: ' .. error) end }) end
-
Bon je creuse et je trouve des choses en php ... j'ai trouvé la syntaxe suivante qui se rapproche de mon pb : setcookie(name, value, expire, path, domain, secure, httponly) si je croise avec le fichier .pymultimatic-cookie : #HttpOnly_smart.vaillant.com FALSE / TRUE 0 JSESSIONID 5612998F20F9D0C39FED52118AB2D5EA Dois je plutôt avoir en lua une variable à déclarer pour le header genre : local aa = setcookie('JSESSIONID', '5612998F20F9D0C39FED52118AB2D5EA' , 0 , '/', '#HttpOnly_smart.vaillant.com', 'FALSE', 'TRUE' ) et ensuite indiquer dans le header : [ 'set-cookie' ] = aa, ou est-ce plutôt une ligne complète directement dans le header : [ 'Set-Cookie'] = "JSESSIONID=5612998F20F9D0C39FED52118AB2D5EA ; path=/ ; domain= ' #HttpOnly_smart.vaillant.com ' ; expires='0' ; 'FALSE' ; 'TRUE', '; je trouve aucun exemple en lua j'espère que le délestage Enedis n'a pas commencé !
-
Comment règles-tu actuellement la consigne ? Ta chaudière ne dispose pas du Navistem 100H ? Pour le Cloud, malheureusement oui, pas d'api local mais je récupère les infos toutes les 30 secondes sans pb. D'après mes recherches il semble qu'avec le cozytouch , tu puisses récupérer également les consommations Voici un ex des infos que je récupère pour mes 2 Sèches-serviettes : {"creationTime":1528367801000,"lastUpdateTime":1528367801000,"id":"SETUP-0810-4343-0200","location":{"creationTime":1528367801000,"lastUpdateTime":1633366299000,"city":"","country":"France","postalCode":"30000","addressLine1":"NIMES","timezone":"Europe/Paris","longitude":7.343,"latitude":8.877,"twilightMode":2,"twilightAngle":"CIVIL","twilightCity":"paris","summerSolsticeDuskMinutes":1290,"winterSolsticeDuskMinutes":990,"twilightOffsetEnabled":false,"dawnOffset":0,"duskOffset":0,"countryCode":"FR"},"gateways":[{"gatewayId":"0810-4343-0200","type":32,"subType":0,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","alive":true,"timeReliable":true,"connectivity":{"status":"OK","protocolVersion":"2022.1.4"},"upToDate":true,"updateStatus":"UP_TO_DATE","syncInProgress":true,"mode":"ACTIVE","functions":"INTERNET_AUTHORIZATION,SCENARIO_DOWNLOAD,SCENARIO_AUTO_LAUNCHING,SCENARIO_TELECO_LAUNCHING,INTERNET_UPLOAD,INTERNET_UPDATE,TRIGGERS_SENSORS"}],"devices":[{"creationTime":1528367801000,"lastUpdateTime":1528367801000,"label":"Box","deviceURL":"internal://0810-4343-0200/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":[{"type":"DiscreteState","values":["offline","online"],"qualifiedName":"core:ConnectivityState"},{"type":"DataState","qualifiedName":"core:CountryCodeState"},{"type":"DataState","qualifiedName":"core:LocalIPv4AddressState"},{"type":"DataState","qualifiedName":"core:NameState"},{"type":"DiscreteState","values":["doublePress","longPress","simplePress","triplePress","veryLongPress"],"qualifiedName":"internal:LastActionConfigButtonState"},{"type":"ContinuousState","qualifiedName":"internal:LightingLedPodModeState"}],"dataProperties":[],"widgetName":"Pod","uiProfiles":["UpdatableComponent"],"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":"FR"},{"name":"core:LocalIPv4AddressState","type":3,"value":"192.168.1.15"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"Pod","type":1,"oid":"10c95dcc-bde0-4d37-bfea-e46c4e34ed48","uiClass":"Pod"},{"creationTime":1601387165000,"lastUpdateTime":1601387165000,"label":"IO (10662703)","deviceURL":"io://0810-4343-0200/10662703","shortcut":false,"controllableName":"io:StackComponent","definition":{"commands":[{"commandName":"advancedSomfyDiscover","nparams":1},{"commandName":"discover1WayController","nparams":2},{"commandName":"discoverActuators","nparams":1},{"commandName":"discoverSensors","nparams":1},{"commandName":"discoverSomfyUnsetActuators","nparams":0},{"commandName":"joinNetwork","nparams":0},{"commandName":"resetNetworkSecurity","nparams":0},{"commandName":"shareNetwork","nparams":0}],"states":[],"dataProperties":[],"widgetName":"IOStack","uiProfiles":["Specific"],"uiClass":"ProtocolGateway","qualifiedName":"io:StackComponent","type":"PROTOCOL_GATEWAY"},"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"IOStack","type":5,"oid":"6925ee2e-d058-4bab-b81e-6cfd74ab7617","uiClass":"ProtocolGateway"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"I2G_Actuator","deviceURL":"io://0810-4343-0200/13610533#1","shortcut":false,"controllableName":"io:AtlanticElectricalTowelDryerIOComponent","definition":{"commands":[{"commandName":"advancedRefresh","nparams":1},{"commandName":"cancelHeatingLevel","nparams":1},{"commandName":"delayedStopIdentify","nparams":1},{"commandName":"getName","nparams":0},{"commandName":"identify","nparams":0},{"commandName":"off","nparams":0},{"commandName":"refreshComfortTemperature","nparams":0},{"commandName":"refreshDateTime","nparams":0},{"commandName":"refreshDerogatedTargetTemperature","nparams":0},{"commandName":"refreshEcoTemperature","nparams":0},{"commandName":"refreshHeatingLevel","nparams":0},{"commandName":"refreshManufacturerName","nparams":0},{"commandName":"refreshMaximumHeatingTargetTemperature","nparams":0},{"commandName":"refreshMaximumTargetTemperature","nparams":0},{"commandName":"refreshOperatingMode","nparams":0},{"commandName":"refreshTargetTemperature","nparams":0},{"commandName":"refreshTemperature","nparams":0},{"commandName":"setComfortTemperature","nparams":1},{"commandName":"setDateTime","nparams":1},{"commandName":"setDerogatedTargetTemperature","nparams":1},{"commandName":"setEcoTemperature","nparams":1},{"commandName":"setHeatingLevel","nparams":1},{"commandName":"setHeatingLevelWithTimer","nparams":2},{"commandName":"setName","nparams":1},{"commandName":"setPreviousTargetTemperature","nparams":1},{"commandName":"setSchedulingType","nparams":1},{"commandName":"setTargetTemperature","nparams":1},{"commandName":"startIdentify","nparams":0},{"commandName":"stopIdentify","nparams":0},{"commandName":"wink","nparams":1},{"commandName":"pairOneWayController","nparams":2},{"commandName":"refreshAutoProgram","nparams":0},{"commandName":"refreshBoostModeDuration","nparams":0},{"commandName":"refreshBoostModeParameters","nparams":0},{"commandName":"refreshControllerAddress","nparams":0},{"commandName":"refreshCumulatedLowering","nparams":0},{"commandName":"refreshCurrentWorkingRate","nparams":0},{"commandName":"refreshDeletionCancelation","nparams":0},{"commandName":"refreshDryingDuration","nparams":0},{"commandName":"refreshDryingParameters","nparams":0},{"commandName":"refreshEffectiveTemperatureSetpoint","nparams":0},{"commandName":"refreshLocalLeadTime","nparams":0},{"commandName":"refreshModel","nparams":0},{"commandName":"refreshOccupancy","nparams":0},{"commandName":"refreshPeakNotice","nparams":0},{"commandName":"refreshPeakWarning","nparams":0},{"commandName":"refreshPowerAndTension","nparams":0},{"commandName":"refreshRoomDeletionThreshold","nparams":0},{"commandName":"refreshSSVError6","nparams":0},{"commandName":"refreshSetpointLoweringTemperatureInProgMode","nparams":0},{"commandName":"refreshSynchronisationRequest","nparams":0},{"commandName":"refreshTemperatureProbeCalibrationOffset","nparams":0},{"commandName":"refreshTowelDryerTemporaryState","nparams":0},{"commandName":"refreshTowelDryerTimeProgram","nparams":0},{"commandName":"setCommunicationTest","nparams":1},{"commandName":"setDeletionCancelation","nparams":1},{"commandName":"setDryingDuration","nparams":1},{"commandName":"setExpectedPresence","nparams":1},{"commandName":"setPeakNotice","nparams":1},{"commandName":"setPeakWarning","nparams":1},{"commandName":"setRoomDeletionThreshold","nparams":1},{"commandName":"setSetpointLoweringTemperatureInProgMode","nparams":1},{"commandName":"setTemperatureProbeCalibrationOffset","nparams":1},{"commandName":"setTowelDryerBoostModeDuration","nparams":1},{"commandName":"setTowelDryerOperatingMode","nparams":1},{"commandName":"setTowelDryerTemporaryState","nparams":1},{"commandName":"setTowelDryerTimeProgram","nparams":1},{"commandName":"unpairAllOneWayControllers","nparams":0},{"commandName":"unpairOneWayController","nparams":2}],"states":[{"type":"ContinuousState","qualifiedName":"core:BoostModeDurationState"},{"type":"ContinuousState","qualifiedName":"core:ComfortRoomTemperatureState"},{"type":"DataState","qualifiedName":"core:DateTimeState"},{"type":"ContinuousState","qualifiedName":"core:DerogatedTargetTemperatureState"},{"type":"DiscreteState","values":["good","low","normal","verylow"],"qualifiedName":"core:DiscreteRSSILevelState"},{"type":"ContinuousState","qualifiedName":"core:EcoRoomTemperatureState"},{"type":"ContinuousState","qualifiedName":"core:FilterFanCloggingErrorState"},{"type":"DataState","qualifiedName":"core:IdentifierState"},{"type":"DataState","qualifiedName":"core:ManufacturerNameState"},{"type":"ContinuousState","qualifiedName":"core:MaximumHeatingTargetTemperatureState"},{"type":"ContinuousState","qualifiedName":"core:MaximumTargetTemperatureState"},{"type":"DataState","qualifiedName":"core:NameState"},{"eventBased":true,"type":"DiscreteState","values":["noPersonInside","personInside"],"qualifiedName":"core:OccupancyState"},{"type":"DiscreteState","values":["off","on"],"qualifiedName":"core:OnOffState"},{"type":"DiscreteState","values":["antifreeze","auto","away","eco","frostprotection","manual","max","normal","off","on","prog","program","boost"],"qualifiedName":"core:OperatingModeState"},{"type":"ContinuousState","qualifiedName":"core:PreviousTargetTemperatureState"},{"type":"ContinuousState","qualifiedName":"core:PriorityLockTimerState"},{"type":"ContinuousState","qualifiedName":"core:RSSILevelState"},{"type":"DiscreteState","values":["increase","none","standby"],"qualifiedName":"core:RegulationModeState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"ContinuousState","qualifiedName":"core:TargetTemperatureState"},{"type":"DataState","qualifiedName":"core:TimeProgramState"},{"type":"ContinuousState","qualifiedName":"core:VersionState"},{"type":"DataState","qualifiedName":"io:AutoProgramState"},{"type":"DataState","qualifiedName":"io:BoostDurationMaxState"},{"type":"DataState","qualifiedName":"io:BoostDurationUserParameterState"},{"type":"DataState","qualifiedName":"io:ControllerAddressState"},{"type":"ContinuousState","qualifiedName":"io:CumulatedLoweringState"},{"type":"ContinuousState","qualifiedName":"io:CurrentWorkingRateState"},{"type":"DiscreteState","values":["deletion cancelation","no deletion cancelation"],"qualifiedName":"io:DeletionCancelationState"},{"type":"DataState","qualifiedName":"io:DryingDurationMaxState"},{"type":"ContinuousState","qualifiedName":"io:DryingDurationState"},{"type":"DataState","qualifiedName":"io:DryingDurationUserParameterState"},{"type":"ContinuousState","qualifiedName":"io:EffectiveTemperatureSetpointState"},{"type":"ContinuousState","qualifiedName":"io:ExpectedPresenceState"},{"type":"DiscreteState","values":["external","internal"],"qualifiedName":"io:InternalExternalSchedulingTypeState"},{"type":"ContinuousState","qualifiedName":"io:LocalLeadTimeState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"io:MaximumHeatingLevelState"},{"type":"DataState","qualifiedName":"io:ModelState"},{"type":"DiscreteState","values":["long peak","no peak","short peak"],"qualifiedName":"io:PeakNoticeState"},{"type":"DiscreteState","values":["long peak warning","no warning","short peak warning"],"qualifiedName":"io:PeakWarningState"},{"type":"DataState","qualifiedName":"io:PowerState"},{"type":"DiscreteState","values":["comfortLevel1","comfortLevel2","comfortLevel3","comfortLevel4","environmentProtection","humanProtection","userLevel1","userLevel2"],"qualifiedName":"io:PriorityLockLevelState"},{"type":"DiscreteState","values":["LSC","SAAC","SFC","UPS","externalGateway","localUser","myself","rain","security","temperature","timer","user","wind"],"qualifiedName":"io:PriorityLockOriginatorState"},{"type":"DataState","qualifiedName":"io:RoomDeletionThresholdState"},{"type":"DiscreteState","values":["kept","lost"],"qualifiedName":"io:RunningState"},{"type":"ContinuousState","qualifiedName":"io:SetpointLoweringTemperatureInProgModeState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"io:TargetHeatingLevelState"},{"type":"ContinuousState","qualifiedName":"io:TemperatureProbeCalibrationOffsetState"},{"type":"DataState","qualifiedName":"io:TensionState"},{"type":"ContinuousState","qualifiedName":"io:TimerForTransitoryStateState"},{"type":"DiscreteState","values":["boost","drying","permanentHeating"],"qualifiedName":"io:TowelDryerTemporaryStateState"},{"type":"ContinuousState","qualifiedName":"io:UptimeState"}],"dataProperties":[{"value":"500","qualifiedName":"core:identifyInterval"}],"widgetName":"AtlanticElectricalTowelDryer","uiProfiles":["HeatingLevel","StatefulThermostat","Thermostat","OccupancyDetector"],"uiClass":"HeatingSystem","uiClassifiers":["emitter"],"qualifiedName":"io:AtlanticElectricalTowelDryerIOComponent","type":"ACTUATOR"},"states":[{"name":"core:NameState","type":3,"value":"I2G_Actuator"},{"name":"core:VersionState","type":3,"value":"2d202020ffffff210002"},{"name":"core:PriorityLockTimerState","type":1,"value":0},{"name":"core:OnOffState","type":3,"value":"on"},{"name":"io:TargetHeatingLevelState","type":3,"value":"comfort"},{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:DiscreteRSSILevelState","type":3,"value":"low"},{"name":"core:RSSILevelState","type":2,"value":36.0},{"name":"core:IdentifierState","type":3,"value":"00000000"},{"name":"io:MaximumHeatingLevelState","type":3,"value":"unknown"},{"name":"io:TimerForTransitoryStateState","type":1,"value":0},{"name":"core:ComfortRoomTemperatureState","type":1,"value":17},{"name":"core:EcoRoomTemperatureState","type":2,"value":2.5},{"name":"io:SetpointLoweringTemperatureInProgModeState","type":2,"value":2.5},{"name":"core:DateTimeState","type":11,"value":{"month":12,"hour":11,"year":2022,"weekday":3,"day":1,"minute":48,"second":50}},{"name":"io:LocalLeadTimeState","type":1,"value":3268},{"name":"core:RegulationModeState","type":3,"value":"none"},{"name":"core:ManufacturerNameState","type":3,"value":"Thermor"},{"name":"io:ModelState","type":3,"value":"Symphonik Gauche"},{"name":"io:PowerState","type":1,"value":1750},{"name":"io:TensionState","type":1,"value":235},{"name":"core:DerogatedTargetTemperatureState","type":2,"value":0.0},{"name":"io:TemperatureProbeCalibrationOffsetState","type":2,"value":0.0},{"name":"io:CurrentWorkingRateState","type":2,"value":0.0},{"name":"io:CumulatedLoweringState","type":2,"value":18.0},{"name":"io:ControllerAddressState","type":1,"value":13610532},{"name":"core:OperatingModeState","type":3,"value":"external"},{"name":"io:EffectiveTemperatureSetpointState","type":2,"value":17.0},{"name":"core:TargetTemperatureState","type":2,"value":17.0},{"name":"core:BoostModeDurationState","type":1,"value":0},{"name":"io:BoostDurationUserParameterState","type":1,"value":30},{"name":"io:BoostDurationMaxState","type":1,"value":60},{"name":"io:DryingDurationState","type":1,"value":0},{"name":"io:DryingDurationUserParameterState","type":1,"value":60},{"name":"io:DryingDurationMaxState","type":1,"value":120},{"name":"io:TowelDryerTemporaryStateState","type":3,"value":"permanentHeating"},{"name":"core:OccupancyState","type":1,"value":0},{"name":"core:FilterFanCloggingErrorState","type":2,"value":12.0},{"name":"io:AutoProgramState","type":11,"value":{"sunday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_1","CONF_1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV2","CONF_1","CONF_NIV2","CONF_3_NIV2","CONF_2","CONF_2","CONF_NIV1","CONF_NIV3","CONF_3_NIV2","CONF_2","CONF_NIV1","CONF_NIV2","CONF_NIV3","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"saturday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_NIV3","CONF_2","CONF_1","CONF_3_NIV2","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_NIV3","CONF_NIV3","CONF_2","CONF_2","CONF_2","CONF_2","CONF_1","CONF_1","CONF_1","CONF_2","CONF_2","CONF_3_NIV1","CONF_2","CONF_NIV2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_NIV1","CONF_1","CONF_NIV1","CONF_1","CONF_2","CONF_3_NIV2","CONF_3_NIV1","CONF_2","CONF_3_NIV2","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"tuesday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_NIV2","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_1","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_NIV1","CONF_1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV3","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"wednesday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_NIV3","CONF_NIV2","CONF_NIV1","CONF_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_1","CONF_1","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_NIV2","CONF_NIV3","CONF_NIV2","CONF_NIV2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"thursday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV3","CONF_NIV2","CONF_NIV2","CONF_2","CONF_3_NIV1","CONF_1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_2","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_1","CONF_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_3_NIV2","CONF_2","CONF_1","CONF_1","CONF_3_NIV2","CONF_NIV2","CONF_1","CONF_1","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"friday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_NIV3","CONF_NIV3","CONF_NIV1","CONF_NIV2","CONF_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV2","CONF_3_NIV1","CONF_2","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"anticipTime":3268,"anticipNb":20,"monday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_NIV1","CONF_NIV3","CONF_1","CONF_NIV3","CONF_NIV2","CONF_1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_1","CONF_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_NIV2","CONF_NIV2","CONF_2","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_1","CONF_2","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"]}},{"name":"core:TimeProgramState","type":10,"value":[{"monday":[{"start":"04:45","end":"05:45"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"tuesday":[{"start":"04:45","end":"05:45"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"wednesday":[{"start":"04:45","end":"05:45"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"thursday":[{"start":"04:45","end":"05:45"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"friday":[{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"saturday":[{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"sunday":[{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]}]}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"AtlanticElectricalTowelDryer","type":1,"oid":"5af5e544-8105-481f-9cb5-669341e07ebd","uiClass":"HeatingSystem"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"IO (13610533#2)","deviceURL":"io://0810-4343-0200/13610533#2","shortcut":false,"controllableName":"io:OccupancyIOSystemDeviceSensor","definition":{"commands":[],"states":[{"eventBased":true,"type":"DiscreteState","values":["noPersonInside","personInside"],"qualifiedName":"core:OccupancyState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"OccupancySensor","uiProfiles":["OccupancyDetector"],"uiClass":"OccupancySensor","qualifiedName":"io:OccupancyIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:OccupancyState","type":3,"value":"noPersonInside"}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"OccupancySensor","type":2,"oid":"d429c9e6-3321-467c-9567-cf3af89a25bf","uiClass":"OccupancySensor"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"IO (13610533#3)","deviceURL":"io://0810-4343-0200/13610533#3","shortcut":false,"controllableName":"io:LightIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"ContinuousState","qualifiedName":"core:LuminanceState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"LuminanceSensor","uiProfiles":["Luminance"],"uiClass":"LightSensor","qualifiedName":"io:LightIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:LuminanceState","type":1,"value":4}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:MeasuredValueType","type":3,"value":"core:LuminanceInLux"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"LuminanceSensor","type":2,"oid":"75cb59ee-c894-4637-89e1-0b82ca5161a4","uiClass":"LightSensor"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"IO (13610533#4)","deviceURL":"io://0810-4343-0200/13610533#4","shortcut":false,"controllableName":"io:RelativeHumidityIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"ContinuousState","qualifiedName":"core:RelativeHumidityState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"RelativeHumiditySensor","uiProfiles":["RelativeHumidity"],"uiClass":"HumiditySensor","qualifiedName":"io:RelativeHumidityIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:RelativeHumidityState","type":2,"value":44.0}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"},{"name":"core:MeasuredValueType","type":3,"value":"core:RelativeValueInPercentage"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"RelativeHumiditySensor","type":2,"oid":"a960afd8-3773-4ef2-9587-4b18ce936196","uiClass":"HumiditySensor"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"IO (13610533#5)","deviceURL":"io://0810-4343-0200/13610533#5","shortcut":false,"controllableName":"io:TemperatureInCelciusIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"ContinuousState","qualifiedName":"core:TemperatureState"}],"dataProperties":[],"widgetName":"TemperatureSensor","uiProfiles":["Temperature"],"uiClass":"TemperatureSensor","qualifiedName":"io:TemperatureInCelciusIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:TemperatureState","type":2,"value":23.5}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:MeasuredValueType","type":3,"value":"core:TemperatureInCelcius"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"TemperatureSensor","type":2,"oid":"6dbb6b32-ae62-434f-af17-24a42e978d6e","uiClass":"TemperatureSensor"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"IO (13610533#6)","deviceURL":"io://0810-4343-0200/13610533#6","shortcut":false,"controllableName":"io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor","definition":{"commands":[],"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"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"CumulativeElectricPowerConsumptionSensor","uiProfiles":["ElectricEnergyConsumption"],"uiClass":"ElectricitySensor","qualifiedName":"io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:ElectricEnergyConsumptionState","type":1,"value":1011000}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"},{"name":"core:MeasuredValueType","type":3,"value":"core:ElectricalEnergyInWh"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"CumulativeElectricPowerConsumptionSensor","type":2,"oid":"d729a76c-3745-4c34-a42e-2cc95dda54af","uiClass":"ElectricitySensor"},{"creationTime":1600352184000,"lastUpdateTime":1600352184000,"label":"IO (13610533#7)","deviceURL":"io://0810-4343-0200/13610533#7","shortcut":false,"controllableName":"io:TemperatureInCelciusIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"ContinuousState","qualifiedName":"core:TemperatureState"}],"dataProperties":[],"widgetName":"TemperatureSensor","uiProfiles":["Temperature"],"uiClass":"TemperatureSensor","qualifiedName":"io:TemperatureInCelciusIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:TemperatureState","type":2,"value":20.5}],"attributes":[{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:MeasuredValueType","type":3,"value":"core:TemperatureInCelcius"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"TemperatureSensor","type":2,"oid":"933e5ae2-9cdf-4c84-bf44-8dd2c2780141","uiClass":"TemperatureSensor"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"I2G_Actuator","deviceURL":"io://0810-4343-0200/5668249#1","shortcut":false,"controllableName":"io:AtlanticElectricalTowelDryerIOComponent","definition":{"commands":[{"commandName":"advancedRefresh","nparams":1},{"commandName":"cancelHeatingLevel","nparams":1},{"commandName":"delayedStopIdentify","nparams":1},{"commandName":"getName","nparams":0},{"commandName":"identify","nparams":0},{"commandName":"off","nparams":0},{"commandName":"refreshComfortTemperature","nparams":0},{"commandName":"refreshDateTime","nparams":0},{"commandName":"refreshDerogatedTargetTemperature","nparams":0},{"commandName":"refreshEcoTemperature","nparams":0},{"commandName":"refreshHeatingLevel","nparams":0},{"commandName":"refreshManufacturerName","nparams":0},{"commandName":"refreshMaximumHeatingTargetTemperature","nparams":0},{"commandName":"refreshMaximumTargetTemperature","nparams":0},{"commandName":"refreshOperatingMode","nparams":0},{"commandName":"refreshTargetTemperature","nparams":0},{"commandName":"refreshTemperature","nparams":0},{"commandName":"setComfortTemperature","nparams":1},{"commandName":"setDateTime","nparams":1},{"commandName":"setDerogatedTargetTemperature","nparams":1},{"commandName":"setEcoTemperature","nparams":1},{"commandName":"setHeatingLevel","nparams":1},{"commandName":"setHeatingLevelWithTimer","nparams":2},{"commandName":"setName","nparams":1},{"commandName":"setPreviousTargetTemperature","nparams":1},{"commandName":"setSchedulingType","nparams":1},{"commandName":"setTargetTemperature","nparams":1},{"commandName":"startIdentify","nparams":0},{"commandName":"stopIdentify","nparams":0},{"commandName":"wink","nparams":1},{"commandName":"pairOneWayController","nparams":2},{"commandName":"refreshAutoProgram","nparams":0},{"commandName":"refreshBoostModeDuration","nparams":0},{"commandName":"refreshBoostModeParameters","nparams":0},{"commandName":"refreshControllerAddress","nparams":0},{"commandName":"refreshCumulatedLowering","nparams":0},{"commandName":"refreshCurrentWorkingRate","nparams":0},{"commandName":"refreshDeletionCancelation","nparams":0},{"commandName":"refreshDryingDuration","nparams":0},{"commandName":"refreshDryingParameters","nparams":0},{"commandName":"refreshEffectiveTemperatureSetpoint","nparams":0},{"commandName":"refreshLocalLeadTime","nparams":0},{"commandName":"refreshModel","nparams":0},{"commandName":"refreshOccupancy","nparams":0},{"commandName":"refreshPeakNotice","nparams":0},{"commandName":"refreshPeakWarning","nparams":0},{"commandName":"refreshPowerAndTension","nparams":0},{"commandName":"refreshRoomDeletionThreshold","nparams":0},{"commandName":"refreshSSVError6","nparams":0},{"commandName":"refreshSetpointLoweringTemperatureInProgMode","nparams":0},{"commandName":"refreshSynchronisationRequest","nparams":0},{"commandName":"refreshTemperatureProbeCalibrationOffset","nparams":0},{"commandName":"refreshTowelDryerTemporaryState","nparams":0},{"commandName":"refreshTowelDryerTimeProgram","nparams":0},{"commandName":"setCommunicationTest","nparams":1},{"commandName":"setDeletionCancelation","nparams":1},{"commandName":"setDryingDuration","nparams":1},{"commandName":"setExpectedPresence","nparams":1},{"commandName":"setPeakNotice","nparams":1},{"commandName":"setPeakWarning","nparams":1},{"commandName":"setRoomDeletionThreshold","nparams":1},{"commandName":"setSetpointLoweringTemperatureInProgMode","nparams":1},{"commandName":"setTemperatureProbeCalibrationOffset","nparams":1},{"commandName":"setTowelDryerBoostModeDuration","nparams":1},{"commandName":"setTowelDryerOperatingMode","nparams":1},{"commandName":"setTowelDryerTemporaryState","nparams":1},{"commandName":"setTowelDryerTimeProgram","nparams":1},{"commandName":"unpairAllOneWayControllers","nparams":0},{"commandName":"unpairOneWayController","nparams":2}],"states":[{"type":"ContinuousState","qualifiedName":"core:BoostModeDurationState"},{"type":"ContinuousState","qualifiedName":"core:ComfortRoomTemperatureState"},{"type":"DataState","qualifiedName":"core:DateTimeState"},{"type":"ContinuousState","qualifiedName":"core:DerogatedTargetTemperatureState"},{"type":"DiscreteState","values":["good","low","normal","verylow"],"qualifiedName":"core:DiscreteRSSILevelState"},{"type":"ContinuousState","qualifiedName":"core:EcoRoomTemperatureState"},{"type":"ContinuousState","qualifiedName":"core:FilterFanCloggingErrorState"},{"type":"DataState","qualifiedName":"core:IdentifierState"},{"type":"DataState","qualifiedName":"core:ManufacturerNameState"},{"type":"ContinuousState","qualifiedName":"core:MaximumHeatingTargetTemperatureState"},{"type":"ContinuousState","qualifiedName":"core:MaximumTargetTemperatureState"},{"type":"DataState","qualifiedName":"core:NameState"},{"eventBased":true,"type":"DiscreteState","values":["noPersonInside","personInside"],"qualifiedName":"core:OccupancyState"},{"type":"DiscreteState","values":["off","on"],"qualifiedName":"core:OnOffState"},{"type":"DiscreteState","values":["antifreeze","auto","away","eco","frostprotection","manual","max","normal","off","on","prog","program","boost"],"qualifiedName":"core:OperatingModeState"},{"type":"ContinuousState","qualifiedName":"core:PreviousTargetTemperatureState"},{"type":"ContinuousState","qualifiedName":"core:PriorityLockTimerState"},{"type":"ContinuousState","qualifiedName":"core:RSSILevelState"},{"type":"DiscreteState","values":["increase","none","standby"],"qualifiedName":"core:RegulationModeState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"ContinuousState","qualifiedName":"core:TargetTemperatureState"},{"type":"DataState","qualifiedName":"core:TimeProgramState"},{"type":"ContinuousState","qualifiedName":"core:VersionState"},{"type":"DataState","qualifiedName":"io:AutoProgramState"},{"type":"DataState","qualifiedName":"io:BoostDurationMaxState"},{"type":"DataState","qualifiedName":"io:BoostDurationUserParameterState"},{"type":"DataState","qualifiedName":"io:ControllerAddressState"},{"type":"ContinuousState","qualifiedName":"io:CumulatedLoweringState"},{"type":"ContinuousState","qualifiedName":"io:CurrentWorkingRateState"},{"type":"DiscreteState","values":["deletion cancelation","no deletion cancelation"],"qualifiedName":"io:DeletionCancelationState"},{"type":"DataState","qualifiedName":"io:DryingDurationMaxState"},{"type":"ContinuousState","qualifiedName":"io:DryingDurationState"},{"type":"DataState","qualifiedName":"io:DryingDurationUserParameterState"},{"type":"ContinuousState","qualifiedName":"io:EffectiveTemperatureSetpointState"},{"type":"ContinuousState","qualifiedName":"io:ExpectedPresenceState"},{"type":"DiscreteState","values":["external","internal"],"qualifiedName":"io:InternalExternalSchedulingTypeState"},{"type":"ContinuousState","qualifiedName":"io:LocalLeadTimeState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"io:MaximumHeatingLevelState"},{"type":"DataState","qualifiedName":"io:ModelState"},{"type":"DiscreteState","values":["long peak","no peak","short peak"],"qualifiedName":"io:PeakNoticeState"},{"type":"DiscreteState","values":["long peak warning","no warning","short peak warning"],"qualifiedName":"io:PeakWarningState"},{"type":"DataState","qualifiedName":"io:PowerState"},{"type":"DiscreteState","values":["comfortLevel1","comfortLevel2","comfortLevel3","comfortLevel4","environmentProtection","humanProtection","userLevel1","userLevel2"],"qualifiedName":"io:PriorityLockLevelState"},{"type":"DiscreteState","values":["LSC","SAAC","SFC","UPS","externalGateway","localUser","myself","rain","security","temperature","timer","user","wind"],"qualifiedName":"io:PriorityLockOriginatorState"},{"type":"DataState","qualifiedName":"io:RoomDeletionThresholdState"},{"type":"DiscreteState","values":["kept","lost"],"qualifiedName":"io:RunningState"},{"type":"ContinuousState","qualifiedName":"io:SetpointLoweringTemperatureInProgModeState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"io:TargetHeatingLevelState"},{"type":"ContinuousState","qualifiedName":"io:TemperatureProbeCalibrationOffsetState"},{"type":"DataState","qualifiedName":"io:TensionState"},{"type":"ContinuousState","qualifiedName":"io:TimerForTransitoryStateState"},{"type":"DiscreteState","values":["boost","drying","permanentHeating"],"qualifiedName":"io:TowelDryerTemporaryStateState"},{"type":"ContinuousState","qualifiedName":"io:UptimeState"}],"dataProperties":[{"value":"500","qualifiedName":"core:identifyInterval"}],"widgetName":"AtlanticElectricalTowelDryer","uiProfiles":["HeatingLevel","StatefulThermostat","Thermostat","OccupancyDetector"],"uiClass":"HeatingSystem","uiClassifiers":["emitter"],"qualifiedName":"io:AtlanticElectricalTowelDryerIOComponent","type":"ACTUATOR"},"states":[{"name":"core:NameState","type":3,"value":"I2G_Actuator"},{"name":"core:VersionState","type":3,"value":"2d202020ffffff210002"},{"name":"core:PriorityLockTimerState","type":1,"value":0},{"name":"core:OnOffState","type":3,"value":"on"},{"name":"io:TargetHeatingLevelState","type":3,"value":"eco"},{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:DiscreteRSSILevelState","type":3,"value":"normal"},{"name":"core:RSSILevelState","type":2,"value":76.0},{"name":"core:IdentifierState","type":3,"value":"00000000"},{"name":"io:MaximumHeatingLevelState","type":3,"value":"unknown"},{"name":"io:TimerForTransitoryStateState","type":1,"value":0},{"name":"core:ComfortRoomTemperatureState","type":1,"value":19},{"name":"core:EcoRoomTemperatureState","type":1,"value":5},{"name":"io:SetpointLoweringTemperatureInProgModeState","type":2,"value":5.0},{"name":"io:InternalExternalSchedulingTypeState","type":3,"value":"internal"},{"name":"core:DateTimeState","type":11,"value":{"month":12,"hour":11,"year":2022,"weekday":3,"day":1,"minute":48,"second":48}},{"name":"io:LocalLeadTimeState","type":1,"value":3154},{"name":"core:RegulationModeState","type":3,"value":"none"},{"name":"core:ManufacturerNameState","type":3,"value":"Thermor"},{"name":"io:ModelState","type":3,"value":"Symphonik Gauche"},{"name":"io:PowerState","type":1,"value":1750},{"name":"io:TensionState","type":1,"value":235},{"name":"core:DerogatedTargetTemperatureState","type":2,"value":0.0},{"name":"io:TemperatureProbeCalibrationOffsetState","type":2,"value":0.0},{"name":"io:CurrentWorkingRateState","type":2,"value":0.0},{"name":"io:CumulatedLoweringState","type":2,"value":19.0},{"name":"io:ControllerAddressState","type":1,"value":15984323},{"name":"core:OperatingModeState","type":3,"value":"external"},{"name":"io:EffectiveTemperatureSetpointState","type":2,"value":14.0},{"name":"core:TargetTemperatureState","type":2,"value":19.0},{"name":"core:BoostModeDurationState","type":1,"value":0},{"name":"io:BoostDurationUserParameterState","type":1,"value":60},{"name":"io:BoostDurationMaxState","type":1,"value":60},{"name":"io:DryingDurationState","type":1,"value":0},{"name":"io:DryingDurationUserParameterState","type":1,"value":90},{"name":"io:DryingDurationMaxState","type":1,"value":120},{"name":"io:TowelDryerTemporaryStateState","type":3,"value":"permanentHeating"},{"name":"core:OccupancyState","type":1,"value":1},{"name":"core:FilterFanCloggingErrorState","type":2,"value":0.0},{"name":"io:AutoProgramState","type":11,"value":{"sunday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_3_NIV2","CONF_2","CONF_2","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_1","CONF_1","CONF_1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_2","CONF_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV3","CONF_NIV3","CONF_1","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_NIV2","CONF_NIV2","CONF_NIV2","CONF_NIV2","CONF_NIV1","CONF_NIV3","CONF_NIV1","CONF_NIV1","CONF_NIV2","CONF_2","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"saturday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_NIV2","CONF_NIV2","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_1","CONF_3_NIV2","CONF_3_NIV1","CONF_NIV1","CONF_2","CONF_NIV1","CONF_2","CONF_2","CONF_2","CONF_2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_1","CONF_1","CONF_NIV2","CONF_1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_2","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV2","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"tuesday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV2","CONF_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV3","CONF_NIV3","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"wednesday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_1","CONF_1","CONF_2","CONF_2","CONF_2","CONF_1","CONF_1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV3","CONF_NIV3","CONF_1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_NIV2","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_NIV1","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_1","CONF_2","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"thursday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_1","CONF_2","CONF_3_NIV1","CONF_1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV3","CONF_NIV2","CONF_2","CONF_NIV2","CONF_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"friday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_NIV3","CONF_NIV3","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_2","CONF_2","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_2","CONF_2","CONF_2","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV2","CONF_3_NIV1","CONF_2","CONF_2","CONF_2","CONF_1","CONF_3_NIV1","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"],"anticipTime":3154,"anticipNb":20,"monday":["CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_NIV3","CONF_NIV3","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_1","CONF_3_NIV2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_NIV2","CONF_3_NIV1","CONF_NIV2","CONF_NIV2","CONF_NIV2","CONF_NIV2","CONF_2","CONF_3_NIV2","CONF_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_NIV2","CONF_1","CONF_3_NIV1","CONF_3_NIV1","CONF_2","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1","CONF_3_NIV1"]}},{"name":"core:TimeProgramState","type":10,"value":[{"monday":[{"start":"18:15","end":"19:30"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"tuesday":[{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"wednesday":[{"start":"18:15","end":"19:30"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"thursday":[{"start":"18:15","end":"19:30"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"friday":[{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"saturday":[{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]},{"sunday":[{"start":"18:00","end":"19:30"},{"start":"00:00","end":"00:00"},{"start":"00:00","end":"00:00"}]}]}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"}],"available":true,"enabled":true,"placeOID":"bc5dd522-effc-4856-8b7b-bf65fca747db","widget":"AtlanticElectricalTowelDryer","type":1,"oid":"57fe776a-b86d-45fb-b8cf-deb5849872b3","uiClass":"HeatingSystem"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"IO (5668249#2)","deviceURL":"io://0810-4343-0200/5668249#2","shortcut":false,"controllableName":"io:OccupancyIOSystemDeviceSensor","definition":{"commands":[],"states":[{"eventBased":true,"type":"DiscreteState","values":["noPersonInside","personInside"],"qualifiedName":"core:OccupancyState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"OccupancySensor","uiProfiles":["OccupancyDetector"],"uiClass":"OccupancySensor","qualifiedName":"io:OccupancyIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:OccupancyState","type":3,"value":"noPersonInside"}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"OccupancySensor","type":2,"oid":"9f6881c1-9777-4df5-800b-fed5aaea58ee","uiClass":"OccupancySensor"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"IO (5668249#3)","deviceURL":"io://0810-4343-0200/5668249#3","shortcut":false,"controllableName":"io:LightIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"ContinuousState","qualifiedName":"core:LuminanceState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"LuminanceSensor","uiProfiles":["Luminance"],"uiClass":"LightSensor","qualifiedName":"io:LightIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:LuminanceState","type":1,"value":21}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:MeasuredValueType","type":3,"value":"core:LuminanceInLux"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"LuminanceSensor","type":2,"oid":"7aad9c61-246f-47cd-a1dd-982588825255","uiClass":"LightSensor"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"IO (5668249#4)","deviceURL":"io://0810-4343-0200/5668249#4","shortcut":false,"controllableName":"io:RelativeHumidityIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"ContinuousState","qualifiedName":"core:RelativeHumidityState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"RelativeHumiditySensor","uiProfiles":["RelativeHumidity"],"uiClass":"HumiditySensor","qualifiedName":"io:RelativeHumidityIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:RelativeHumidityState","type":2,"value":49.0}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"},{"name":"core:MeasuredValueType","type":3,"value":"core:RelativeValueInPercentage"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"RelativeHumiditySensor","type":2,"oid":"bdf56691-9160-430a-9583-f8d6ea56aac7","uiClass":"HumiditySensor"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"IO (5668249#5)","deviceURL":"io://0810-4343-0200/5668249#5","shortcut":false,"controllableName":"io:TemperatureInCelciusIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"ContinuousState","qualifiedName":"core:TemperatureState"}],"dataProperties":[],"widgetName":"TemperatureSensor","uiProfiles":["Temperature"],"uiClass":"TemperatureSensor","qualifiedName":"io:TemperatureInCelciusIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:TemperatureState","type":2,"value":23.8}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:MeasuredValueType","type":3,"value":"core:TemperatureInCelcius"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"TemperatureSensor","type":2,"oid":"a77c1f63-f2e2-4a20-a700-95fd1e5d0cb0","uiClass":"TemperatureSensor"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"IO (5668249#6)","deviceURL":"io://0810-4343-0200/5668249#6","shortcut":false,"controllableName":"io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor","definition":{"commands":[],"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"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"}],"dataProperties":[],"widgetName":"CumulativeElectricPowerConsumptionSensor","uiProfiles":["ElectricEnergyConsumption"],"uiClass":"ElectricitySensor","qualifiedName":"io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:ElectricEnergyConsumptionState","type":1,"value":1748000}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"},{"name":"core:MeasuredValueType","type":3,"value":"core:ElectricalEnergyInWh"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"CumulativeElectricPowerConsumptionSensor","type":2,"oid":"6301f2eb-a74a-4249-9979-a3d0716281a8","uiClass":"ElectricitySensor"},{"creationTime":1528368069000,"lastUpdateTime":1528368069000,"label":"IO (5668249#7)","deviceURL":"io://0810-4343-0200/5668249#7","shortcut":false,"controllableName":"io:TemperatureInCelciusIOSystemDeviceSensor","definition":{"commands":[],"states":[{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"ContinuousState","qualifiedName":"core:TemperatureState"}],"dataProperties":[],"widgetName":"TemperatureSensor","uiProfiles":["Temperature"],"uiClass":"TemperatureSensor","qualifiedName":"io:TemperatureInCelciusIOSystemDeviceSensor","type":"SENSOR"},"states":[{"name":"core:StatusState","type":3,"value":"available"},{"name":"core:TemperatureState","type":2,"value":20.5}],"attributes":[{"name":"core:Manufacturer","type":3,"value":"Atlantic Group"},{"name":"core:FirmwareRevision","type":3,"value":"2d202020ffffff210002"},{"name":"core:MeasuredValueType","type":3,"value":"core:TemperatureInCelcius"},{"name":"core:PowerSourceType","type":3,"value":"mainSupply"}],"available":true,"enabled":true,"placeOID":"8085ec50-bcbe-4d92-96e7-5c4820432958","widget":"TemperatureSensor","type":2,"oid":"b9eef2ff-c6b1-4449-a818-b9aee2ea7bf9","uiClass":"TemperatureSensor"}],"zones":[],"resellerDelegationType":"NEVER","oid":"c10490e6-ea10-489c-a9a3-c7b5c4442cf2","rootPlace":{"creationTime":1528367801000,"lastUpdateTime":1528367801000,"label":"All House","type":0,"oid":"8085ec50-bcbe-4d92-96e7-5c4820432958","subPlaces":[{"creationTime":1602427131000,"lastUpdateTime":1633779688000,"label":"Chambres","type":8,"oid":"eec674a3-938a-42cb-8b66-56b75b6fc2f4","subPlaces":[]},{"creationTime":1528368074000,"lastUpdateTime":1668265290000,"label":"Salle de bain","type":30,"oid":"bc5dd522-effc-4856-8b7b-bf65fca747db","subPlaces":[]}]},"features":[]}
-
Tout fonctionne chez moi Réception et émission. je pense que oui il est possible de récupérer un max d'info et de modifier la consigne. C'est juste à adapter
-
AEON TEC RGBW BULB et commandes en LUA sur HC3
Bloug a répondu à un(e) sujet de GINOUX DEFERMON dans Aeon Labs / Aeotec
+1 chez moi, le gars de l'alarme voulait mettre le mode Chenillard led sur la sirene exterieur, j'ai eu la meme reflexion que toi @jojo et s'il me voit partir sans voir la chenille .... Bingo -
@Lazer @mprinfo j'ai encore besoin de vos lumières !! j'arrive bien à me connecter au serveur par plusieurs requêtes puis à m'authentifier. Là il me reste la dernière commande pour réclamer les infos avec une commande GET. Je pensais devoir récupérer les cookies de ma commande d'authentification pour les insérer dans le "Header" de ma commande GET mais toujours erreur 401 Dans le PowerShell, le script fait appel à une fichier qui gère les cookie : .pymultimatic-cookie $response=curl.exe -s ` Â -b .pymultimatic-cookie ` Â -X GET ` Â -H "Content-Type:application/json" -H "Accept:application/json" -H "Vaillant-Mobile-App:multiMATIC v2.1.45 b389 (Android)" ` Â "$url" et voici à l'intérieur : # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. #HttpOnly_smart.vaillant.com FALSE / TRUE 0 JSESSIONID 5612998F20F9D0C39FED52118AB2D5EA #HttpOnly_smart.vaillant.com FALSE / TRUE 0 TS01b0e19c 01e5b3f1f8d7a56f8bad6ef47928066a459a10b295602afb72c8267a525ff07502d3fbe6b53b0bad412d11cedd287b24240167f6e3 Je retrouve donc mes cookies, non plus sous la forme de : Set-Cookie : JSESSIONID=327389B0A15C0AE209C717EA97D3196B et Set-Cookie : JSESSIONID=327389B0A15C0AE209C717EA97D3196B Est il possible de me confirmer que je dois les insérer dans le header ou dois-je ajouter autres choses ? #HttpOnly_smart.vaillant.com FALSE / TRUE 0 JSESSIONID 5612998F20F9D0C39FED52118AB2D5EA voici ma commande GET : function QuickApp:get() self.http:request("https://smart.vaillant.com/mobile/api/v4/facilities/2***M*y**S*E*R*I*A*L*****N4/storage/default", { options={ method = "GET", headers = { [ 'content-type' ] = 'application/json;charset=UTF-8', [ 'Accept' ] = 'application/json', [ 'Vaillant-Mobile-App' ] = 'multiMATIC v2.1.45 b389 (Android)', [ 'JSESSIONID' ] = '5612998F20F9D0C39FED52118AB2D5EA', [ 'TS01b0e19c' ] = '01e5b3f1f8d7a56f8bad6ef47928066a459a10b295602afb72c8267a525ff07502d3fbe6b53b0bad412d11cedd287b24240167f6e3' }, }, success = function(response) if response.status == 200 then self:debug('Connection Ok') local jsonResponse = json.decode(response.data) self:debug(response.data) else self:debug('Error : ' .. response.status .. response.data) end end, error = function(error) self:debug('error: ' .. error) end }) end MErci
-
Regarde car pour 100€ t'as celle de @mprinfo t'as l'alim + une box de secours....
-
@jang , ..... à te lire tout semble si simple ! c'est fou ! A merveille ! Thank you very much!
-
non, c'est juste l'un des deux cookie qui doit estre utilisé pour les Commande GET, du coup je cherche a récupérer les deux pour pouvoir choisir, l'ideal c'est arriver à deux variable genre : SetCookie1 : JSESSIONID=723BE79E2C3D6EB5DD2072CAE855A73C SetCooke2 : TS01b0e19c=01e5b3f1f84aa60001cd253c6f621db2b9d7722f8d2ab2c51a7723da6c8d46b152c406e57daf3b78bcb3c71f629062e1c84432b5f8 C'est la suite de mon pb en Curl. Maintenant, j'arrive à me connecter au serveur , puis récupérer un Token , puis obtenir encore une commande pour obtenir les cookies et enfin pouvoir envoyer des commande GET
-
Nouveau jour nouveau problème Voila je dois récupérer DEUX cookies d'un "Header" dans un requête, puis les formater tout propre pour le réutiliser . Set-Cookie: JSESSIONID=9D82DCD0E9B174603D86D66EC72CD97C; Path=/; Secure; HttpOnly bla bla bla Set-Cookie: TS01b0e19c=01e5b3f1f8f254231b1513561c7de7bd4bafff7a4cf2bcd15c384fbc6865b4932b49bb446db4efaab65dcf155eaa8f084d36699ae9; Path=/; Secure; HTTPOnly habituellement quand il n'y en a qu'UN j'utilise le code suivant : success = function(response) if response.status == 200 then self:debug('Connection avec le Token : Ok') SetCookie = response.headers['Set-Cookie'] -- Je récupère le Set-Cookies for i = 1, #SetCookie do if SetCookie:byte(i) == string.byte(";") then SetCookie = SetCookie:sub(0,i - 1) break end end et j'arrive a obtenir un joli : JSESSIONID=9128D05E3516F08A9764CDF0A6AE50AB sauf que la j'ai pas 1 Cookie mais 2 a récupérer ! et je n'ai quun seul cookie de retourné ! ( celui ci dessus ) ma variable SetCookie me donne : JSESSIONID=723BE79E2C3D6EB5DD2072CAE855A73C; Path=/; Secure; HttpOnly, TS01b0e19c=01e5b3f1f84aa60001cd253c6f621db2b9d7722f8d2ab2c51a7723da6c8d46b152c406e57daf3b78bcb3c71f629062e1c84432b5f8; Path=/; Secure; HTTPOnly JSESSIONID=723BE79E2C3D6EB5DD2072CAE855A73C; Path=/; Secure; HttpOnly, TS01b0e19c=01e5b3f1f84aa60001cd253c6f621db2b9d7722f8d2ab2c51a7723da6c8d46b152c406e57daf3b78bcb3c71f629062e1c84432b5f8; Path=/; Secure; HTTPOnly Pourquoi le deuxième n'est pas listé ? MErci et Bon Dimanche !! ohhh ohhh ohhh
-
Quick App – Cozytouch Je partage ici un QA pour vous connecter à votre Bridge Cozytouch. La partie la plus importante du QA réside dans la connexion au bridge et celle-ci a été réalisée par Ivx du forum Fibaro.com. donc aucune prétention ! juste pour partager Présentation : Ici le QA est utilisé pour récupérer les informations d'un sèche serviette Thermor Symphonik. celui ci possède de multiples capteurs d'où l'avantage de pouvoir les intégrer dans la box. Le Symphonik possède deux modes intéressants pour du scénario : La mise en chauffe pour les serviettes et le mode Boost pour le soufflage. j'ai donc ajouté qq boutons. Autre Gros avantage le QA a été réalisé par un mec qui code mal (moi) donc super facile pour nous les débutants de s'y retrouver, créer des Child .... Bidouiller.....Trifouiller......Modifier.....Supprimer Bref ! Libre à vous d'adapter en fonction de votre matériel et vos besoins, Ivx lui récupère uniquement la variable de la consommation de sa chaudière, moi je n''ai pas besoin de basculer d'un mode confort à eco où même de modifier la température de chauffe de la pièce. Installation du QuickApp : Importer le QuickApp (fichier fqa) de façon habituelle sur la box Home Center 3, puis changer les paramètres suivants dans l'onglet Variables comme dans l'image ci dessous : Pour la mise a jour des Child c'est à la "mano" ! vous allez à la ligne 393 et vos indiquez vos ID ! Comme indiqué plus haut, je ne suis pas un as du codage et les explications de Lazer à l'époque de mes Childs pour l'Airzone résonnent encore dans ma tète : Fichier : Cozytouch.fqa Icones : ----------- Un Grand merci à IvX, un gars qui a partagé son travail avec moi pour se connecter au bridge, Il a mâché le boulot ! Ensuite merci à @jang pour son aide et sa patience ! @mprinfo à qui je volé plein de morceaux de code à droite et a gauche pour faire mon puzzle et évidemment à @Lazer qui répond TOUJOURS ( bon pas forcement de manière claire... mais efficace ) à mes questions ! Le code dans le QA n'est pas forcement au Top comme vos QA de PRO ( un mot à la mode ) mais j'ai détaillé ! Enjoy
-
function QuickApp:onInit() self.http = net.HTTPClient({ timeout = 2000 }) self:multimatic() end merci
-
[19:12:00] [ERROR] [QUICKAPP622]: main.lua:19: attempt to index a nil value (field 'http') je me calque sur d'autres QA , je pige pas toujours un truc qui cloche -- Generic device type have no default actions to handle function QuickApp:onInit() self:multimatic() end function QuickApp:multimatic() self.http:request("https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/authenticate", { options={ method = "POST", data = '{"smartphoneId":"pymultiMATIC","username":"**@**","password":"**"}', headers = { [ 'Content-Type' ] = 'application/json', [ 'Accept' ] = 'application/json', } }, success = function(response) if response.status == 200 then self:debug('ok') local jsonResponse = json.decode(response.data) else self:debug('error: https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/token/new' .. response.status .. response.data) end end, error = function(error) self:debug('error: ' .. error) end }) end ---
-
donc la lecture est du bas vers le haut ? une idée pourquoi j'ai un pb de nill value ? plutot qu'un pb 401 .... ?
-
merci @Lazer pour l'exemple ! Je cherche à réaliser un petit QA pour me récupérer les informations de ma chaudière. Actuelement j'ai un Plugin sous HA. pour réaliser qqq essais , le concepteur ma communiqué un fichier PowerShell pour vérifier des retour d'informations ( indépendamment du plugin ) avec le powershell j'exécute la commande suivante : C:\Users\myPC\nom_du_fichier_powershell.ps1 <my_vaillant_login> <My_vaillant_password> https://smart.vaillant.com/mobile/api/v4/facilities/<My_vaillant_serial>/systemcontrol/v1/dhw/Control_DHW/hotwater/ config/timeprogram j'aspire donc de faire la meme chose avec la hc3. @mprinfo , voici le code curl complet : $user=$args[0] $password=$args[1] $url=$args[2] $payload=@" { \"smartphoneId\": \"pymultiMATIC\", \"username\": \"$user\", \"password\": \"$password\" } "@ $token_response = curl.exe -s ` -c .pymultimatic-cookie ` -X POST ` -H "Content-Type:application/json" -H "Accept:application/json" ` -d $payload ` "https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/token/new" | ConvertFrom-Json $token=$token_response.body.authToken $payload=@" { \"smartphoneId\": \"pymultiMATIC\", \"username\": \"$user\", \"authToken\": \"$token\" } "@ curl.exe -s ` Â -b .pymultimatic-cookie ` Â -c .pymultimatic-cookie ` Â -X POST ` Â -H "Content-Type:application/json" -H "Accept:application/json" ` Â -d "$payload" ` Â "https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/authenticate" $response=curl.exe -s ` Â -b .pymultimatic-cookie ` Â -X GET ` Â -H "Content-Type:application/json" -H "Accept:application/json" ` Â "$url" Write-Host "$response" Il me semble qu'il réalise deux requêtes genre : la première : je récupère un token ; 2eme : je me connecte avec le serveur. voici ma première multimatic() function QuickApp:multimatic() self.http:request( "https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/token/new", { options = { method = "POST", data = '{"smartphoneId":"pymultiMATIC","username":"' .. self:getVariable("UserName") .. '","password":"' .. self:getVariable("Password") .. '"}', headers = { ["Content-Type"] = "application/json", ["Accept"] = "application/json" } }, success = function(response) if response.status == 200 then -- self:marequette2() print(response.data) print("OKKKKKKKKKKKKKKKKK") else self:debug( "error: https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/token/new" .. response.status .. response.data ) print("BAD") end end, error = function(error) self:debug("error: " .. error) end } ) end avant de modifier pour récupérer le token , faut déjà qu'il se connecte [ERROR] [QUICKAPP621]: main.lua:5: attempt to call a nil value (global 'multimatic')
-
Bonjour, je cherche a convertir cette requête CURL en Lua ( il me semble 2 faut encore récupérer un token....). $user=$args[0] $password=$args[1] $url=$args[2] $payload=@" { \"smartphoneId\": \"pymultiMATIC\", \"username\": \"$user\", \"password\": \"$password\" } "@ $token_response = curl.exe -s ` -c .pymultimatic-cookie ` -X POST ` -H "Content-Type:application/json" -H "Accept:application/json" ` -d $payload ` "https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/token/new" | ConvertFrom-Json $token=$token_response.body.authToken $payload=@" { \"smartphoneId\": \"pymultiMATIC\", \"username\": \"$user\", \"authToken\": \"$token\" } "@ je suppose que le data habituel en lua est ici : {$payload=@" { \"smartphoneId\": \"pymultiMATIC\", \"username\": \"$user\", \"password\": \"$password\" } "@} possible de m'indiquer la "mutation" en lua svp ?? trop de \"\"\ function QuickApp:multimatic() self.http:request("https://smart.vaillant.com/mobile/api/v4/account/authentication/v1/token/new", { options={ method = "POST", data = 'smartphoneId:pymultiMATIC/username:' .. self:getVariable("UserName") 'password:'.. self:getVariable("Password"), headers = { ['Content-Type'] = 'application/json', ['Accept'] = 'Accept:application/json', } }, success = function(response) if response.status == 200 then MErci pour votre aide !
-
Great !!! After verification with the Thermor Cozytouch application, the KEY=7 for TemperatureState is the one used in apps for the temperature. Your two solutions work and are similar in fact because I have to fill with#1 #2 etc... Solution 1 : with shortname1 ; shortname2 ; shortname3 etc... ---------------------------------------------------------------- -- Modification du nom de l'appareil pour deviceceURL #1 à #6 -- ---------------------------------------------------------------- local shortnameo = self:getVariable("Appareil") local shortname = shortnameo:sub(1, -1) local modifname = string.gsub(shortname, "-", "%%-") local shortname1= modifname .. '#1' local shortname2= modifname .. '#2' local shortname3= modifname .. '#3' local shortname4= modifname .. '#4' local shortname5= modifname .. '#5' local shortname6= modifname .. '#6' local shortname6= modifname .. '#7' local shortname6= modifname .. '#8' local shortname6= modifname .. '#9' ---------------------------------------------------------------------- -- Fonction de @Jang pour retouver les Valeurs en fonction des Noms -- ---------------------------------------------------------------------- local function find(key,val,list) for _,e in ipairs(list) do if tostring(e[key]):match(val) then return e end end end ssConsi = (find('name','core:ComfortRoomTemperatureState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssModeF = (find('name','core:OperatingModeState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssBoreT = (find('name','core:BoostModeDurationState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssDrreT = (find('name','io:DryingDurationState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssSeMov = (find('name','core:OccupancyState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssFonct = (find('name','io:TowelDryerTemporaryStateState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssRSSIL = (find('name','core:DiscreteRSSILevelState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssRSSIP = (find('name','core:RSSILevelState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssSeLum = (find('name','core:LuminanceState',find('deviceURL',shortname3,jsonResponse.devices).states).value) ssSeHum = (find('name','core:RelativeHumidityState',find('deviceURL',shortname4,jsonResponse.devices).states).value) ssSeTem = (find('name','core:TemperatureState',find('deviceURL',shortname7,jsonResponse.devices).states).value) ssSeCon = (find('name','core:ElectricEnergyConsumptionState',find('deviceURL',shortname6,jsonResponse.devices).states).value) /1000 Solution 2 : with Key#1 ; Key#2 ; Key#3 etc... local function find(uid,expr) local res,device = {} local function find_aux(expr) if type(expr) == 'table' then if expr[1] then -- array for _,e in ipairs(expr) do find_aux(e) end else -- key/value if expr.deviceURL then device = expr.deviceURL:match(uid) if device then device = device.."#" end end if device and expr.name and (expr.name:sub(1,3)=='io:' or expr.name:sub(1,5)=='core:') and expr.value then local key = device..expr.name if res[key] and res[key]~=expr.value then error("Duplicate key:"..key) end res[key]=expr.value else for k,v in pairs(expr) do find_aux(v) end end end end end uid = uid:gsub("%-","%%-").."#(%d+)$" find_aux(expr) return res end local uid = shortname keys = find(uid,jsonResponse.devices) for k,v in pairs(keys) do --print(k,"=",json.encode(v):sub(1,80)) end ssConsi = keys['1#core:ComfortRoomTemperatureState'] ssModeF = keys['1#core:OperatingModeState'] ssBoreT = keys['1#core:BoostModeDurationState'] ssDrreT = keys['1#io:DryingDurationState'] ssSeMov = keys['1#core:OccupancyState'] ssFonct = keys['1#io:TowelDryerTemporaryStateState'] ssRSSIL = keys['1#core:DiscreteRSSILevelState'] ssRSSIP = keys['1#core:RSSILevelState'] ssSeLum = keys['3#core:LuminanceState'] ssSeHum = keys['4#core:RelativeHumidityState'] ssSeTem = keys['7#core:TemperatureState'] ssSeCon = keys['6#core:ElectricEnergyConsumptionState'] /1000 Both of your solutions work perfectly! The huge advantage of using the second is that it is easier to list the elements of each device if the cozytouch bridge receives an update ! Thank you very much @jang for your answers and your codes relevance !
-
Thank You ! ; I'm really starting to have trouble understanding your code your returns are correct but they do not make the difference between the two devices, right? io://0810-4343-0200/13610533#1 and io://0810-4343-0200/5668249#1 ( sorry maybe i'm wrong ? ) I want to use only one QA per device, by simply entering: My login / pass and a "Device" variable local jsonResponse = json.decode(response.data) -- print(response.data) ---------------------------------------------------------------- -- Modification du nom de l'appareil pour deviceceURL #1 à #6 -- ---------------------------------------------------------------- local shortnameo = self:getVariable("Appareil") local shortname = shortnameo:sub(1, -1) local modifname = string.gsub(shortname, "-", "%%-") local shortname1= modifname .. '#1' local shortname2= modifname .. '#2' local shortname3= modifname .. '#3' local shortname4= modifname .. '#4' local shortname5= modifname .. '#5' local shortname6= modifname .. '#6' ---------------------------------------------------------------------- -- Fonction de @Jang pour retouver les Valeurs en fonction des Noms -- ---------------------------------------------------------------------- local function find(key,val,list) for _,e in ipairs(list) do if tostring(e[key]):match(val) then return e end end end ssConsi = (find('name','core:ComfortRoomTemperatureState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssModeF = (find('name','core:OperatingModeState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssBoreT = (find('name','core:BoostModeDurationState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssDrreT = (find('name','io:DryingDurationState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssSeMov = (find('name','core:OccupancyState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssFonct = (find('name','io:TowelDryerTemporaryStateState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssRSSIL = (find('name','core:DiscreteRSSILevelState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssRSSIP = (find('name','core:RSSILevelState',find('deviceURL',shortname1,jsonResponse.devices).states).value) ssSeLum = (find('name','core:LuminanceState',find('deviceURL',shortname3,jsonResponse.devices).states).value) ssSeHum = (find('name','core:RelativeHumidityState',find('deviceURL',shortname4,jsonResponse.devices).states).value) ssSeTem = (find('name','core:TemperatureState',find('deviceURL',shortname5,jsonResponse.devices).states).value) ssSeCon = (find('name','core:ElectricEnergyConsumptionState',find('deviceURL',shortname6,jsonResponse.devices).states).value) /1000 what a pity for your initial approach ! is it a JSON problem ? : for _,e in ipairs(list) do if tostring(e[key]):match(val) then return e end end end ssConsi = (find('name','core:ComfortRoomTemperatureState',find('deviceURL','io://0810%-4343%-0200/13610533..',jsonResponse.devices).states).value) -- #1 OK ssMode = (find('name','core:OperatingModeState',find('deviceURL','io://0810%-4343%-0200/13610533..',jsonResponse.devices).states).value) -- #1 OK ssBoreT = (find('name','core:BoostModeDurationState',find('deviceURL','io://0810%-4343%-0200/13610533..',jsonResponse.devices).states).value) -- #1 OK ssSeLum = (find('name','core:LuminanceState',find('deviceURL','io://0810%-4343%-0200/13610533..',jsonResponse.devices).states).value) -- #3 Fail ssSeHum = (find('name','core:RelativeHumidityState',find('deviceURL','io://0810%-4343%-0200/13610533..',jsonResponse.devices).states).value) -- #4 Fail ssSeCon = (find('name','core:ElectricEnergyConsumptionState',find('deviceURL','io://0810%-4343%-0200/13610533..',jsonResponse.devices).states).value) -- #6 Fail
-
... il doit y avoir autre chose qui cloche Pour me diriger vers l'un ou l'autre des sèches serviettes j'ai utilisé le deviceURL , celui ci conserve le numéro pour les capteur mais ajoute (▀▀▀▀▀ ) avec des #1 ; #2 #3... J'ai fais un autre test , pour éviter le problème de recherche avec des caractères magique ... j'ai testé d'utiliser creationTime(▀▀▀▀▀ ) qui lui ne change pas ! et j'ai quand même une erreur sur les clefs : {4} - {5} - {6} - {7} ssSeLum = (find('name','core:LuminanceState',find('deviceURL',"io://0810%-4343%-0200/13610533.3",jsonResponse.devices).states).value) -- #3 => OK ssSeLum = (find('name','core:LuminanceState',find('deviceURL',"io://0810%-4343%-0200/13610533..",jsonResponse.devices).states).value) -- #3 => Fail