Tado Platform v5 Beta

Hello everybody,
I'm working on the v5 of the Tado plugin and I'm looking for beta testers to test the v5.
For those who are interested, the plugin can be downloaded with following command:
npm i -g —save SeydX/homebridge-tado-platform#beta

Attention: Before the installation you have to delete the existing plugin, remove it from config.json and also remove it from HomeKit!!
After you have the beta version installed, you can enter the following in your config.json:
"platforms": [
   {
     "platform": "TadoPlatform",
     "username": "Max",
     "password": "jumbo134"
  }
 ]

After you have now started the plugin, your config.json will automatically expand to additional parameters to make more settings! The plugin detects ALL thermostats and also adds them to HomeKit. In the config.json these can then be changed as desired.
If you have questions I am always available. If you find any bugs you can write it here. If you have wishes for new features you can also write this here.
Otherwise, I wish all participants a lot of fun with the beta version

v5 online

Not seeing v5 when doing npm @latest
Still 4.5.4

You should be able now to update

Installed v5.0.0 today. Some feedback...
Working:

Heating control works as expected (raising/lowering temperature and Off/Heat/Cool/Auto)
Central switch turns off all Tado devices (device state not always accurate after central switch use)
Battery indicators work  on Tado devices

Issues:

All devices are in Fahrenheit and ignore change to Celsius in Home app
"onePerRoom" config set to true but 2 radiator valves in one room show as separate devices
Hot Water switch has no response
Hot Water Window accessory shown if "openWindow" is set to true
Example config.json needs update to cover other options

Hope this helps.
Jason.

Same hot water no response
Sent from Ross Hendrie's iPad Pro 12.9

On 6 Apr 2019, at 17:34, jasehigh<EMAIL_ADDRESS>wrote:
Installed v5.0.0 today. Some feedback...
Working:
Heating control works as expected (raising/lowering temperature and Off/Heat/Cool/Auto)
Central switch turns off all Tado devices (device state not always accurate after central switch use)
Battery indicators work on Tado devices
Issues:
All devices are in Fahrenheit and ignore change to Celsius in Home app
"onePerRoom" config set to true but 2 radiator valves in one room show as separate devices
Hot Water switch has no response
Hot Water Window accessory shown if "openWindow" is set to true
Example config.json needs update to cover other options
Hope this helps.
Jason.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Thx guys, i will take a look

I just updated to v5 but am not seeing the additional settings to enter into config.json. Where can those be found?

I see a automatic mode but it doesn’t work. It always takes the temperature and not the scheduled temperature. Sometimes after short inputs of sensors, it takes an other temperature. All rules are the same as in 4.6.4.

@jasehigh

Point 1: Can you post your config pls? The plugin checks first if unit = fahrenheit, orherwise it will set unit automatically to celsius

Point 2: onePerRoom was removed in v5, now there is a ‚exclude‘ parameter, to remove a specific thermostat, you need to add the serial numer (eg VA01234567890) into this list, see extended-config.json

Point 3: Can you post your log pls

Point 4: Will be fixed

Point 5: see extended-config.json

@nielsth
After runnen v5, the config.json will be refreshed automatically, just open config.json after running plugin
@flausen
There was significant changes to 4.6.4, there is no ‚delay‘ option anymore, only extended delay, the automatic mode removes the current overlay and put the thermostat back in tado mode, not manual mode. The temperature that is shown in automatic mode is only a read only value, it dont do anything, just displays the last value detected when the thermostat was in auto mode
@rossco57
Can you post your log pls

V5.0.1 online

@flausen
should be fixed with v5.0.2

Still hot water no response
My hot water is on or off no thermostat
So mabe a config thing any ideas
Sent from Ross Hendrie's iPhoneX

On 11 Apr 2019, at 03:06, Seyd<EMAIL_ADDRESS>wrote:
@flausen
should be fixed with v5.0.2
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Where will the logs be ?

@jasehigh

Point 1: Can you post your config pls? The plugin checks first if unit = fahrenheit, orherwise it will set unit automatically to celsius
Point 2: onePerRoom was removed in v5, now there is a "exclude" and "active" parameter, to remove a specific thermostat, you have two options. The easiest one is to set active to false under the specific you want remove, the other one is, you can also add the serial number (eg VA01234567890) into the exclude array, see extended-config.json
Point 3: Can you post your log pls
Point 4: FIXED
Point 5: see extended-config.json

My original config.json just contained username/password details, and little else. I didn't realise the config is updated with details on the Tado devices detected.
I've updated to 5.0.2... everything now working as expected except for the Hot Water switch...

Point 1: Updated "unit": "celsius" in config, all now working as expected.
Point 2: Set "active": false for one of the 2 radiators in a room, all now working as expected
Point 3: Still no response from hot water switch, the log states "An error occurred while getting new state"
Point 4: Confirmed fix - No Hot Water Window accessory shown
Point 5: Thanks for the extended config.json, very useful

The following is my config.json (for reference)...
{
  "bridge": {
    "name": "Tado",
    "username": "XX:XX:XX:XX:XX:XX",
    "port": XXXXX,
    "pin": "XXX-XX-XXX"
  },
  "platforms": [
    {
      "platform": "TadoPlatform",
      "name": "Tado",
      "username": "USERNAME",
      "password": "PASSWORD",
      "polling": 10,
      "centralSwitch": true,
      "occupancy": false,
      "weather": false,
      "radiatorThermostat": true,
      "boilerThermostat": false,
      "remoteThermostat": false,
      "externalSensor": false,
      "openWindow": true,
      "solarIntensity": false,
      "homeID": XXXXX,
      "unit": "celsius",
      "exclude": [],
      "anyone": false,
      "deviceOptions": {
        "RU1412FT01051521221632": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Hot Water"
        },
        "VA3372813056": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Lounge"
        },
        "VA3423210240": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Lounge"
        },
        "VA0788859136": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Dining Room"
        },
        "VA4116252416": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Bedroom"
        },
        "VA2757297920": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Study"
        },
        "VA1493371136": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Media Room"
        },
        "VA1510148352": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Spare Room"
        },
        "BU1411FT01052777612288": {
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "roomName": "Hot Water"
        }
      }
    }
  ]
}

@jasehigh
i need to debug HOTWATER more, its a little bit difficult because i dont have boiler for HOTWATER, will push a new update later for debug more

@jasehigh
i need to debug HOTWATER more, its a little bit difficult because i dont have boiler for HOTWATER, will push a new update later for debug more

Happy to provide any feedback required...

@nielsth
After runnen v5, the config.json will be refreshed automatically, just open config.json after running plugin

Thanks! After correcting the credentials (I recently changed my Tado username and didn't update the config for that yet) the config was updated on the next restart. Can't fully test it yet, as I broke my Homebridge install due to some other issues, unrelated to this. But my bug appears to be solved, so thatnks for that! I'll check out the new v5 features including the anyone occupation sensor as soon as I've got homebridge up and running again.

Is it possible on the home screen of HomeKit to say “target temp”  instead of “auto”? Or at minimum “Target”

@adavison007
No thats not possible with homebridge sry

Thanks, I checked my old screen shot when I had native Tado HomeKit set up and it says “Heating To” which makes more sense than Auto, is that not possible?

@jasehigh
5.0.3 is online, can u try with 5.0.3 and post the log pls

Awesome, you are good! I will try when I get back home tonight and let you know.

Just went to update and it showing I'm already running 5.03.... so no change.. also I'm not sure how to get the logs?

Update to my previous post after getting HomeBridge up and running again: the update went well and the settings were added to my config. Now everything is running smoothly!
The presence detection of tado is much more reliable than HomeKit's, so using the anyone occupation sensor is a really useful for automations (instead of using first person to arrive / last person to leave as triggers for Home/Away scenes). Plus it's useful to quickly notice when tado is no longer detecting my girlfriend's phone arriving/leaving home, as her iPhone sometimes removes the tado app after she hasn't used it in a while.
So all in all a lovely update, thanks again.

@jasehigh
Pushed v5.0.4 for HOTWATER debugging, can you update and restart homebridge and post the log pls

v5.0.7 online with Hot Water fix

@jasehigh
Pushed v5.0.4 for HOTWATER debugging, can you update and restart homebridge and post the log pls

I've updated to v5.0.7 and the Hot Water device appears, but is temperature controlled (instead of an on/off switch). Any attempt to set the hot water by moving the temperature slider is ignored.
Setting the Hot water to "Heat" or "Auto" activates the switch for a few seconds but then the switch goes back to off (hot water is never switched on).
The config for the hot water device contains:
          "active": true,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "zoneName": "Hot Water",
          "zoneType": "HOT_WATER",
          "ID": 0,
          "deviceType": "BU01"

Do I need to change a setting to make this an on/ff switch?

@jasehigh
5.0.9 is online and can you start homebridge in debug mode with following line

DEBUG=TadoPlatform,TadoPlatformApi to your homebridge

after update, pls remove "id":"config" in your config.json and restart homebridge

@jasehigh @rossco57
v5.1.1 is online with major improvements, Please follow the instructions below before updating the plugin

add "reConfig":true into config.json (see example-config.json)
Update to v5.1.1 and restart homebridge (these will remove your thermostats from HomeKit and rewrite your config.json)
After restart, open config.json and change "reConfig":true to "reConfig":false
Activate the thermostats you want in HomeKit in your config.json under "deviceOptions" (see example-config.json)
Restart Homebridge

I’ve taken the following steps:

Remove the Tado accessory from the Home app
Updated to latest version (v5.1.3)
Added "reConfig":true to config.json
Deleted accessories and persist folders
Restarted homebridge

My config.json file was as follows:
{
	"bridge": {
		"name": "Tado",
		"username": "CC:22:3D:E3:CE:38",
		"port": 51836,
		"pin": "031-45-163"
	},
	"platforms": [{
		"platform": "TadoPlatform",
		"name": "TadoBridge",
		"username": “xxx”,
		"password": “xxx”,
		"polling": 10,
		"centralSwitch": true,
		"occupancy": false,
		"weather": false,
		"radiatorThermostat": true,
		"boilerThermostat": false,
		"remoteThermostat": false,
		"externalSensor": false,
		"openWindow": true,
		"solarIntensity": false,
		"homeID": 29063,
		"unit": "celsius",
		"reConfig": true
	}]
}

However, upon launch only the window devices were added along with the central switch:
[INIT] Init first launch
[INIT] Config.json refreshed
[INFO] Adding new accessory: Lounge Window
[INFO] Adding new accessory: Bedroom Window
[INFO] Adding new accessory: Study Window
[INFO] Adding new accessory: Media Room Window
[INFO] Adding new accessory: Spare Room Window
[INFO] Adding new accessory: Central Switch

The modified config.json shows all of the other devices have been detected but have also been added as “exclude”:
{
  "bridge": {
    "name": "Tado",
    "username": "CC:22:3D:E3:CE:38",
    "port": 51836,
    "pin": "031-45-163"
  },
  "platforms": [
    {
      "platform": "TadoPlatform",
      "name": "TadoBridge",
      "username": “xxx”,
      "password": “xxx”,
      "polling": 10,
      "centralSwitch": true,
      "occupancy": false,
      "weather": false,
      "radiatorThermostat": true,
      "boilerThermostat": false,
      "remoteThermostat": false,
      "externalSensor": false,
      "openWindow": true,
      "solarIntensity": false,
      "homeID": 29063,
      "unit": "celsius",
      "reConfig": true,
      "exclude": [
        "RU1412FT01051521221632-1",
        "VA3372813056-7",
        "VA3423210240-7",
        "VA0788859136-6",
        "VA4116252416-2",
        "VA2757297920-3",
        "VA1493371136-5",
        "VA1510148352-4",
        "BU1411FT01052777612288-0"
      ],
      "anyone": false,
      "deviceOptions": {
        "RU1412FT01051521221632-1": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 1,
          "zoneName": "Heating",
          "zoneType": "HEATING",
          "deviceType": "RU",
          "serial": "RU1412FT01051521221632",
          "type": "thermostat"
        },
        "VA3372813056-7": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 7,
          "zoneName": "Lounge",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA3372813056",
          "type": "thermostat"
        },
        "VA3423210240-7": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 7,
          "zoneName": "Lounge",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA3423210240",
          "type": "thermostat"
        },
        "VA0788859136-6": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 6,
          "zoneName": "Dining Room",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA0788859136",
          "type": "thermostat"
        },
        "VA4116252416-2": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 2,
          "zoneName": "Bedroom",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA4116252416",
          "type": "thermostat"
        },
        "VA2757297920-3": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 3,
          "zoneName": "Study",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA2757297920",
          "type": "thermostat"
        },
        "VA1493371136-5": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 5,
          "zoneName": "Media Room",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA1493371136",
          "type": "thermostat"
        },
        "VA1510148352-4": {
          "active": false,
          "heatValue": 5,
          "coolValue": 5,
          "maxDelay": 10,
          "overrideMode": "manual",
          "ID": 4,
          "zoneName": "Spare Room",
          "zoneType": "HEATING",
          "deviceType": "VA",
          "serial": "VA1510148352",
          "type": "thermostat"
        },
        "BU1411FT01052777612288-0": {
          "active": false,
          "overrideMode": "manual",
          "ID": 0,
          "zoneName": "Hot Water",
          "zoneType": "HOT_WATER",
          "deviceType": "BU",
          "serial": "BU1411FT01052777612288",
          "type": "boiler"
        }
      }
    }
  ],
  "id": "config"
}

I remove the “exclude” option and restarted homebridge. Only the window devices were added along with the central switch.
I then removed "id": "config" and restarted homebridge. Again, Only the window devices were added along with the central switch.
Running homebridge in debug mode
sudo DEBUG=TadoPlatform,TadoPlatformApi homebridge -D -U /home/pi/.tado
Provides the following output:
[4/24/2019, 9:50:34 PM] Loaded config.json with 0 accessories and 1 platforms.
[4/24/2019, 9:50:34 PM] ---
[4/24/2019, 9:50:48 PM] Loaded plugin: homebridge-harmony
[4/24/2019, 9:50:48 PM] Registering platform 'homebridge-harmonyHub.HarmonyHubWebSocket'
[4/24/2019, 9:50:48 PM] ---
[4/24/2019, 9:50:48 PM] Loaded plugin: homebridge-tado-platform
[4/24/2019, 9:50:57 PM] Registering platform 'homebridge-tado-platform.TadoPlatform'
[4/24/2019, 9:50:57 PM] ---
[4/24/2019, 9:50:57 PM] Loading 1 platforms...
[4/24/2019, 9:50:57 PM] [TadoBridge] Initializing TadoPlatform platform...
[4/24/2019, 9:50:57 PM] [TadoBridge] [INFO] **************************************************************
[4/24/2019, 9:50:57 PM] [TadoBridge] [INFO] TadoPlatform v5.1.3 by SeydX
[4/24/2019, 9:50:57 PM] [TadoBridge] [INFO] GitHub: https://github.com/SeydX/homebridge-tado-platform
[4/24/2019, 9:50:57 PM] [TadoBridge] [INFO] Email<EMAIL_ADDRESS>[4/24/2019, 9:50:57 PM] [TadoBridge] [INFO] **************************************************************
[4/24/2019, 9:50:57 PM] [TadoBridge] [INFO] start success...
Load homebridge-harmonyHub.HarmonyHubWebSocket
[4/24/2019, 9:50:57 PM] [homebridge-harmonyHub.HarmonyHubWebSocket] HarmonyPlatform Init
[4/24/2019, 9:50:57 PM] [homebridge-harmonyHub.HarmonyHubWebSocket] No configuration found for homebridge-harmonyHub
Setup Payload:
X-HM://0023ISYX76D5L
Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:
  TadoPlatformApi [Tado Debug]: New Login attempt... (xxx:xxx) +0ms
[4/24/2019, 9:51:02 PM] Homebridge is running on port 51836.
  TadoPlatformApi [Tado Debug]: Login successfull! +3s
  TadoPlatformApi [Tado Debug]: api request 1: get /api/v2/homes/29063/zones +80ms
  TadoPlatformApi [Tado Debug]: api request 1: Ok +2s
  TadoPlatformApi [Tado Debug]: api request 2: get /api/v2/homes/29063/zones/0/capabilities +31ms
  TadoPlatformApi [Tado Debug]: api request 2: Ok +1s
  TadoPlatformApi [Tado Debug]: api request 3: get /api/v2/homes/29063/zones/0/capabilities +15ms
  TadoPlatformApi [Tado Debug]: api request 3: Ok +4s
  TadoPlatformApi [Tado Debug]: api request 4: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +500ms
  TadoPlatform Platform: Writing new parameter into config.json... +0ms
  TadoPlatformApi [Tado Debug]: api request 4: Ok +1s
  TadoPlatform Platform: Config.json loaded! +688ms
  TadoPlatformApi [Tado Debug]: api request 5: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +252ms
  TadoPlatform Platform: Config.json refreshed! +429ms
  TadoPlatform {
  TadoPlatform     "platform": "TadoPlatform",
  TadoPlatform     "name": "TadoBridge",
  TadoPlatform     "username": “xxx”,
  TadoPlatform     "password": “xxx”,
  TadoPlatform     "polling": 10,
  TadoPlatform     "centralSwitch": true,
  TadoPlatform     "occupancy": false,
  TadoPlatform     "weather": false,
  TadoPlatform     "radiatorThermostat": true,
  TadoPlatform     "boilerThermostat": false,
  TadoPlatform     "remoteThermostat": false,
  TadoPlatform     "externalSensor": false,
  TadoPlatform     "openWindow": true,
  TadoPlatform     "solarIntensity": false,
  TadoPlatform     "homeID": 29063,
  TadoPlatform     "unit": "celsius",
  TadoPlatform     "reConfig": false,
  TadoPlatform     "anyone": false,
  TadoPlatform     "deviceOptions": {
  TadoPlatform         "RU1412FT01051521221632-1": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 1,
  TadoPlatform             "zoneName": "Heating",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "RU",
  TadoPlatform             "serial": "RU1412FT01051521221632",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA3372813056-7": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 7,
  TadoPlatform             "zoneName": "Lounge",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA3372813056",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA3423210240-7": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 7,
  TadoPlatform             "zoneName": "Lounge",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA3423210240",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA0788859136-6": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 6,
  TadoPlatform             "zoneName": "Dining Room",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA0788859136",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA4116252416-2": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 2,
  TadoPlatform             "zoneName": "Bedroom",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA4116252416",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA2757297920-3": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 3,
  TadoPlatform             "zoneName": "Study",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA2757297920",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA1493371136-5": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 5,
  TadoPlatform             "zoneName": "Media Room",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA1493371136",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA1510148352-4": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 4,
  TadoPlatform             "zoneName": "Spare Room",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA1510148352",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "BU1411FT01052777612288-0": {
  TadoPlatform             "active": false,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 0,
  TadoPlatform             "zoneName": "Hot Water",
  TadoPlatform             "zoneType": "HOT_WATER",
  TadoPlatform             "deviceType": "BU",
  TadoPlatform             "serial": "BU1411FT01052777612288",
  TadoPlatform             "type": "boiler"
  TadoPlatform         }
  TadoPlatform     },
  TadoPlatform     "exclude": [
  TadoPlatform         "RU1412FT01051521221632-1",
  TadoPlatform         "VA3372813056-7",
  TadoPlatform         "VA3423210240-7",
  TadoPlatform         "VA0788859136-6",
  TadoPlatform         "VA4116252416-2",
  TadoPlatform         "VA2757297920-3",
  TadoPlatform         "VA1493371136-5",
  TadoPlatform         "VA1510148352-4",
  TadoPlatform         "BU1411FT01052777612288-0"
  TadoPlatform     ]
  TadoPlatform } +6ms
  TadoPlatformApi [Tado Debug]: api request 5: Ok +662ms
  TadoPlatformApi [Tado Debug]: api request 6: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +116ms
  TadoPlatformApi [Tado Debug]: api request 6: Ok +194ms
  TadoPlatformApi [Tado Debug]: api request 7: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +116ms
[4/24/2019, 9:51:15 PM] [TadoBridge] [INFO] Configuring accessory Lounge Window
[4/24/2019, 9:51:31 PM] [TadoBridge] [INFO] Configuring accessory Bedroom Window
[4/24/2019, 9:51:31 PM] [TadoBridge] [INFO] Configuring accessory Study Window
[4/24/2019, 9:51:31 PM] [TadoBridge] [INFO] Configuring accessory Media Room Window
[4/24/2019, 9:51:31 PM] [TadoBridge] [INFO] Configuring accessory Spare Room Window
[4/24/2019, 9:51:31 PM] [TadoBridge] [INFO] Configuring accessory Central Switch
  TadoPlatformApi [Tado Debug]: api request 7: Ok +18s
  TadoPlatformApi [Tado Debug]: api request 8: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +116ms
  TadoPlatformApi [Tado Debug]: api request 8: Ok +236ms
  TadoPlatformApi [Tado Debug]: api request 9: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +114ms
  TadoPlatformApi [Tado Debug]: api request 9: Ok +216ms
  TadoPlatformApi [Tado Debug]: api request 10: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +114ms
  TadoPlatformApi [Tado Debug]: api request 10: Ok +181ms
  TadoPlatformApi [Tado Debug]: api request 11: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms
  TadoPlatformApi [Tado Debug]: api request 11: Ok +152ms
  TadoPlatformApi [Tado Debug]: api request 12: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 12: Ok +258ms
  TadoPlatformApi [Tado Debug]: api request 13: get /api/v2/homes/29063/zones/0/capabilities +6ms
  TadoPlatformApi [Tado Debug]: api request 13: Ok +173ms
  TadoPlatformApi [Tado Debug]: api request 14: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 14: Ok +182ms
  TadoPlatformApi [Tado Debug]: api request 15: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +115ms
  TadoPlatformApi [Tado Debug]: api request 15: Ok +190ms
  TadoPlatformApi [Tado Debug]: api request 16: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +105ms
  TadoPlatformApi [Tado Debug]: api request 16: Ok +181ms
  TadoPlatformApi [Tado Debug]: api request 17: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +113ms
  TadoPlatformApi [Tado Debug]: api request 17: Ok +176ms
  TadoPlatformApi [Tado Debug]: api request 18: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +115ms
  TadoPlatformApi [Tado Debug]: api request 18: Ok +185ms
  TadoPlatformApi [Tado Debug]: api request 19: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +114ms
  TadoPlatformApi [Tado Debug]: api request 19: Ok +215ms
  TadoPlatformApi [Tado Debug]: api request 20: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +115ms
  TadoPlatformApi [Tado Debug]: api request 20: Ok +183ms
  TadoPlatformApi [Tado Debug]: api request 21: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +115ms
  TadoPlatformApi [Tado Debug]: api request 21: Ok +180ms
  TadoPlatformApi [Tado Debug]: api request 22: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms

My devices are always added to the "exclude" option, regardless of how often I remove this option from the config.json (setting  "reConfig": true)
As a result of this, I've been unable to test the Hot Water switch.
Hope this helps.

Don't remove devices from exclude...... in each device that is listed change active from false to true and this will update the exclude on save and restart, make sure you change the reconfigurations to false at the same time

Got it... obvious now you point out the "active" option. All devices now visible....
The Hot Water device now appears as a single on/off switch. Switching this on sets the "running" state for a few seconds, then the switch turns off (hot water on Tado is not turned on).
DEBUG log below:
[4/24/2019, 11:03:16 PM] Loaded config.json with 0 accessories and 1 platforms.
[4/24/2019, 11:03:16 PM] ---
[4/24/2019, 11:03:33 PM] Loaded plugin: homebridge-harmony
[4/24/2019, 11:03:33 PM] Registering platform 'homebridge-harmonyHub.HarmonyHubWebSocket'
[4/24/2019, 11:03:33 PM] ---
[4/24/2019, 11:03:33 PM] Loaded plugin: homebridge-tado-platform
[4/24/2019, 11:03:40 PM] Registering platform 'homebridge-tado-platform.TadoPlatform'
[4/24/2019, 11:03:40 PM] ---
[4/24/2019, 11:03:40 PM] Loading 1 platforms...
[4/24/2019, 11:03:40 PM] [TadoBridge] Initializing TadoPlatform platform...
[4/24/2019, 11:03:41 PM] [TadoBridge] [INFO] **************************************************************
[4/24/2019, 11:03:41 PM] [TadoBridge] [INFO] TadoPlatform v5.1.3 by SeydX
[4/24/2019, 11:03:41 PM] [TadoBridge] [INFO] GitHub: https://github.com/SeydX/homebridge-tado-platform
[4/24/2019, 11:03:41 PM] [TadoBridge] [INFO] Email<EMAIL_ADDRESS>[4/24/2019, 11:03:41 PM] [TadoBridge] [INFO] **************************************************************
[4/24/2019, 11:03:41 PM] [TadoBridge] [INFO] start success...
Load homebridge-harmonyHub.HarmonyHubWebSocket
[4/24/2019, 11:03:41 PM] [homebridge-harmonyHub.HarmonyHubWebSocket] HarmonyPlatform Init
[4/24/2019, 11:03:41 PM] [homebridge-harmonyHub.HarmonyHubWebSocket] No configuration found for homebridge-harmonyHub
Setup Payload:
X-HM://0023ISYX7K1A0
Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:
  TadoPlatformApi [Tado Debug]: New Login attempt... (xxx:xxx) +0ms
[4/24/2019, 11:03:46 PM] Homebridge is running on port 51836.
  TadoPlatformApi [Tado Debug]: Login successfull! +3s
  TadoPlatformApi [Tado Debug]: api request 1: get /api/v2/homes/29063/zones +47ms
  TadoPlatformApi [Tado Debug]: api request 1: Ok +959ms
  TadoPlatformApi [Tado Debug]: api request 2: get /api/v2/homes/29063/zones/0/capabilities +11ms
  TadoPlatformApi [Tado Debug]: api request 2: Ok +229ms
  TadoPlatformApi [Tado Debug]: api request 3: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 3: Ok +143ms
  TadoPlatformApi [Tado Debug]: api request 4: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +113ms
  TadoPlatformApi [Tado Debug]: api request 4: Ok +155ms
  TadoPlatformApi [Tado Debug]: api request 5: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +106ms
  TadoPlatformApi [Tado Debug]: api request 5: Ok +236ms
  TadoPlatformApi [Tado Debug]: api request 6: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +116ms
  TadoPlatform Platform: Writing new parameter into config.json... +0ms
  TadoPlatform Platform: Config.json loaded! +137ms
  TadoPlatformApi [Tado Debug]: api request 6: Ok +265ms
  TadoPlatform Platform: Config.json refreshed! +94ms
  TadoPlatform {
  TadoPlatform     "platform": "TadoPlatform",
  TadoPlatform     "name": "TadoBridge",
  TadoPlatform     "username": "xxx",
  TadoPlatform     "password": "xxx",
  TadoPlatform     "polling": 10,
  TadoPlatform     "centralSwitch": true,
  TadoPlatform     "occupancy": false,
  TadoPlatform     "weather": false,
  TadoPlatform     "radiatorThermostat": true,
  TadoPlatform     "boilerThermostat": false,
  TadoPlatform     "remoteThermostat": false,
  TadoPlatform     "externalSensor": false,
  TadoPlatform     "openWindow": true,
  TadoPlatform     "solarIntensity": false,
  TadoPlatform     "homeID": 29063,
  TadoPlatform     "unit": "celsius",
  TadoPlatform     "reConfig": false,
  TadoPlatform     "anyone": false,
  TadoPlatform     "deviceOptions": {
  TadoPlatform         "RU1412FT01051521221632-1": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 1,
  TadoPlatform             "zoneName": "Heating",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "RU",
  TadoPlatform             "serial": "RU1412FT01051521221632",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA3372813056-7": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 7,
  TadoPlatform             "zoneName": "Lounge",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA3372813056",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA3423210240-7": {
  TadoPlatform             "active": false,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 7,
  TadoPlatform             "zoneName": "Lounge",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA3423210240",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA0788859136-6": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 6,
  TadoPlatform             "zoneName": "Dining Room",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA0788859136",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA4116252416-2": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 2,
  TadoPlatform             "zoneName": "Bedroom",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA4116252416",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA2757297920-3": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 3,
  TadoPlatform             "zoneName": "Study",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA2757297920",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA1493371136-5": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 5,
  TadoPlatform             "zoneName": "Media Room",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA1493371136",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "VA1510148352-4": {
  TadoPlatform             "active": true,
  TadoPlatform             "heatValue": 5,
  TadoPlatform             "coolValue": 5,
  TadoPlatform             "maxDelay": 10,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 4,
  TadoPlatform             "zoneName": "Spare Room",
  TadoPlatform             "zoneType": "HEATING",
  TadoPlatform             "deviceType": "VA",
  TadoPlatform             "serial": "VA1510148352",
  TadoPlatform             "type": "thermostat"
  TadoPlatform         },
  TadoPlatform         "BU1411FT01052777612288-0": {
  TadoPlatform             "active": true,
  TadoPlatform             "overrideMode": "manual",
  TadoPlatform             "ID": 0,
  TadoPlatform             "zoneName": "Hot Water",
  TadoPlatform             "zoneType": "HOT_WATER",
  TadoPlatform             "deviceType": "BU",
  TadoPlatform             "serial": "BU1411FT01052777612288",
  TadoPlatform             "type": "boiler"
  TadoPlatform         }
  TadoPlatform     },
  TadoPlatform     "exclude": [
  TadoPlatform         "VA3423210240-7"
  TadoPlatform     ]
  TadoPlatform } +14ms
[4/24/2019, 11:03:50 PM] [TadoBridge] [INFO] Adding new accessory: Heating RU1412FT01051521221632
[4/24/2019, 11:04:08 PM] [TadoBridge] [INFO] Adding new accessory: Lounge VA3372813056
[4/24/2019, 11:04:09 PM] [TadoBridge] [INFO] Adding new accessory: Lounge Window
[4/24/2019, 11:04:09 PM] [TadoBridge] [INFO] Adding new accessory: Dining Room VA0788859136
[4/24/2019, 11:04:09 PM] [TadoBridge] [INFO] Adding new accessory: Bedroom VA4116252416
[4/24/2019, 11:04:10 PM] [TadoBridge] [INFO] Adding new accessory: Bedroom Window
[4/24/2019, 11:04:10 PM] [TadoBridge] [INFO] Adding new accessory: Study VA2757297920
[4/24/2019, 11:04:10 PM] [TadoBridge] [INFO] Adding new accessory: Study Window
[4/24/2019, 11:04:11 PM] [TadoBridge] [INFO] Adding new accessory: Media Room VA1493371136
[4/24/2019, 11:04:12 PM] [TadoBridge] [INFO] Adding new accessory: Media Room Window
[4/24/2019, 11:04:13 PM] [TadoBridge] [INFO] Adding new accessory: Spare Room VA1510148352
[4/24/2019, 11:04:14 PM] [TadoBridge] [INFO] Adding new accessory: Spare Room Window
[4/24/2019, 11:04:14 PM] [TadoBridge] [INFO] Adding new accessory: Hot Water BU1411FT01052777612288
[4/24/2019, 11:04:15 PM] [TadoBridge] [INFO] Adding new accessory: Central Switch
  TadoPlatformApi [Tado Debug]: api request 7: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +25s
  TadoPlatformApi [Tado Debug]: api request 7: Ok +1s
  TadoPlatformApi [Tado Debug]: api request 8: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +161ms
  TadoPlatformApi [Tado Debug]: api request 8: Ok +13s
  TadoPlatformApi [Tado Debug]: api request 9: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +547ms
  TadoPlatformApi [Tado Debug]: api request 9: Ok +12s
  TadoPlatformApi [Tado Debug]: api request 10: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +114ms
  TadoPlatformApi [Tado Debug]: api request 10: Ok +782ms
  TadoPlatformApi [Tado Debug]: api request 11: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +384ms
  TadoPlatformApi [Tado Debug]: api request 11: Ok +507ms
  TadoPlatform Heating RU1412FT01051521221632: New entry: 19.8 for temperature and 52.3 for humidity +55s
  TadoPlatform Heating RU1412FT01051521221632: New entry: 19.8 for temperature and 52 for humidity +118ms
  TadoPlatform Lounge VA3372813056: New entry: 18.18 for temperature and 54 for humidity +32ms
  TadoPlatform Lounge VA3372813056: New entry: 18.18 for temperature and 54 for humidity +19ms
  TadoPlatform Dining Room VA0788859136: New entry: 19.04 for temperature and 51.9 for humidity +21ms
  TadoPlatform Dining Room VA0788859136: New entry: 19.04 for temperature and 51 for humidity +17ms
  TadoPlatform Bedroom VA4116252416: New entry: 19.99 for temperature and 60.8 for humidity +23ms
  TadoPlatform Bedroom VA4116252416: New entry: 19.99 for temperature and 60 for humidity +8ms
  TadoPlatform Study VA2757297920: New entry: 21.23 for temperature and 52.4 for humidity +21ms
  TadoPlatform Study VA2757297920: New entry: 21.23 for temperature and 52 for humidity +18ms
  TadoPlatform Media Room VA1493371136: New entry: 21.18 for temperature and 54.2 for humidity +10ms
  TadoPlatform Media Room VA1493371136: New entry: 21.18 for temperature and 54 for humidity +15ms
  TadoPlatform Spare Room VA1510148352: New entry: 20.67 for temperature and 56.1 for humidity +9ms
  TadoPlatform Spare Room VA1510148352: New entry: 20.67 for temperature and 56 for humidity +8ms
  TadoPlatformApi [Tado Debug]: api request 12: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 12: Ok +449ms
  TadoPlatformApi [Tado Debug]: api request 13: get /api/v2/homes/29063/zones/0/capabilities +27ms
  TadoPlatformApi [Tado Debug]: api request 13: Ok +250ms
  TadoPlatformApi [Tado Debug]: api request 14: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 14: Ok +193ms
  TadoPlatformApi [Tado Debug]: api request 15: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +112ms
  TadoPlatformApi [Tado Debug]: api request 15: Ok +206ms
  TadoPlatformApi [Tado Debug]: api request 16: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +123ms
  TadoPlatformApi [Tado Debug]: api request 16: Ok +195ms
  TadoPlatformApi [Tado Debug]: api request 17: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +115ms
  TadoPlatformApi [Tado Debug]: api request 17: Ok +193ms
  TadoPlatformApi [Tado Debug]: api request 18: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +122ms
  TadoPlatformApi [Tado Debug]: api request 18: Ok +185ms
  TadoPlatformApi [Tado Debug]: api request 19: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +161ms
  TadoPlatformApi [Tado Debug]: api request 19: Ok +207ms
  TadoPlatformApi [Tado Debug]: api request 20: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +104ms
  TadoPlatformApi [Tado Debug]: api request 20: Ok +187ms
  TadoPlatformApi [Tado Debug]: api request 21: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +105ms
  TadoPlatformApi [Tado Debug]: api request 21: Ok +170ms
  TadoPlatformApi [Tado Debug]: api request 22: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +116ms
  TadoPlatformApi [Tado Debug]: api request 22: Ok +196ms
  TadoPlatformApi [Tado Debug]: api request 23: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 23: Ok +240ms
  TadoPlatformApi [Tado Debug]: api request 24: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 24: Ok +163ms
  TadoPlatformApi [Tado Debug]: api request 25: get /api/v2/homes/29063/zones/0/capabilities +3ms
  TadoPlatformApi [Tado Debug]: api request 25: Ok +141ms
  TadoPlatformApi [Tado Debug]: api request 26: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +104ms
  TadoPlatformApi [Tado Debug]: api request 26: Ok +158ms
  TadoPlatformApi [Tado Debug]: api request 27: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +103ms
  TadoPlatformApi [Tado Debug]: api request 27: Ok +178ms
  TadoPlatformApi [Tado Debug]: api request 28: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +116ms
  TadoPlatformApi [Tado Debug]: api request 28: Ok +204ms
  TadoPlatformApi [Tado Debug]: api request 29: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +116ms
  TadoPlatformApi [Tado Debug]: api request 29: Ok +175ms
  TadoPlatformApi [Tado Debug]: api request 30: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +109ms
  TadoPlatformApi [Tado Debug]: api request 30: Ok +210ms
  TadoPlatformApi [Tado Debug]: api request 31: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +127ms
  TadoPlatformApi [Tado Debug]: api request 31: Ok +198ms
  TadoPlatformApi [Tado Debug]: api request 32: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +105ms
  TadoPlatformApi [Tado Debug]: api request 32: Ok +152ms
  TadoPlatformApi [Tado Debug]: api request 33: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +105ms
  TadoPlatformApi [Tado Debug]: api request 33: Ok +151ms
  TadoPlatformApi [Tado Debug]: api request 34: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 34: Ok +236ms
  TadoPlatformApi [Tado Debug]: api request 35: get /api/v2/homes/29063/zones/0/capabilities +7ms
  TadoPlatformApi [Tado Debug]: api request 35: Ok +178ms
  TadoPlatformApi [Tado Debug]: api request 36: get /api/v2/homes/29063/zones/0/capabilities +13ms
  TadoPlatformApi [Tado Debug]: api request 36: Ok +163ms
  TadoPlatformApi [Tado Debug]: api request 37: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +116ms
  TadoPlatformApi [Tado Debug]: api request 37: Ok +184ms
  TadoPlatformApi [Tado Debug]: api request 38: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +116ms
  TadoPlatformApi [Tado Debug]: api request 38: Ok +180ms
  TadoPlatformApi [Tado Debug]: api request 39: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +105ms
  TadoPlatformApi [Tado Debug]: api request 39: Ok +176ms
  TadoPlatformApi [Tado Debug]: api request 40: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +104ms
  TadoPlatformApi [Tado Debug]: api request 40: Ok +224ms
  TadoPlatformApi [Tado Debug]: api request 41: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +104ms
  TadoPlatformApi [Tado Debug]: api request 41: Ok +366ms
  TadoPlatformApi [Tado Debug]: api request 42: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +103ms
  TadoPlatformApi [Tado Debug]: api request 42: Ok +244ms
  TadoPlatformApi [Tado Debug]: api request 43: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +135ms
  TadoPlatformApi [Tado Debug]: api request 43: Ok +179ms
  TadoPlatformApi [Tado Debug]: api request 44: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms
  TadoPlatformApi [Tado Debug]: api request 44: Ok +187ms
  TadoPlatformApi [Tado Debug]: api request 45: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 45: Ok +244ms
  TadoPlatformApi [Tado Debug]: api request 46: get /api/v2/homes/29063/zones/0/capabilities +11ms
[4/24/2019, 11:05:14 PM] [TadoBridge] [INFO] Bedroom VA4116252416: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 46: Ok +198ms
  TadoPlatformApi [Tado Debug]: api request 47: get /api/v2/homes/29063/zones/0/capabilities +13ms
  TadoPlatformApi [Tado Debug]: api request 47: Ok +176ms
  TadoPlatformApi [Tado Debug]: api request 48: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +104ms
  TadoPlatformApi [Tado Debug]: api request 48: Ok +150ms
  TadoPlatformApi [Tado Debug]: api request 49: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +106ms
  TadoPlatformApi [Tado Debug]: api request 49: Ok +152ms
  TadoPlatformApi [Tado Debug]: api request 50: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +104ms
  TadoPlatformApi [Tado Debug]: api request 50: Ok +154ms
  TadoPlatformApi [Tado Debug]: api request 51: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +104ms
  TadoPlatformApi [Tado Debug]: api request 51: Ok +224ms
  TadoPlatformApi [Tado Debug]: api request 52: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +115ms
[4/24/2019, 11:05:16 PM] [TadoBridge] [INFO] Bedroom Window: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 52: Ok +260ms
  TadoPlatformApi [Tado Debug]: api request 53: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +121ms
  TadoPlatformApi [Tado Debug]: api request 53: Ok +176ms
  TadoPlatformApi [Tado Debug]: api request 54: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +113ms
  TadoPlatformApi [Tado Debug]: api request 54: Ok +220ms
  TadoPlatformApi [Tado Debug]: api request 55: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms
  TadoPlatformApi [Tado Debug]: api request 55: Ok +181ms
[4/24/2019, 11:05:17 PM] [TadoBridge] [INFO] Central Switch: Identify!!!
[4/24/2019, 11:05:22 PM] [TadoBridge] [INFO] Dining Room VA0788859136: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 56: get /api/v2/homes/29063/zones +6s
  TadoPlatformApi [Tado Debug]: api request 56: Ok +2s
  TadoPlatformApi [Tado Debug]: api request 57: get /api/v2/homes/29063/zones/0/capabilities +4ms
[4/24/2019, 11:05:24 PM] [TadoBridge] [INFO] Heating RU1412FT01051521221632: Identify!!!
[4/24/2019, 11:05:25 PM] [TadoBridge] [INFO] Hot Water BU1411FT01052777612288: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 57: Ok +475ms
  TadoPlatformApi [Tado Debug]: api request 58: get /api/v2/homes/29063/zones/0/capabilities +27ms
  TadoPlatformApi [Tado Debug]: api request 58: Ok +397ms
  TadoPlatformApi [Tado Debug]: api request 59: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +132ms
[4/24/2019, 11:05:25 PM] [TadoBridge] [INFO] Lounge VA3372813056: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 59: Ok +336ms
  TadoPlatformApi [Tado Debug]: api request 60: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +113ms
  TadoPlatformApi [Tado Debug]: api request 60: Ok +243ms
  TadoPlatformApi [Tado Debug]: api request 61: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +112ms
[4/24/2019, 11:05:26 PM] [TadoBridge] [INFO] Lounge Window: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 61: Ok +260ms
  TadoPlatformApi [Tado Debug]: api request 62: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +120ms
  TadoPlatformApi [Tado Debug]: api request 62: Ok +205ms
  TadoPlatformApi [Tado Debug]: api request 63: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +118ms
[4/24/2019, 11:05:27 PM] [TadoBridge] [INFO] Media Room VA1493371136: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 63: Ok +270ms
  TadoPlatformApi [Tado Debug]: api request 64: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +102ms
  TadoPlatformApi [Tado Debug]: api request 64: Ok +220ms
  TadoPlatformApi [Tado Debug]: api request 65: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +104ms
  TadoPlatformApi [Tado Debug]: api request 65: Ok +204ms
  TadoPlatformApi [Tado Debug]: api request 66: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +129ms
  TadoPlatformApi [Tado Debug]: api request 66: Ok +228ms
[4/24/2019, 11:05:28 PM] [TadoBridge] [INFO] Media Room Window: Identify!!!
[4/24/2019, 11:05:31 PM] [TadoBridge] [INFO] Spare Room VA1510148352: Identify!!!
[4/24/2019, 11:05:32 PM] [TadoBridge] [INFO] Spare Room Window: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 67: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 67: Ok +215ms
  TadoPlatformApi [Tado Debug]: api request 68: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 68: Ok +147ms
  TadoPlatformApi [Tado Debug]: api request 69: get /api/v2/homes/29063/zones/0/capabilities +4ms
[4/24/2019, 11:05:33 PM] [TadoBridge] [INFO] Study VA2757297920: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 69: Ok +147ms
  TadoPlatformApi [Tado Debug]: api request 70: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +104ms
  TadoPlatformApi [Tado Debug]: api request 70: Ok +147ms
  TadoPlatformApi [Tado Debug]: api request 71: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +105ms
  TadoPlatformApi [Tado Debug]: api request 71: Ok +170ms
  TadoPlatformApi [Tado Debug]: api request 72: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +105ms
  TadoPlatformApi [Tado Debug]: api request 72: Ok +271ms
  TadoPlatformApi [Tado Debug]: api request 73: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +186ms
  TadoPlatformApi [Tado Debug]: api request 73: Ok +185ms
  TadoPlatformApi [Tado Debug]: api request 74: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +115ms
[4/24/2019, 11:05:35 PM] [TadoBridge] [INFO] Study Window: Identify!!!
  TadoPlatformApi [Tado Debug]: api request 74: Ok +895ms
  TadoPlatformApi [Tado Debug]: api request 75: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +155ms
  TadoPlatformApi [Tado Debug]: api request 75: Ok +284ms
  TadoPlatformApi [Tado Debug]: api request 76: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +173ms
  TadoPlatformApi [Tado Debug]: api request 76: Ok +210ms
  TadoPlatformApi [Tado Debug]: api request 77: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms
  TadoPlatformApi [Tado Debug]: api request 77: Ok +209ms
  TadoPlatformApi [Tado Debug]: api request 78: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 78: Ok +322ms
  TadoPlatformApi [Tado Debug]: api request 79: get /api/v2/homes/29063/zones/0/capabilities +8ms
  TadoPlatformApi [Tado Debug]: api request 79: Ok +296ms
  TadoPlatformApi [Tado Debug]: api request 80: get /api/v2/homes/29063/zones/0/capabilities +30ms
  TadoPlatformApi [Tado Debug]: api request 80: Ok +476ms
  TadoPlatformApi [Tado Debug]: api request 81: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +111ms
  TadoPlatformApi [Tado Debug]: api request 81: Ok +205ms
  TadoPlatformApi [Tado Debug]: api request 82: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +106ms
  TadoPlatformApi [Tado Debug]: api request 82: Ok +257ms
  TadoPlatformApi [Tado Debug]: api request 83: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +105ms
  TadoPlatformApi [Tado Debug]: api request 83: Ok +268ms
  TadoPlatformApi [Tado Debug]: api request 84: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +104ms
  TadoPlatformApi [Tado Debug]: api request 84: Ok +208ms
  TadoPlatformApi [Tado Debug]: api request 85: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +116ms
  TadoPlatformApi [Tado Debug]: api request 85: Ok +180ms
  TadoPlatformApi [Tado Debug]: api request 86: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +111ms
[4/24/2019, 11:05:45 PM] [TadoBridge] [INFO] Hot Water BU1411FT01052777612288: On
  TadoPlatformApi [Tado Debug]: api request 87: put /api/v2/homes/29063/zones/0/overlay - {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"type":"MANUAL"}} +198ms
  TadoPlatformApi [Tado Debug]: api request 86: Ok +144ms
  TadoPlatformApi [Tado Debug]: api request 88: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +166ms
  TadoPlatformApi [Tado Debug]: api request 87: Ok +81ms
  TadoPlatformApi [Tado Debug]: api request 88: Ok +209ms
  TadoPlatformApi [Tado Debug]: api request 89: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +105ms
  TadoPlatformApi [Tado Debug]: api request 89: Ok +177ms
  TadoPlatformApi [Tado Debug]: api request 90: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 90: Ok +681ms
  TadoPlatformApi [Tado Debug]: api request 91: get /api/v2/homes/29063/zones/0/capabilities +15ms
  TadoPlatformApi [Tado Debug]: api request 91: Ok +246ms
  TadoPlatformApi [Tado Debug]: api request 92: get /api/v2/homes/29063/zones/0/capabilities +13ms
  TadoPlatformApi [Tado Debug]: api request 92: Ok +285ms
  TadoPlatformApi [Tado Debug]: api request 93: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +115ms
  TadoPlatformApi [Tado Debug]: api request 93: Ok +187ms
  TadoPlatformApi [Tado Debug]: api request 94: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +123ms
  TadoPlatformApi [Tado Debug]: api request 94: Ok +224ms
  TadoPlatformApi [Tado Debug]: api request 95: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +126ms
  TadoPlatformApi [Tado Debug]: api request 95: Ok +195ms
  TadoPlatformApi [Tado Debug]: api request 96: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +115ms
  TadoPlatformApi [Tado Debug]: api request 96: Ok +183ms
  TadoPlatformApi [Tado Debug]: api request 97: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +108ms
  TadoPlatformApi [Tado Debug]: api request 97: Ok +173ms
  TadoPlatformApi [Tado Debug]: api request 98: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +116ms
  TadoPlatformApi [Tado Debug]: api request 98: Ok +168ms
  TadoPlatformApi [Tado Debug]: api request 99: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +114ms
  TadoPlatformApi [Tado Debug]: api request 99: Ok +174ms
  TadoPlatformApi [Tado Debug]: api request 100: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +114ms
  TadoPlatformApi [Tado Debug]: api request 100: Ok +178ms
  TadoPlatformApi [Tado Debug]: api request 101: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 101: Ok +354ms
  TadoPlatformApi [Tado Debug]: api request 102: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 102: Ok +157ms
  TadoPlatformApi [Tado Debug]: api request 103: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 103: Ok +138ms
  TadoPlatformApi [Tado Debug]: api request 104: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +106ms
  TadoPlatformApi [Tado Debug]: api request 104: Ok +206ms
  TadoPlatformApi [Tado Debug]: api request 105: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +105ms
  TadoPlatformApi [Tado Debug]: api request 105: Ok +162ms
  TadoPlatformApi [Tado Debug]: api request 106: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +104ms
  TadoPlatformApi [Tado Debug]: api request 106: Ok +179ms
  TadoPlatformApi [Tado Debug]: api request 107: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +105ms
  TadoPlatformApi [Tado Debug]: api request 107: Ok +184ms
  TadoPlatformApi [Tado Debug]: api request 108: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +110ms
  TadoPlatformApi [Tado Debug]: api request 108: Ok +173ms
  TadoPlatformApi [Tado Debug]: api request 109: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +117ms
  TadoPlatformApi [Tado Debug]: api request 109: Ok +221ms
  TadoPlatformApi [Tado Debug]: api request 110: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +109ms
  TadoPlatformApi [Tado Debug]: api request 110: Ok +182ms
  TadoPlatformApi [Tado Debug]: api request 111: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms
  TadoPlatformApi [Tado Debug]: api request 111: Ok +171ms
  TadoPlatformApi [Tado Debug]: api request 112: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 112: Ok +217ms
  TadoPlatformApi [Tado Debug]: api request 113: get /api/v2/homes/29063/zones/0/capabilities +14ms
  TadoPlatformApi [Tado Debug]: api request 113: Ok +155ms
  TadoPlatformApi [Tado Debug]: api request 114: get /api/v2/homes/29063/zones/0/capabilities +11ms
  TadoPlatformApi [Tado Debug]: api request 114: Ok +274ms
  TadoPlatformApi [Tado Debug]: api request 115: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +118ms
  TadoPlatformApi [Tado Debug]: api request 115: Ok +167ms
  TadoPlatformApi [Tado Debug]: api request 116: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +113ms
  TadoPlatformApi [Tado Debug]: api request 116: Ok +147ms
  TadoPlatformApi [Tado Debug]: api request 117: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +104ms
  TadoPlatformApi [Tado Debug]: api request 117: Ok +169ms
  TadoPlatformApi [Tado Debug]: api request 118: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +105ms
  TadoPlatformApi [Tado Debug]: api request 118: Ok +409ms
  TadoPlatformApi [Tado Debug]: api request 119: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +104ms
  TadoPlatformApi [Tado Debug]: api request 119: Ok +186ms
  TadoPlatformApi [Tado Debug]: api request 120: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +113ms
  TadoPlatformApi [Tado Debug]: api request 120: Ok +208ms
  TadoPlatformApi [Tado Debug]: api request 121: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +107ms
  TadoPlatformApi [Tado Debug]: api request 121: Ok +192ms
  TadoPlatformApi [Tado Debug]: api request 122: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +116ms
  TadoPlatformApi [Tado Debug]: api request 122: Ok +144ms
[4/24/2019, 11:06:14 PM] [TadoBridge] [INFO] Hot Water BU1411FT01052777612288: On
  TadoPlatformApi [Tado Debug]: api request 123: put /api/v2/homes/29063/zones/0/overlay - {"setting":{"type":"HOT_WATER","power":"OFF"},"termination":{"type":"MANUAL"}} +4s
  TadoPlatformApi [Tado Debug]: api request 123: Ok +180ms
  TadoPlatformApi [Tado Debug]: api request 124: get /api/v2/homes/29063/zones +1s
  TadoPlatformApi [Tado Debug]: api request 124: Ok +221ms
  TadoPlatformApi [Tado Debug]: api request 125: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 125: Ok +167ms
  TadoPlatformApi [Tado Debug]: api request 126: get /api/v2/homes/29063/zones/0/capabilities +4ms
  TadoPlatformApi [Tado Debug]: api request 126: Ok +167ms
  TadoPlatformApi [Tado Debug]: api request 127: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +105ms
  TadoPlatformApi [Tado Debug]: api request 127: Ok +168ms
  TadoPlatformApi [Tado Debug]: api request 128: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +109ms
  TadoPlatformApi [Tado Debug]: api request 128: Ok +171ms
  TadoPlatformApi [Tado Debug]: api request 129: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +224ms
  TadoPlatformApi [Tado Debug]: api request 129: Ok +880ms
  TadoPlatformApi [Tado Debug]: api request 130: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +1s
  TadoPlatformApi [Tado Debug]: api request 130: Ok +443ms
  TadoPlatformApi [Tado Debug]: api request 131: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +156ms
  TadoPlatformApi [Tado Debug]: api request 131: Ok +183ms
  TadoPlatformApi [Tado Debug]: api request 132: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +117ms
  TadoPlatformApi [Tado Debug]: api request 132: Ok +186ms
  TadoPlatformApi [Tado Debug]: api request 133: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +138ms
  TadoPlatformApi [Tado Debug]: api request 133: Ok +400ms
  TadoPlatformApi [Tado Debug]: api request 134: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +127ms
  TadoPlatformApi [Tado Debug]: api request 134: Ok +300ms
  TadoPlatformApi [Tado Debug]: api request 135: get /api/v2/homes/29063/zones +5s
  TadoPlatformApi [Tado Debug]: api request 135: Ok +290ms
  TadoPlatformApi [Tado Debug]: api request 136: get /api/v2/homes/29063/zones/0/capabilities +10ms
  TadoPlatformApi [Tado Debug]: api request 136: Ok +177ms
  TadoPlatformApi [Tado Debug]: api request 137: get /api/v2/homes/29063/zones/0/capabilities +14ms
  TadoPlatformApi [Tado Debug]: api request 137: Ok +267ms
  TadoPlatformApi [Tado Debug]: api request 138: get /api/v2/homes/29063/zones/1/state - {} - {"id":1,"name":"Heating"} +106ms
  TadoPlatformApi [Tado Debug]: api request 138: Ok +186ms
  TadoPlatformApi [Tado Debug]: api request 139: get /api/v2/homes/29063/zones/7/state - {} - {"id":7,"name":"Lounge"} +105ms
  TadoPlatformApi [Tado Debug]: api request 139: Ok +168ms
  TadoPlatformApi [Tado Debug]: api request 140: get /api/v2/homes/29063/zones/6/state - {} - {"id":6,"name":"Dining Room"} +117ms
  TadoPlatformApi [Tado Debug]: api request 140: Ok +177ms
  TadoPlatformApi [Tado Debug]: api request 141: get /api/v2/homes/29063/zones/2/state - {} - {"id":2,"name":"Bedroom"} +114ms
  TadoPlatformApi [Tado Debug]: api request 141: Ok +167ms
  TadoPlatformApi [Tado Debug]: api request 142: get /api/v2/homes/29063/zones/3/state - {} - {"id":3,"name":"Study"} +112ms
  TadoPlatformApi [Tado Debug]: api request 142: Ok +205ms
  TadoPlatformApi [Tado Debug]: api request 143: get /api/v2/homes/29063/zones/5/state - {} - {"id":5,"name":"Media Room"} +115ms
  TadoPlatformApi [Tado Debug]: api request 143: Ok +147ms
  TadoPlatformApi [Tado Debug]: api request 144: get /api/v2/homes/29063/zones/4/state - {} - {"id":4,"name":"Spare Room"} +104ms
  TadoPlatformApi [Tado Debug]: api request 144: Ok +145ms
  TadoPlatformApi [Tado Debug]: api request 145: get /api/v2/homes/29063/zones/0/state - {} - {"id":0,"name":"Hot Water"} +104ms
  TadoPlatformApi [Tado Debug]: api request 145: Ok +151ms

@jasehigh
Should be fixed with v5.1.4

Good news... the Hot Water switch works in v5.1.4. Many thanks for this, really appreciated.
Now for the enhancement request... it is possible to enable On/Off/Auto (as per the radiators)?
While the Hot Water can be switched on (say to boost the hot water for 30 minutes), there is no way to return control to Tado (auto) for the schedule in Tado to take control (switch off the Hot water keeps the Hot Water off).


logs-range preference contains an invalid value and breaks logs

Setup

Rancher version: 2.6.5
Browser type & version: Chrome 102

Describe the bug
Opening container logs not working - windows stays blank:

Error in the console:
TypeError: r.replace is not a function
    at C (opsgenie.vue?578b:153:1)
    at f.rangeOptions (opsgenie.vue?578b:116:9)
    at _n.get (vue.runtime.esm.js:4479:25)
    at _n.evaluate (vue.runtime.esm.js:4584:21)
    at f.rangeOptions (vue.runtime.esm.js:4836:17)
    at fn (rke2.svg:1:2097)
    at Object.r [as title] (vue.runtime.esm.js:2590:62)
    at f.r (rke.svg:1:159)
    at t._render (vue.runtime.esm.js:3548:22)
    at f.r (vue.runtime.esm.js:4066:21)

TypeError: Cannot read properties of undefined (reading 'addEventListener')
    at opsgenie.vue?578b:222:1
    at d (runtime.js:45:40)
    at Generator._invoke (runtime.js:274:22)
    at O.forEach.t.<computed> [as next] (runtime.js:97:21)
    at r (asyncToGenerator.js:3:20)
    at l (asyncToGenerator.js:25:9)

To Reproduce

Result
Expected Result

Screenshots

Additional context
Update by @richard-cox
This is caused by the logs-range preference containing an incorrect value  "value": "{\"label\":\"Everything\",\"value\":\"all\"}" and is effecting a lot of installs. For 2.6.6 we should check for this bad value and convert it to a correct one.

We don't see this fail in 2.6.5, could you provide more information?

Is the log actually showing as connected (bottom right)?
Are there failed network requests?
Is the container associated with something we can deploy to try to reproduce?

Hi,
Same issue here, also the same logs.
It does not look like related to a specific browser, we tested Chrome / Edge 102, and Firefox 101
I caught this websocket error also

Not sure if it is related.

same issue here after upgrading to 2.6.5, and same errors from the browsers

same issue for me, after upgrading to rancher 2.6.5

@UlixDev , @glatino-pdx  https://github.com/rancher/dashboard/issues/6122#issuecomment-1150210531

@richard-cox The log window shows absolutely nothing nor the message 'connected' in bottom right

@UlixDev Are you able to answer the other questions from https://github.com/rancher/dashboard/issues/6122#issuecomment-1150210531?

@richard-cox There are no other errors in the network tab and also for me the issue happens in all containers

same for me, errors only in the console tab, and for all the containers

Can you all

confirm which resources you see this for, is it only Pods in Services, or also Pods in Deployments?
the same happens after refreshing the page? the console log shows an opsgenie component which should in theory only show when editing a monitoring resource
log in to Rancher, then navigate to <your rancher url>/v3/preferences/logs-range. Does it succeed? Is there something in value?

Well

The problem exists either for Pods in Services and Pods in Deployments
After a refresh, the tab of the log disappears
this is the result from the API call <your rancher url>/v3/preferences/logs-range
{ "baseType": "preference", "created": "2022-06-10T11:49:43Z", "createdTS":<PHONE_NUMBER>000, "creatorId": null, "id": ["logs-range"](https://rancher.dev.pdxeng.ch/v3/preferences/logs-range), "links": { "remove": ["…/v3/preferences/logs-range"](https://rancher.dev.pdxeng.ch/v3/preferences/logs-range), "self": ["…/v3/preferences/logs-range"](https://rancher.dev.pdxeng.ch/v3/preferences/logs-range), "update": ["…/v3/preferences/logs-range"](https://rancher.dev.pdxeng.ch/v3/preferences/logs-range) }, "name": "logs-range", "namespaceId": "u-kpkf7ivouz", "type": ["preference"](https://rancher.dev.pdxeng.ch/v3/schemas/preference), "uuid": "ceff1cb2-0493-4722-94af-042e4bda8e51", "value": "{\"label\":\"Everything\",\"value\":\"all\"}" }

Ok, that value looks broken. Can you try navigating back to <your rancher url>/v3/preferences/logs-range, pressing the delete button on the right of the page and then send request in the modal that pops up. If you then go back to Rancher and try streaming logs again it should work

@richard-cox
kind of magic! That works!
Thank you so much
ulix

@UlixDev No problem, thank you for your patience and assistance. Go team!
@JannikZed @glatino-pdx Please can you try the suggestion in https://github.com/rancher/dashboard/issues/6122#issuecomment-1152394027 ?

I can confirm, that this little fix from https://github.com/rancher/dashboard/issues/6122#issuecomment-1152394027 fixes the issue for us! Working again. Thank you very much for the fast response.

It works also for me, thanks @richard-cox :)

I believe this is a duplicate of https://github.com/rancher/dashboard/issues/5984 and a fix is already in master, scheduled for the 2.6.6 milestone

The quick cleanup of all of the settings (run against the local cluster):
kubectl get preference -A | grep logs-range | while read ns setting crap; do kubectl -n "$ns" delete preference "$setting"; done


Enable XML documentation

Add the XML Documentation to the NuGet pack.

It is enabled inside the project.json
Getting many warnings because the actual source code is not very well documented at this time.


fix #1210

Fixes #1210

This is pretty crude honestly you might not want to do it like that. 🤷🏻♂
I'm re-building my container atm, I guess will quickly see it at least works as a crude fix.

Yeah ok, I got why this PR was useless. But I learn a lot! haha


lowSpeedPercent must be smaller than mediumSpeedPercent

I've set the minimum percentage to 90 and the medium percentage to 92 and the max percentage is 100,
But still getting this error:

Stack trace:
java.lang.IllegalArgumentException: lowSpeedPercent must be smaller than mediumSpeedPercent
at com.github.anastr.speedviewlib.Gauge.checkSpeedometerPercent(Gauge.kt:339)
at com.github.anastr.speedviewlib.Gauge.setLowSpeedPercent(Gauge.kt:1176)

When I set it through XML, it works. But when I set it programmatically like this, it doesn't work:
            speedView.setLowSpeedPercent(miniCompletionRate)
            speedView.setMediumSpeedPercent(miniCompletionRate + 2)

It works when I set the medium percentage first, then the low percentage:
            speedView.setMediumSpeedPercent(miniCompletionRate + 2)
            speedView.setLowSpeedPercent(miniCompletionRate)

The solution is we have to define Medium and Low percentages on XML, then set them programmatically. Otherwise, we get the error.

Technically, default value of Low/Medium percent are 60/87.
When you change lowSpeedPercent first to '90' it will throw the exception above, because lowSpeedPercent '90' is bigger than mediumSpeedPercent '87'.


Adding files needed in order to use Travis CI

Hello,
We are a group of researchers investigating the use of Continuous Integration (CI). It seems that your project is not using CI, so we generated some changes to get you started with Travis CI.
To enable CI for your project, please follow these steps:

Visit https://travis-ci.org, sign in on Travis using your GitHub account, and turn on this repository.
By accepting this pull request, you will add a .travis.yml config file to your repository and add a Travis CI status badge to your README.

If you don’t want to use CI, we would really appreciate if you could reply to this PR and let us know why you think CI does not fit your project.
Some information about the work we have done in the past is available here: CI Survey Results.
If you would like to learn more about CI in general, you can read more at https://en.wikipedia.org/wiki/Continuous_integration
If you want to learn more about Travis, you can visit their home page at https://travis-ci.org/
Thank you!

Let's try..

Thanks for taking the time to look at this!
Sorry about the broken badge.  We are trying to automate sending Pull Requests and did not consider head branches named something other than master.


Allow pasting files directly into the page

I would like to be able to take a screenshot (which is copied to my clipboard), and paste it directly into microbin. That way I don't need to save it to my PC and select the file.

@szabodanika are you already working on it? maybe we create a PR for it

No, not just yet. I am also not quite sure how we would go about this. Can this be done with simple vanilla JS? If so then I am very happy with you working on a PR for this

Good news - It seems fairly straightforward with vanilla JS!
https://stackoverflow.com/questions/6333814/how-does-the-paste-image-from-clipboard-functionality-work-in-gmail-and-google-c
https://stackoverflow.com/questions/490908/paste-an-image-from-clipboard-using-javascript
https://codepen.io/ahw/pen/qEPRzW
I have a ton of experience with JS, though none with Rust, so not sure how helpful I'd be on this one.


dereference() fails to deference circular ref

Hi!
I'm using json-schema-ref-parser to power ref resolution in https://github.com/bcherny/json-schema-to-typescript. Thank you for the great work - it makes my life much easier.
I am running into an issue with circular $refs. Here is the simplest repro case:
Input:
{
  properties: {
    foo: {
      $ref: '#/properties/foo'
    }
  }
}

Output (actual):
{
  properties: {
    foo: {
      $ref: '#/properties/foo'
    }
  }
}

Output (expected):
{
  properties: {
    foo: {
      $ref: (reference to properties/foo)
    }
  }
}

This is likely related to https://github.com/BigstickCarpet/json-schema-ref-parser/issues/36.

When I first read your bug report, I agreed with your expected behavior.  In fact, I was shocked that such an obvious bug had existed for so long in JSON Schema $Ref Parser. 😱
But then I created a quick test
to make sure, and that's when I realized that the current behavior is actually correct, and it's actually the same thing as your expected behavior.
Effectively, your example schema equates to this:
schema.properties.foo = schema.properties.foo;

So, de-referencing the schema is effectively a no-op and has no effect.  The $ref property simply points to the same object, which is just an object with a $ref property.

@BigstickCarpet Thanks for the quick response!
Reading through the JSON-Schema and JSON-Pointer specs, the behavior for this case does not seems to be well specified. However, the way json-schema-ref-parser currently handles this case can lead to a cascade of unresolved $refs, and seems somewhat internally inconsistent:
// 1. case in this issue (A -> A, silent failure):
{
  properties: {
    foo: { $ref: '#/properties/foo' }
  }
} => {
  properties: {
    foo: { $ref: '#/properties/foo' }
  }
}

// 2. related case (A -> B -> B, silent failure):
{
  properties: {
    foo: { $ref: '#/properties/bar' },
    bar: { $ref: '#/properties/bar' }
  }
} => {
  properties: {
    foo: { $ref: '#/properties/bar' },
    bar: { $ref: '#/properties/bar' }
  }
}

// 3. related case (A -> B -> A, stack overflow):
{
  properties: {
    foo: { $ref: '#/properties/bar' },
    bar: { $ref: '#/properties/foo' }
  }
} => [Stack Overflow]

// 4. related case (A -> B, C -> A, ok):
{
  properties: {
    foo: { $ref: '#/properties/bar' },
    bar: { properties: { baz: { $ref: '#/properties/foo' }}}
  }
} => {
  properties: {
    foo: [Ref to bar],
    bar: { properties: { baz: [Ref to foo] }}
  }
}

A couple of options come to mind:

Handle 1-3 gracefully: do not throw, remove all $refs, and update references as you do for case 4 (ie. foo and bar would compile to empty objects in 1-3),
Explicitly detect and throw errors when given unresolvable cycles (ie. 1-3 would throw, 4 would continue to work)

What do you think?

Thanks for all the example cases.  I'll add them to the test suite.
I think your question basically comes down to how a self-referencing $ref should be dereferenced.  The spec doesn't explicitly say how this case should be handled, but it seems like one of these two solutions is best:
1) The $ref resolves to itself
This is the current behavior, which is basically a no-op.  The $ref resolves to itself, which is an object with a $ref property.  Note that I don't consider this to be a silent failure.  The $ref is resolved successfully, so there is no error condition.
Pros:

It's technically correct. The $ref is correctly resolved to itself.
It's unambiguous. The resolved object is clearly a reference to itself, as the schema author intended.
It's un-intrusive. I don't attempt to "correct" the circular reference by changing it to an empty object, which could cause confusion and unintended behavior for the schema author.

Cons:

There is still a $ref in the schema, which seems counter-intuitive after calling .dereference()
Downstream tools/libraries might not be able to handle the remaining $refs, which could cause unexpected errors

2) The $ref resolves to an empty object
I think this is the behavior that you're suggesting (please correct me if I'm wrong).
Pros:

There is no $ref left in the schema, which makes sense after calling .dereference()
Downstream tools/libraries won't throw errors due to unexpected $refs

Cons:

It's not technically correct, since it resolves the $ref to an empty object rather than the object that it actually points to
The behavior is ambiguous and potentially confusing
It's intrusive, since it attempts to "auto-correct" the circular reference by changing it to an empty object, which the schema author may not have wanted

Thanks for the writeup. My vote is for (2). I'm not sure it's less correct than (1), since the behavior is unspecified, and as you noted, if we go with (1) then downstream software must always handle the case of unresolved $refs.
In any case, it seems that behavior would need to be updated for my 3rd example above.
I would defer to people closer to the spec. @handrews @dlax @awwright would one of you mind chiming in?

@Julian @Relequestual

For this kind of self-reference, a parser MUST NOT get stuck in an infinite loop (so the stack overflow case is a bug in terms of implementing the schema), but aside from that the behavior is explicitly undefined.  Schema authors SHOULD NOT produce such schemas:
https://tools.ietf.org/html/draft-wright-json-schema-01#section-8

A schema MUST NOT be run into an infinite loop against a schema.  For
example, if two schemas "#alice" and "#bob" both have an "allOf"
property that refers to the other, a naive validator might get stuck
in an infinite recursive loop trying to validate the instance.
Schemas SHOULD NOT make use of infinite recursive nesting like this;
the behavior is undefined.

Do you have a use case for this self-reference?  I can't figure out how it would ever be used, but perhaps I'm missing something?

Agreed.
Maybe we could add a clause that says something along the lines of, "Implementors may choose to protect against such infinite recursive loops, however this should not be expected by schema authors." or some such.
@epoberezkin Does ajv do anything about this?

@handrews Thanks for the comment.
I do not have a valid use case, and it also seems like an error case to me. For my application (https://github.com/bcherny/json-schema-to-typescript), I could either catch these types of cycles in the validation phase (hopefully deferring to json-schema-ref-parser), or be lenient and compile to empty objects. It was not clear to me what the right approach is, so I am deferring to @BigstickCarpet and everyone else in this thread.

@BigstickCarpet What do you think? Any chance you'll have time to resolve this in the near future?

@bcherny

or be lenient and compile to empty objects.

Were I using the program, I'd rather it error out because writing such a schema is almost certainly a mistake, or at best a misunderstanding of how the schema is supposed to work.  Then again I generally prefer fail-fast over tolerance in machine communication (unlike, say, HTML, where a human can probably make sense of a best effort interpretation of malformed HTML anyway).

@handrews I agree! As long as traces/error messages are good, fail fast is almost certainly more helpful than silently correcting the user's input.

+1 on what @handrews said about what the behavior should be, and that self referencing doesn't really make much sense.
FWIW the test suite does not currently cover circular references, simply because at the moment it has no way of representing the expected outcome (that nothing loops forever), but that was also not really explicitly in the spec before.

I should point out too, JSON Schema doesn't use JSON Reference (draft-pbryan-zyp-json-ref-03) anymore -- the expression is only allowed where a schema is expected, now.
And there's probably no good reason to ever have an infinite loop/a reference back to yourself, that should probably be a fatal error.
JSON Reference was removed because there's no way to have references without at least somewhat understanding the semantics of the JSON Schema document: It only made sense to have the reference in a place where a schema is expected, you have to know if that schema descends into an instance or not (items/properties vs. allOf/anyOf/oneOf) if you're going to handle infinite loops as a fatal error, and you need to know the current URI base.

@bcherny - I will get started on this soon (hopefully this week), depending on how busy I am at work.  I believe the stack overflow bug is already fixed in the 4.0 branch.  But I'll also address the reference-to-self problem.

I think based on lack of everyones time and lack of interest from other people this is going to have to be closed. It's been almost 4 years. If anyone who's struggling with this problem can contribute with a pull request, that would be really appreciated!

I think based on lack of everyones time and lack of interest from other people this is going to have to be closed. It's been almost 4 years. If anyone who's struggling with this problem can contribute with a pull request, that would be really appreciated!


How get the multipart presigned upload url?

In aws s3 go sdk, I can get the multipart presigned url for fragment upload. The step as below:
// step 1 get upload id.
rsp, err := s3client.CreateMultipartUpload()

// step 2 get UploadPartRequest
signedReq, _ := s3client.UploadPartRequest(&s3.UploadPartInput{
    Bucket:     &bucket,
    Key:          &key,
    PartNumber: aws.Int64(partNum),
    UploadId:   rsp.UploadId,
})

// step 3 get the presigned upload url for the specified fragment.
signedURL, err := signedReq.Presign(time.Duration(expire) * time.Second)

In minio-go, I found the minio.Core method NewMultipartUpload which can generate a upload id, but I can't find which method or function can be used to generate the multipart presigned upload url based on the upload id.
Who can help me, thx in advance.

Multipart uploads in Minio can be bug? Currently, it seems that only after a successful upload of the entire file can you view its parts by running the "ls" command on the server side. If the upload is incomplete or interrupted, the parts may still occupy disk space without being accessible. Please let me know if I have wrong

Multipart uploads in Minio can be bug? Currently, it seems that only after a successful upload of the entire file can you view its parts by running the "ls" command on the server side. If the upload is incomplete or interrupted, the parts may still occupy disk space without being accessible. Please let me know if I have wrong

IF there is an error during transfer, this SDK sends Abort() if for some reason Abort was not successful. MinIO runs an active cleanup - all stale uploads older than 24hrs are cleaned up.
@eveningcafe this issue is not about your problem. Please talk about that at https://github.com/minio/minio/issues

In aws s3 go sdk, I can get the multipart presigned url for fragment upload. The step as below:

We have a low-level implementation https://pkg.go.dev/github.com/minio/minio-go/v7#Client.Presign - use it however you like @dablelv


Add operationHash, rename package

The following artifacts were published to CircleCI:

https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.dropunuseddefinitions-1.0.0.tgz
https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.hashing-1.0.0.tgz
https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.isnodelike-1.0.0.tgz
https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.operationregistrysignature-1.0.0.tgz
https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.printwithreducedwhitespace-1.0.0.tgz
https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.sortast-1.0.0.tgz
https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.stripsensitiveliterals-1.0.0.tgz

These can be npm installed into your project like so:

npm i https://485-440994334-gh.circle-artifacts.com/0/trevorscheer-utils.dropunuseddefinitions-1.0.0.tgz

This comment will be updated on every successful build.


Clean up QL/KV interface: no longer pass KV records in either direction.

See basho/riak_ql#103

Build is failing because it's building against non-branched QL.

riak_tests look good except for ts_cluster_create_table_via_sql:
[{riak_kv_pb_timeseries,
 process,
 [function_clause,
{state,undefined,
 undefined,
 undefined}],
 [{file,
 \"src/riak_kv_pb_timeseries.erl\"},
{line,151}]},
{riak_api_pb_server,
 process_message,4,
 [{file,
 \"src/riak_api_pb_server.erl\"},
{line,418}]},
{riak_api_pb_server,
 connected,2,
 [{file,
 \"src/riak_api_pb_server.erl\"},
{line,252}]},
{riak_api_pb_server,
 decode_buffer,2,
 [{file,
 \"src/riak_api_pb_server.erl\"},
{line,394}]},
{gen_fsm,
 handle_msg,7,
 [{file,
 \"gen_fsm.erl\"},
{line,505}]},
{proc_lib,
 init_p_do_apply,3,
 [{file,
 \"proc_lib.erl\"},
{line,239}]}]">>}}]},

Good catch, thanks.
-John

On Feb 11, 2016, at 11:42 PM, Brett Hazen<EMAIL_ADDRESS>wrote:
riak_tests look good except for ts_cluster_create_table_via_sql:
[{riak_kv_pb_timeseries,
process,
[function_clause,
{state,undefined,
undefined,
undefined}],
[{file,
"src/riak_kv_pb_timeseries.erl"},
{line,151}]},
{riak_api_pb_server,
process_message,4,
[{file,
"src/riak_api_pb_server.erl"},
{line,418}]},
{riak_api_pb_server,
connected,2,
[{file,
"src/riak_api_pb_server.erl"},
{line,252}]},
{riak_api_pb_server,
decode_buffer,2,
[{file,
"src/riak_api_pb_server.erl"},
{line,394}]},
{gen_fsm,
handle_msg,7,
[{file,
"gen_fsm.erl"},
{line,505}]},
{proc_lib,
init_p_do_apply,3,
[{file,
"proc_lib.erl"},
{line,239}]}]">>}}]},
—
Reply to this email directly or view it on GitHub https://github.com/basho/riak_kv/pull/1348#issuecomment-183178380.

Digging into this I realized I could make the parser interface cleaner by using smarter tagged tuples than simply {ok, Response}. More commits to come for both repos.

Ready for review

Unit tests pass.  Trying integration now.

Now that it builds, we face our old nemesis, Dialyzer:
==> riak_kv (dialyzer)
riak_kv_pb_timeseries.erl:515: The variable SQL can never match since previous clauses completely covered the type {'error',_}
riak_kv_pb_timeseries.erl:525: Function convert_cover_list/2 will never be called
riak_kv_pb_timeseries.erl:545: Function assemble_ts_range/2 will never be called
riak_kv_pb_timeseries.erl:562: Function sql_to_cover/4 will never be called
riak_kv_pb_timeseries.erl:578: Function reverse_sql/1 will never be called
riak_kv_pb_timeseries.erl:588: Function derive_description/3 will never be called
riak_kv_pb_timeseries.erl:596: Function pick_operator/2 will never be called
riak_kv_pb_timeseries.erl:601: Function extract_time_boundaries/2 will never be called
riak_kv_pb_timeseries.erl:613: Function identify_quantum_field/1 will never be called
riak_kv_pb_timeseries.erl:618: Function find_hash_fn/1 will never be called
riak_kv_pb_timeseries.erl:643: The pattern {'ok', Queries} can never match the type {'error','full table scan not implemented' | 'query is already compiled'}
riak_kv_pb_timeseries.erl:658: The call riak_kv_pb_timeseries:make_tsqueryresp(Data::[[any(),...]]) will never return since it differs in the 1st argument from the success typing arguments: ({_,_,[[boolean() | binary() | [any()] | number()]]})
riak_kv_pb_timeseries.erl:810: Function make_tsqueryresp/1 has no local return
riak_kv_pb_timeseries.erl:810: The pattern {_, _, []} can never match the type [[any(),...]]
riak_kv_pb_timeseries.erl:812: The pattern {ColumnNames, ColumnTypes, JustRows} can never match the type [[any(),...]]
riak_kv_qry.erl:102: The pattern {'ok', Queries} can never match the type {'error','full table scan not implemented' | 'query is already compiled'}
riak_kv_qry.erl:110: Function maybe_await_query_results/1 will never be called
make: *** [dialyzer-run] Error 1

thanks, looking

On Feb 16, 2016, at 11:55 PM, Brett Hazen<EMAIL_ADDRESS>wrote:
Now that it builds, we face our old nemesis, Dialyzer:
==> riak_kv (dialyzer)
riak_kv_pb_timeseries.erl:515: The variable SQL can never match since previous clauses completely covered the type {'error',}
riak_kv_pb_timeseries.erl:525: Function convert_cover_list/2 will never be called
riak_kv_pb_timeseries.erl:545: Function assemble_ts_range/2 will never be called
riak_kv_pb_timeseries.erl:562: Function sql_to_cover/4 will never be called
riak_kv_pb_timeseries.erl:578: Function reverse_sql/1 will never be called
riak_kv_pb_timeseries.erl:588: Function derive_description/3 will never be called
riak_kv_pb_timeseries.erl:596: Function pick_operator/2 will never be called
riak_kv_pb_timeseries.erl:601: Function extract_time_boundaries/2 will never be called
riak_kv_pb_timeseries.erl:613: Function identify_quantum_field/1 will never be called
riak_kv_pb_timeseries.erl:618: Function find_hash_fn/1 will never be called
riak_kv_pb_timeseries.erl:643: The pattern {'ok', Queries} can never match the type {'error','full table scan not implemented' | 'query is already compiled'}
riak_kv_pb_timeseries.erl:658: The call riak_kv_pb_timeseries:make_tsqueryresp(Data::[[any(),...]]) will never return since it differs in the 1st argument from the success typing arguments: ({,,[[boolean() | binary() | [any()] | number()]]})
riak_kv_pb_timeseries.erl:810: Function make_tsqueryresp/1 has no local return
riak_kv_pb_timeseries.erl:810: The pattern {, _, []} can never match the type [[any(),...]]
riak_kv_pb_timeseries.erl:812: The pattern {ColumnNames, ColumnTypes, JustRows} can never match the type [[any(),...]]
riak_kv_qry.erl:102: The pattern {'ok', Queries} can never match the type {'error','full table scan not implemented' | 'query is already compiled'}
riak_kv_qry.erl:110: Function maybe_await_query_results/1 will never be called
make: *** [dialyzer-run] Error 1
—
Reply to this email directly or view it on GitHub https://github.com/basho/riak_kv/pull/1348#issuecomment-185023514.

:+1: 213ca77

@borshop merge


Issue #23, because I want to use query string params in my mocks.

Add query string param functionality.

I have the same problem with that query paramers don't seem to work.
I tried to manually patch my local protractor-http-mock with this code, but I didn't make any difference. Have you tested that your code works?
Would be nice to see some tests for query paremeters (e.g. there are some for post https://github.com/atecarlos/protractor-http-mock/blob/master/example/spec/postData.spec.js)

I wrote some tests for GET query parameters for the "example" app of this repo, but protractor-http-mock seemed to be working correctly.
I need to dig into my own code a bit more to see if I did something incorrectly.

This feature has been implemented taking inspiration from this PR.


fix(PTL-13379) typo in the output of "words" app

Closes PTL-13379.
Words app has a typo in the output, printing an attribute of "palidrome" instead of "palindrome", thus breaking the grading script which checks for the latter.

Wrong branch name and PTL issue number. Ignore.


Assign task - Mark as complete CTA is cut off

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/19515
Action Performed:

Launch New Expensify app.
Tap + > Assign task.
Enter title and description > Next.
Select current user as assignee and share destination.
Tap Confirm task.
Open parent report

Expected Result:
Mark as complete CTA is not cut off.

Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

https://github.com/Expensify/App/assets/93399543/2743683c-4892-44b9-a5d2-42f218d3fb73
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

This is not a blocker, and also exists on production @kbecciv
I noticed that both
https://github.com/Expensify/App/issues/20281 and this issue say that the issue is not reproducible on production but that is not true, I've been able to quickly reproduce both of them in production

Leaving this issue open so we can keep track of it, but we are fixing it in https://github.com/Expensify/App/issues/19330

Same as above, Jasper is working on the redesign

Same as above!

Same, above should get merged soon