Zwift Sensor Component - Feedback and Testers Needed

I installed this integration a while ago and reinstalled it today (vs 3.3.1) but i never get the zeift_online sensor. The only sensors i have are zwift_cadence, zwift_distance, zwift_gradient, zwift_heart_rate, zwift_power, zwift_speed and zwift_sensors_update

how do i get the zwift_online sensor?

Hi there, first of all thanks for the possibility of showing zwift infos and the work.
I am a complete newbie and have installed hass on a linux system, running on a dell wyse thin client.
i have 2023.7.2 core, hacs installed and running. zwift package seems also be installed.
I now have to proceed to installing an sensor with the following information:
sensor:

  • platform: zwift
    username: !secret my_zwift_username
    password: !secret my_zwift_password
    players:
    • !secret my_friends_zwift_player_id

Now my questions:

  1. is this still running without problems on hass
  2. how do i proceed (which steps are to do on hass) and is there a video which shows the basic installation of zwift sensor?
    sorry for the newb questions…

i am sorry to see, that there seems noone try to help me?

Hi, yep the sensor is still working fine. I make use of it every time I’m Zwifting :slight_smile:

About the configuration in Home Assistant. In configuration.yaml file I added the platform like you already mentioned in your message. After that I added the following entities in my dashboard (there a more entities availably):

type: entities
entities:
  - entity: sensor.zwift_online_4431663
    name: Zwift online
  - entity: sensor.zwift_cadence_4431663
    name: Cadans
  - entity: sensor.zwift_heart_rate_4431663
    name: Heart rate
  - entity: sensor.zwift_power_4431663
    name: Wattage
  - entity: sensor.zwift_speed_4431663
    name: Speed
  - entity: sensor.zwift_distance_4431663
    name: Distance
  - entity: sensor.zwift_level_4431663
    name: Level
  - entity: sensor.zwift_cycle_progress_4431663
    name: Cycle progress
title: Zwift
state_color: true

I also made in Node Red (which I do my automations in) the following automation (see below). This automation controls my fans based on my heartrate in Zwift.

[{"id":"e6dcfb8ea25b1e24","type":"server-state-changed","z":"edbfabe1c95de39e","name":"Zwift cadance <=40","server":"480f0ad4.89a784","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.zwift_cadence_4431663","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"40","halt_if_type":"num","halt_if_compare":"lte","outputs":2,"output_only_on_state_change":true,"for":"60","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":90,"y":570,"wires":[["49e2421c8c2c27d4"],[]]},{"id":"49e2421c8c2c27d4","type":"api-current-state","z":"edbfabe1c95de39e","name":"Zwift speed <= 10","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"10.0","halt_if_type":"num","halt_if_compare":"lte","entity_id":"sensor.zwift_speed_4431663","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":300,"y":570,"wires":[["7796c675d9160253"],[]]},{"id":"a7741dbf5bc3514c","type":"function","z":"edbfabe1c95de39e","name":"Set text to number","func":"msg.payload = Number(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1080,"y":555,"wires":[["809971767d09657c","f0db4f9bbe3f102b","c8da7738c333eccd","0aab647246bf633d"]]},{"id":"c8da7738c333eccd","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - hoog - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_high"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1420,"y":570,"wires":[[]]},{"id":"f0db4f9bbe3f102b","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - middel - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_middel"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1420,"y":525,"wires":[[]]},{"id":"809971767d09657c","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - laag - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_low"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1420,"y":480,"wires":[[]]},{"id":"6e4ecba18eb82bd7","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep (Off)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1575,"y":615,"wires":[[]]},{"id":"7796c675d9160253","type":"api-current-state","z":"edbfabe1c95de39e","name":"Zwift power <= 10","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"10","halt_if_type":"num","halt_if_compare":"lte","entity_id":"sensor.zwift_power_4431663","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":510,"y":570,"wires":[["a7741dbf5bc3514c"],[]]},{"id":"bd02c70091a1cf75","type":"comment","z":"edbfabe1c95de39e","name":"Zwift -> 60 sec. klaar met fietsen","info":"","x":130,"y":525,"wires":[]},{"id":"0aab647246bf633d","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1365,"y":615,"wires":[["6e4ecba18eb82bd7","1a5c8a878e4c05bb","65cdc652c5268632","b40948021496d9b8"]]},{"id":"65cdc652c5268632","type":"api-call-service","z":"edbfabe1c95de39e","name":"Verlichting kantoor Melloh spotjes (verl.) (OFF)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.kantoor_melloh_spotjes_groep"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1630,"y":705,"wires":[[]]},{"id":"b40948021496d9b8","type":"api-call-service","z":"edbfabe1c95de39e","name":"Kastje kantoor Melloh (verl.) (OFF)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.candle_gold"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":true,"outputProperties":[],"queue":"none","x":1600,"y":750,"wires":[[]]},{"id":"1a5c8a878e4c05bb","type":"api-call-service","z":"edbfabe1c95de39e","name":"Fototoestel verlichting - kantoor Melloh (verl.) (OFF)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.fototoestel_verlichting_kantoor_melloh"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1645,"y":660,"wires":[[]]},{"id":"ad26c0fb5fe7eee5","type":"api-current-state","z":"edbfabe1c95de39e","name":">=90: Zwift Fan - laag is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_low","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1130,"y":30,"wires":[[],["d8bb79bb2cee702a"]]},{"id":"d8bb79bb2cee702a","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - laag - On","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_low"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1405,"y":30,"wires":[["1be23e96e2aaa4d3"]]},{"id":"caee75668c74550a","type":"switch","z":"edbfabe1c95de39e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"125","vt":"num"},{"t":"btwn","v":"126","vt":"num","v2":"148","v2t":"num"},{"t":"btwn","v":"149","vt":"num","v2":"162","v2t":"num"},{"t":"btwn","v":"163","vt":"num","v2":"300","v2t":"num"}],"checkall":"true","repair":false,"outputs":4,"x":720,"y":180,"wires":[["4677c94a79578a7c","302ba3f6c4fafef5","e609251919d17ce9"],["dcd7f96935b35e4c"],["13f1d6fb1cd467cd"],["daebe235a4b83c87"]]},{"id":"4e732172cb0160ba","type":"api-current-state","z":"edbfabe1c95de39e","name":">=166: Zwift Fan - hoog is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_high","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1130,"y":390,"wires":[[],["2cb3667bfebfc878"]]},{"id":"2cb3667bfebfc878","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - hoog - On","server":"480f0ad4.89a784","version":5,"debugenabled":true,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_high"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1415,"y":390,"wires":[["5b797c12b845da7f"]]},{"id":"302ba3f6c4fafef5","type":"switch","z":"edbfabe1c95de39e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"90","vt":"num"},{"t":"lte","v":"89","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":915,"y":30,"wires":[["ad26c0fb5fe7eee5"],["8831c667a65c8690"]]},{"id":"4e11efd843d5ae82","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - laag - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_low"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1405,"y":75,"wires":[["6e452db052ab6a8a"]]},{"id":"8831c667a65c8690","type":"api-current-state","z":"edbfabe1c95de39e","name":"<=89: Zwift Fan - laag is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_low","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1130,"y":75,"wires":[["4e11efd843d5ae82"],[]]},{"id":"daebe235a4b83c87","type":"switch","z":"edbfabe1c95de39e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"163","vt":"num"},{"t":"lte","v":"162","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":910,"y":390,"wires":[["4e732172cb0160ba"],["4677c94a79578a7c"]]},{"id":"4677c94a79578a7c","type":"api-current-state","z":"edbfabe1c95de39e","name":"<=164: Zwift Fan - hoog is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_high","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1130,"y":435,"wires":[["fb90fc71926c6faa"],[]]},{"id":"fb90fc71926c6faa","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - hoog - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_high"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1415,"y":435,"wires":[["698ddccab3a74761"]]},{"id":"c0fce1f5e0092850","type":"api-current-state","z":"edbfabe1c95de39e","name":"Zwift heart rate >= 80","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"80","halt_if_type":"num","halt_if_compare":"gte","entity_id":"sensor.zwift_heart_rate_4431663","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":320,"y":180,"wires":[["d122ae79e84f0e65"],[]]},{"id":"94f2df0e10576ecc","type":"server-state-changed","z":"edbfabe1c95de39e","name":"Zwift cadance >=40","server":"480f0ad4.89a784","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.zwift_cadence_4431663","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"40","halt_if_type":"num","halt_if_compare":"gte","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":180,"wires":[["c0fce1f5e0092850"],[]]},{"id":"d122ae79e84f0e65","type":"function","z":"edbfabe1c95de39e","name":"Set text to number","func":"msg.payload = Number(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":180,"wires":[["caee75668c74550a"]]},{"id":"9dc8be5be983c0f4","type":"comment","z":"edbfabe1c95de39e","name":"Hartslag Zwift -> snelheid fan","info":"","x":130,"y":135,"wires":[]},{"id":"dcd7f96935b35e4c","type":"switch","z":"edbfabe1c95de39e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"138","vt":"num"},{"t":"lt","v":"138","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":910,"y":120,"wires":[["a3bbc646638c3005","2484ce2904ec705b"],["e609251919d17ce9"]]},{"id":"a3bbc646638c3005","type":"api-current-state","z":"edbfabe1c95de39e","name":">=152: Zwift Fan - middel is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_middel","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1140,"y":120,"wires":[[],["781e0c148f24db89"]]},{"id":"781e0c148f24db89","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - middel - On","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_middel"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1410,"y":120,"wires":[["a6d698c22514bbf7"]]},{"id":"644a1d52bd192224","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - middel - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_middel"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1415,"y":210,"wires":[["3488153aaaa35b15"]]},{"id":"e609251919d17ce9","type":"api-current-state","z":"edbfabe1c95de39e","name":"<=151: Zwift Fan - middel is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_middel","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1140,"y":210,"wires":[["644a1d52bd192224"],[]]},{"id":"7a3b351bf855ccef","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ rood (ON)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"{\"transition\":150.0,\"rgb_color\":[255,0,0],\"brightness_step_pct\":100}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1905,"y":390,"wires":[[]]},{"id":"7f54a54d6db363e9","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ groen (ON)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"{\"transition\":150.0,\"rgb_color\":[80,191,0],\"brightness_step_pct\":100}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1905,"y":30,"wires":[[]]},{"id":"90d9754a827b07ea","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ groen (Off)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1905,"y":75,"wires":[[]]},{"id":"9b9cb4c292497135","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"90","payloadType":"str","x":515,"y":255,"wires":[["caee75668c74550a"]]},{"id":"a0020fe4f2c2598b","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"155","payloadType":"str","x":515,"y":375,"wires":[["caee75668c74550a"]]},{"id":"8cf8b48d20bc45bf","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"168","payloadType":"str","x":515,"y":495,"wires":[["caee75668c74550a"]]},{"id":"cb1672e7658f0099","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"65","payloadType":"str","x":515,"y":225,"wires":[["caee75668c74550a"]]},{"id":"1be23e96e2aaa4d3","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1625,"y":30,"wires":[["7f54a54d6db363e9"]]},{"id":"6e452db052ab6a8a","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1625,"y":75,"wires":[["90d9754a827b07ea"]]},{"id":"a6d698c22514bbf7","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1620,"y":120,"wires":[["64899e8f6a10c0b0"]]},{"id":"5b797c12b845da7f","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1625,"y":390,"wires":[["7a3b351bf855ccef"]]},{"id":"698ddccab3a74761","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1625,"y":435,"wires":[["eb6ae63d70f91eb5"]]},{"id":"13f1d6fb1cd467cd","type":"switch","z":"edbfabe1c95de39e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"149","vt":"num"},{"t":"lt","v":"149","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":910,"y":255,"wires":[["9b4fe3e38fd1c3e6","33461e0c49692e27","b4442058633740a6"],[]]},{"id":"9b4fe3e38fd1c3e6","type":"api-current-state","z":"edbfabe1c95de39e","name":">=158: Zwift Fan - middel is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_middel","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1140,"y":255,"wires":[[],["4e1c28e152e4192e"]]},{"id":"4e1c28e152e4192e","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - middel - On","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_middel"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1410,"y":255,"wires":[["b65d0a28d3cc6bcc"]]},{"id":"b65d0a28d3cc6bcc","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1630,"y":255,"wires":[["8012554def7ca0fd"]]},{"id":"8012554def7ca0fd","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ paars (ON)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"{\"transition\":150.0,\"rgb_color\":[155, 0, 155],\"brightness_step_pct\":100}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1915,"y":300,"wires":[[]]},{"id":"64899e8f6a10c0b0","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ blauw (ON)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"{\"transition\":150.0,\"rgb_color\":[20,3,252],\"brightness_step_pct\":100}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1910,"y":165,"wires":[[]]},{"id":"e5748e388a21662b","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"140","payloadType":"str","x":515,"y":315,"wires":[["caee75668c74550a"]]},{"id":"df71d386a2d299ae","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"152","payloadType":"str","x":515,"y":345,"wires":[["caee75668c74550a"]]},{"id":"acf6dfd9e2b752d8","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"130","payloadType":"str","x":515,"y":285,"wires":[["caee75668c74550a"]]},{"id":"eb6ae63d70f91eb5","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ paars (ON)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"{\"transition\":150.0,\"rgb_color\":[155, 0, 155],\"brightness_step_pct\":100}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1915,"y":435,"wires":[[]]},{"id":"a1ba1a7cbf904734","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift verlichting groep - E14 WIZ groen (ON)","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.zwift_verlichting_groep_2"],"data":"{\"transition\":150.0,\"rgb_color\":[80,191,0],\"brightness_step_pct\":100}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"first","x":1920,"y":210,"wires":[[]]},{"id":"3488153aaaa35b15","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1630,"y":210,"wires":[["a1ba1a7cbf904734"]]},{"id":"1ed21a653465d3e5","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"159","payloadType":"str","x":515,"y":405,"wires":[["caee75668c74550a"]]},{"id":"251df908859f7fa4","type":"api-current-state","z":"edbfabe1c95de39e","name":"<=164: Zwift Fan - hoog is (aan)","server":"480f0ad4.89a784","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.fan_zwift_high","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1445,"y":345,"wires":[["fcbecb7ec82ee00e"],[]]},{"id":"fcbecb7ec82ee00e","type":"api-call-service","z":"edbfabe1c95de39e","name":"Zwift fan - hoog - Off","server":"480f0ad4.89a784","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.fan_zwift_high"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1715,"y":345,"wires":[[]]},{"id":"a3f9a0e8258b7be7","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"162","payloadType":"str","x":515,"y":435,"wires":[["caee75668c74550a"]]},{"id":"0051c17f4e31938e","type":"inject","z":"edbfabe1c95de39e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"163","payloadType":"str","x":515,"y":465,"wires":[["caee75668c74550a"]]},{"id":"33461e0c49692e27","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1075,"y":345,"wires":[["251df908859f7fa4"]]},{"id":"b4442058633740a6","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"700","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1070,"y":300,"wires":[["8012554def7ca0fd"]]},{"id":"2484ce2904ec705b","type":"delay","z":"edbfabe1c95de39e","name":"","pauseType":"delay","timeout":"700","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1070,"y":165,"wires":[["64899e8f6a10c0b0"]]},{"id":"480f0ad4.89a784","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Hey guys.

Please, please advice me if I’m not missing any instalation step.

  1. HACS → addon instalation
  2. in /config/configuration.yaml add
sensor:
  - platform: zwift
    username: !secret zwift_user
    password: !secret zwift_password
    players:
      - !secret zwift_yaro_user_id
  1. in /config/secrets.yaml add
zwift_yaro_user_id: 123456

# dummy zwift API account
zwift_user: [email protected]
zwift_password: ComplexPass
  1. HAAS restart

Did I miss any vital step? I belive I should see some sensor.zwift* entities in haas.lan:8123/config/entities page while there is none…

Also there no warnings nor errors in home assistant log (other than info that "custom integration zwift has not been tested by Home Assistant)…

I don’t make use of a secret.yaml file, but my configuration in my configuration.yaml is the following:

  • platform: zwift
    username: [registered e-mail address at Zwift]
    password: [Zwift password]

I don’t use players ID which you mentioned in your message.

1 Like

So… Apart from storing creds in the other file, I did everything correctly, right?
Any advices how to debug this integration?

In case you have other sensors in your configuration.yaml, it is good to give it a unique name, e.g.

sensor zwift:
  - platform: zwift
    username: !secret zwift_username
    password: !secret zwift_password
    players:
      - !secret zwift_friend_id

If you want to enable logging, try something like:

logger:
  default: info
  logs:
    custom_components.zwift.sensor: debug

Hey @badguy
I’m not sure what help. Your advices or full haas VM restart that I did by mistake :face_with_hand_over_mouth:. Probably the latest, but I would not bet on that just yet :slight_smile:
Regardless, thank you very much.

I’m curious how you guys implemented the fan integrations. Which fan do you guys use? Also someone who build his own kickr Climb using the gardient sensor?

I love you Fleshi!

that did the trick, i did not use the email adress! i used zwift user id?

I do see all zwift entities now in HA!!!
JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA / YESSSSSSSSSSSSSSSSSSSSS

that is what i intented to do…check www.bikechimps.de

First thing to do:
I will install a smart fan
second:
LEDS which change lights according to zones…
third thing to do will be the diy gradient change…i have one already done but i will think how to integrate it in ha…

I apologize for the delay here. I recognized that for some reason, the environment variable fix was not effective for all users. Thanks to some help from @clyra I was able to directly integrate the updated protobuf files into this library and patch the upstream library with them to keep this integration functional for everyone.

This has been updated in release v3.3.2. Please update your integration in HACS and please let me know if you continue to have issues!

cc: @bedee , @Fleshi , @tb1962 , @bikechimps , @SirYaro

1 Like

Hi @Tuttle, I know it’s been a while but I just saw your message today- this is unfortunately not possible because the current methods for integrating with the Zwift API is read only; there is no way for our integration to send information to the client.

Small bug in v3.3.2 was just fixed in v3.3.3:

Just found this and I’m eager to set it up for my zwifting setup.

However since there is no publically available API by Zwift and the zwift-mobile-api on which the client used here to connect to zwift (at least when looking into the requirements of the package) is based on, has a note about GDPR and a developer account I’m wondering how the data is pulled and whether it’s working with just a regular account. Is it OK for Zwift to use the “API”…or are we risking our Zwift Accounts here using unwanted endpoints from Zwift? Could you give a brief explanation on this snicker, would be much appreacted! Thank you so much for your work! :slight_smile:

I’ve not had any issues with it and the method that this library uses to interact with Zwift does not have any TOS violations.

I use the integration for more then 2 years without any problems. Still thumbs up for the creator of the integration :slightly_smiling_face:

1 Like

I’d like to have a sensor that reports total calories burnt on Zwift for the last week or even a rolling 7 day period.

What would you suggest would be the best way to do this?

Great integration btw. Automatic fans are on the todo list

1 Like

When the calories are published by the integration, you can make use of Apexcharts-chart but then you need to have installed HACS.