home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.2k stars 30.22k forks source link

Steamist integration does not work with the newer 550 firmwares #69082

Closed brannonvann closed 2 years ago

brannonvann commented 2 years ago

The problem

While following the the instructions at https://www.home-assistant.io/integrations/steamist/, Home Assistant returns "Failed to connect" error in the UI after submitting my steamist host ip. Additionally, the auto discovery does not work.

To reproduce (integration setup steps):

  1. Browse to your Home Assistant instance.
  2. In the sidebar click on Configuration
  3. From the configuration menu select Integrations
  4. In the bottom right, click on the Add Integration button
  5. From the list, search and select “Steamist”.
  6. Enter steamist host IP. I entered plain IP: 192.168.2.101
  7. Observe error: Failed to connect

I tried adding the steamist app on my phone to control steamist controller and it connects as expected.

The log reveals the error below:

Logger: homeassistant.components.steamist.config_flow
Source: components/steamist/config_flow.py:165
Integration: Steamist ([documentation](https://www.home-assistant.io/integrations/steamist), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+steamist%22))
First occurred: 9:56:09 AM (1 occurrences)
Last logged: 9:56:09 AM

Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/steamist/config_flow.py", line 165, in async_step_user
    await Steamist(host, websession).async_get_status()
  File "/usr/local/lib/python3.9/site-packages/aiosteamist/__init__.py", line 65, in async_get_status
    data: dict = xmltodict.parse(await self._get(STATUS_ENDPOINT))
  File "/usr/local/lib/python3.9/site-packages/xmltodict.py", line 327, in parse
    parser.Parse(xml_input, True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0

What version of Home Assistant Core has the issue?

2022.3.8

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

steamist

Link to integration documentation on our website

https://www.home-assistant.io/integrations/steamist/

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Logger: homeassistant.components.steamist.config_flow
Source: components/steamist/config_flow.py:165
Integration: Steamist ([documentation](https://www.home-assistant.io/integrations/steamist), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+steamist%22))
First occurred: 9:56:09 AM (1 occurrences)
Last logged: 9:56:09 AM

Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/steamist/config_flow.py", line 165, in async_step_user
    await Steamist(host, websession).async_get_status()
  File "/usr/local/lib/python3.9/site-packages/aiosteamist/__init__.py", line 65, in async_get_status
    data: dict = xmltodict.parse(await self._get(STATUS_ENDPOINT))
  File "/usr/local/lib/python3.9/site-packages/xmltodict.py", line 327, in parse
    parser.Parse(xml_input, True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0

Additional information

No response

probot-home-assistant[bot] commented 2 years ago

steamist documentation steamist source (message by IssueLinks)

probot-home-assistant[bot] commented 2 years ago

Hey there @bdraco, mind taking a look at this issue as it has been labeled with an integration (steamist) you are listed as a code owner for? Thanks! (message by CodeOwnersMention)

bdraco commented 2 years ago

There isn't enough information to figure out what has gone wrong

Please post which model you are using

Please post the firmware version

Please turn on debug logs for aiosteamist and post the log

brannonvann commented 2 years ago

Model: 550 Firmware: 5.0.0 - This is a bit of a guess. I can't seem to find it on the control panel but the Steamist app reports as "device version: 5.00" perhaps that's the firmware version and not the hardware version. It claims to have the latest firmware.

Here are the steamist related debug logs...

2022-04-01 17:05:06 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [547816639936] Sending {"id":82,"type":"result","success":true,"result":{"resources":{"component.agent_dvr.title":"Agent DVR","component.hisense_aehw4a1.title":"Hisense AEH-W4A1","component.cast.title":"Google Cast","component.ovo_energy.title":"OVO Energy","component.yeelight.title":"Yeelight","component.keenetic_ndms2.title":"Keenetic NDMS2 Router","component.somfy_mylink.title":"Somfy MyLink","component.wled.title":"WLED","component.vilfo.title":"Vilfo Router","component.screenlogic.title":"Pentair ScreenLogic","component.yale_smart_alarm.title":"Yale Smart Living","component.zerproc.title":"Zerproc","component.wemo.title":"Belkin WeMo","component.spider.title":"Itho Daalderop Spider","component.directv.title":"DirecTV","component.flick_electric.title":"Flick Electric","component.azure_event_hub.title":"Azure Event Hub","component.acmeda.title":"Rollease Acmeda Automate","component.sharkiq.title":"Shark IQ","component.nest.title":"Nest","component.ezviz.title":"Ezviz","component.cpuspeed.title":"CPU Speed","component.wilight.title":"WiLight","component.adguard.title":"AdGuard Home","component.cert_expiry.title":"Certificate Expiry","component.steamist.title":"Steamist","component.monoprice.title":"Monoprice 6-Zone Amplifier","component.home_connect.title":"Home Connect","component.rtsp_to_webrtc.title":"RTSPtoWebRTC","component.hvv_departures.title":"HVV Departures","component.mailgun.title":"Mailgun","component.garages_amsterdam.title":"Garages Amsterdam","component.vizio.title":"VIZIO SmartCast","component.izone.title":"iZone","component.vicare.title":"Viessmann ViCare","component.netatmo.title":"Netatmo","component.xiaomi_miio.title":"Xiaomi Miio","component.simplisafe.title":"SimpliSafe","component.shopping_list.title":"Shopping List","component.doorbird.title":"DoorBird","component.twinkly.title":"Twinkly","component.prosegur.title":"Prosegur Alarm","component.aseko_pool_live.title":"Aseko Pool Live","component.gdacs.title":"Global Disaster Alert and Coordination System (GDACS)","component.sms.title":"SMS notifications via GSM-modem","component.gios.title":"GIO\u015a","component.ridwell.title":"Ridwell","component.picnic.title":"Picnic","component.homekit.title":"HomeKit","component.insteon.title":"Insteon","component.launch_library.title":"Launch Library","component.ifttt.title":"IFTTT","component.almond.title":"Almond","component.kulersky.title":"Kuler Sky","component.whois.title":"Whois","component.toon.title":"Toon","component.rainforest_eagle.title":"Rainforest Eagle","component.knx.title":"KNX","component.cloudflare.title":"Cloudflare","component.plugwise.title":"Plugwise","component.enphase_envoy.title":"Enphase Envoy","component.airly.title":"Airly","component.sleepiq.title":"SleepIQ","component.somfy.title":"Somfy","component.gpslogger.title":"GPSLogger","component.litejet.title":"LiteJet","component.forked_daapd.title":"forked-daapd","component.wiffi.title":"Wiffi","component.tado.title":"Tado","component.github.title":"GitHub","component.buienradar.title":"Buienradar","component.brunt.title":"Brunt Blind Engine","component.sentry.title":"Sentry","component.songpal.title":"Sony Songpal","component.venstar.title":"Venstar","component.intellifire.title":"IntelliFire","component.poolsense.title":"PoolSense","component.sonarr.title":"Sonarr","component.nfandroidtv.title":"Notifications for Android TV / Fire TV","component.iotawatt.title":"IoTaWatt","component.geofency.title":"Geofency","component.notion.title":"Notion","component.bmw_connected_drive.title":"BMW Connected Drive","component.zwave.title":"Z-Wave (deprecated)","component.mqtt.title":"MQTT","component.sia.title":"SIA Alarm Systems","component.dexcom.title":"Dexcom","component.atag.title":"Atag","component.totalconnect.title":"Total Connect","component.emonitor.title":"SiteSage Emonitor","component.meteoclimatic.title":"Meteoclimatic","component.vallox.title":"Vallox","component.crownstone.title":"Crownstone","component.radio_browser.title":"Radio Browser","component.volumio.title":"Volumio","component.ios.title":"Home Assistant iOS","component.broadlink.title":"Broadlink","component.fritzbox_callmonitor.title":"AVM FRITZ!Box Call Monitor","component.mikrotik.title":"Mikrotik","component.p1_monitor.title":"P1 Monitor","component.withings.title":"Withings","component.habitica.title":"Habitica","component.moehlenhoff_alpha2.title":"M\u00f6hlenhoff Alpha2","component.dialogflow.title":"Dialogflow","component.ipma.title":"Instituto Portugu\u00eas do Mar e Atmosfera (IPMA)","component.kodi.title":"Kodi","component.traccar.title":"Traccar","component.switcher_kis.title":"Switcher","component.oncue.title":"Oncue by Kohler","component.juicenet.title":"JuiceNet","component.minecraft_server.title":"Minecraft Server","component.lyric.title":"Honeywell Lyric","component.point.title":"Minut Point","component.tailscale.title":"Tailscale","component.ps4.title":"Sony PlayStation 4","component.gree.title":"Gree Climate","component.freebox.title":"Freebox","component.harmony.title":"Logitech Harmony Hub","component.airvisual.title":"AirVisual","component.lutron_caseta.title":"Lutron Cas\u00e9ta","component.hive.title":"Hive","component.fullykiosk.title":"Fully Kiosk Browser","component.dwains_dashboard.title":"Dwains Dashboard","component.flux_led.title":"Magic Home","component.waze_travel_time.title":"Waze Travel Time","component.flunearyou.title":"Flu Near You","component.tractive.title":"Tractive","component.lifx.title":"LIFX","component.subaru.title":"Subaru","component.isy994.title":"Universal Devices ISY994","component.esphome.title":"ESPHome","component.flume.title":"Flume","component.wallbox.title":"Wallbox","component.devolo_home_control.title":"devolo Home Control","component.recollect_waste.title":"ReCollect Waste","component.hlk_sw16.title":"Hi-Link HLK-SW16","component.plum_lightpad.title":"Plum Lightpad","component.rdw.title":"RDW","component.switchbot.title":"SwitchBot","component.nmap_tracker.title":"Nmap Tracker","component.homematicip_cloud.title":"HomematicIP Cloud","component.honeywell.title":"Honeywell Total Connect Comfort (US)","component.synology_dsm.title":"Synology DSM","component.nws.title":"National Weather Service (NWS)","component.iaqualink.title":"Jandy iAqualink","component.gogogate2.title":"Gogogate2 and ismartgate","component.solax.title":"SolaX Power","component.huisbaasje.title":"Huisbaasje","component.whirlpool.title":"Whirlpool Sixth Sense","component.verisure.title":"Verisure","component.system_bridge.title":"System Bridge","component.august.title":"August","component.sense.title":"Sense","component.ambee.title":"Ambee","component.aemet.title":"AEMET OpenData","component.local_ip.title":"Local IP Address","component.nut.title":"Network UPS Tools (NUT)","component.tasmota.title":"Tasmota","component.faa_delays.title":"FAA Delays","component.locative.title":"Locative","component.webostv.title":"LG webOS Smart TV","component.homekit_controller.title":"HomeKit Controller","component.mill.title":"Mill","component.watttime.title":"WattTime","component.upnp.title":"UPnP/IGD","component.dunehd.title":"Dune HD","component.upcloud.title":"UpCloud","component.islamic_prayer_times.title":"Islamic Prayer Times","component.growatt_server.title":"Growatt Server","component.climacell.title":"ClimaCell","component.asuswrt.title":"ASUSWRT","component.tibber.title":"Tibber","component.hyperion.title":"Hyperion","component.mutesync.title":"mutesync","component.pvoutput.title":"PVOutput","component.dlna_dmr.title":"DLNA Digital Media Renderer","component.rachio.title":"Rachio","component.azure_devops.title":"Azure DevOps","component.control4.title":"Control4","component.onewire.title":"1-Wire","component.aurora_abb_powerone.title":"Aurora ABB PowerOne Solar PV","component.pvpc_hourly_pricing.title":"Spain electricity hourly pricing (PVPC)","component.yamaha_musiccast.title":"MusicCast","component.home_plus_control.title":"Legrand Home+ Control","component.stookalert.title":"RIVM Stookalert","component.devolo_home_network.title":"devolo Home Network","component.canary.title":"Canary","component.arcam_fmj.title":"Arcam FMJ Receivers","component.xbox.title":"Xbox","component.coronavirus.title":"Coronavirus (COVID-19)","component.androidtv.title":"Android TV","component.roomba.title":"iRobot Roomba and Braava","component.mullvad.title":"Mullvad VPN","component.flipr.title":"Flipr","component.elgato.title":"Elgato Light","component.opentherm_gw.title":"OpenTherm Gateway","component.kraken.title":"Kraken","component.twilio.title":"Twilio","component.syncthing.title":"Syncthing","component.apple_tv.title":"Apple TV","component.tile.title":"Tile","component.unifiprotect.title":"UniFi Protect","component.emulated_roku.title":"Emulated Roku","component.nina.title":"NINA","component.plex.title":"Plex Media Server","component.dynalite.title":"Philips Dynalite","component.zwave_me.title":"Z-Wave.Me","component.google_travel_time.title":"Google Maps Travel Time","component.fronius.title":"Fronius","component.plaato.title":"Plaato","component.elmax.title":"Elmax Cloud Setup","component.twentemilieu.title":"Twente Milieu","component.adax.title":"Adax","component.syncthru.title":"Samsung SyncThru Printer","component.met_eireann.title":"Met \u00c9ireann","component.nuki.title":"Nuki","component.netgear.title":"NETGEAR","component.fireservicerota.title":"FireServiceRota","component.ambient_station.title":"Ambient Weather Station","component.meteo_france.title":"M\u00e9t\u00e9o-France","component.awair.title":"Awair","component.icloud.title":"Apple iCloud","component.deconz.title":"deCONZ","component.zha.title":"Zigbee Home Automation","component.sma.title":"SMA Solar","component.sensibo.title":"Sensibo","component.axis.title":"Axis","component.modern_forms.title":"Modern Forms","component.airnow.title":"AirNow","component.logi_circle.title":"Logi Circle","component.openuv.title":"OpenUV","component.fivem.title":"FiveM","component.glances.title":"Glances","component.unifi.title":"UniFi Network","component.smartthings.title":"SmartThings","component.open_meteo.title":"Open-Meteo","component.wiz.title":"WiZ","component.huawei_lte.title":"Huawei LTE","component.geonetnz_quakes.title":"GeoNet NZ Quakes","component.omnilogic.title":"Hayward Omnilogic","component.litterrobot.title":"Litter-Robot","component.airthings.title":"Airthings","component.spotify.title":"Spotify","component.profiler.title":"Profiler","component.mazda.title":"Mazda Connected Services","component.velbus.title":"Velbus","component.daikin.title":"Daikin AC","component.starline.title":"StarLine","component.squeezebox.title":"Logitech Squeezebox","component.ozw.title":"OpenZWave (deprecated)","component.smappee.title":"Smappee","component.fritz.title":"AVM FRITZ!Box Tools","component.modem_callerid.title":"Phone Modem","component.tolo.title":"TOLO Sauna","component.mysensors.title":"MySensors","component.elkm1.title":"Elk-M1 Control","component.xiaomi_aqara.title":"Xiaomi Gateway (Aqara)","component.co2signal.title":"CO2 Signal","component.philips_js.title":"Philips TV","component.fjaraskupan.title":"Fj\u00e4r\u00e5skupan","component.overkiz.title":"Overkiz (by Somfy)","component.samsungtv.title":"Samsung Smart TV","component.rituals_perfume_genie.title":"Rituals Perfume Genie","component.aussie_broadband.title":"Aussie Broadband","component.openweathermap.title":"OpenWeatherMap","component.fritzbox.title":"AVM FRITZ!SmartHome","component.blebox.title":"BleBox devices","component.guardian.title":"Elexa Guardian","component.enocean.title":"EnOcean","component.ambiclimate.title":"Ambiclimate","component.forecast_solar.title":"Forecast.Solar","component.metoffice.title":"Met Office","component.ialarm.title":"Antifurto365 iAlarm","component.environment_canada.title":"Environment Canada","component.mjpeg.title":"MJPEG IP Camera","component.vesync.title":"VeSync","component.panasonic_viera.title":"Panasonic Viera","component.owntracks.title":"OwnTracks","component.coolmaster.title":"CoolMasterNet","component.hue.title":"Philips Hue","component.kostal_plenticore.title":"Kostal Plenticore Solar Inverter","component.tesla_wall_connector.title":"Tesla Wall Connector","component.efergy.title":"Efergy","component.senseme.title":"SenseME","component.hunterdouglas_powerview.title":"Hunter Douglas PowerView","component.pure_energie.title":"Pure Energie","component.geonetnz_volcano.title":"GeoNet NZ Volcano","component.nam.title":"Nettigo Air Monitor","component.pi_hole.title":"Pi-hole","component.advantage_air.title":"Advantage Air","component.luftdaten.title":"Sensor.Community","component.smarthab.title":"SmartHab","component.motioneye.title":"motionEye","component.flo.title":"Flo","component.brother.title":"Brother Printer","component.rainmachine.title":"RainMachine","component.tradfri.title":"IKEA TR\u00c5DFRI","component.aurora.title":"NOAA Aurora Sensor","component.speedtestdotnet.title":"Speedtest.net","component.foscam.title":"Foscam","component.smhi.title":"SMHI","component.renault.title":"Renault","component.freedompro.title":"Freedompro","component.amberelectric.title":"Amber Electric","component.dnsip.title":"DNS IP","component.tellduslive.title":"Telldus Live","component.vlc_telnet.title":"VLC media player via Telnet","component.nexia.title":"Nexia/American Standard/Trane","component.kmtronic.title":"KMtronic","component.upb.title":"Universal Powerline Bus (UPB)","component.bosch_shc.title":"Bosch SHC","component.nuheat.title":"NuHeat","component.youless.title":"YouLess","component.trafikverket_weatherstation.title":"Trafikverket Weather Station","component.smart_meter_texas.title":"Smart Meter Texas","component.nightscout.title":"Nightscout","component.version.title":"Version","component.solarlog.title":"Solar-Log","component.homewizard.title":"HomeWizard Energy","component.eafm.title":"Environment Agency Flood Gauges","component.blink.title":"Blink","component.ruckus_unleashed.title":"Ruckus Unleashed","component.abode.title":"Abode","component.goalzero.title":"Goal Zero Yeti","component.motion_blinds.title":"Motion Blinds","component.srp_energy.title":"SRP Energy","component.vera.title":"Vera","component.tplink.title":"TP-Link Kasa Smart","component.balboa.title":"Balboa Spa Client","component.life360.title":"Life360","component.epson.title":"Epson","component.hangouts.title":"Google Hangouts","component.uptimerobot.title":"UptimeRobot","component.onvif.title":"ONVIF","component.dlna_dms.title":"DLNA Digital Media Server","component.powerwall.title":"Tesla Powerwall","component.ring.title":"Ring","component.accuweather.title":"AccuWeather","component.roon.title":"RoonLabs music player","component.neato.title":"Neato Botvac","component.tuya.title":"Tuya","component.iss.title":"International Space Station (ISS)","component.solaredge.title":"SolarEdge","component.bsblan.title":"BSB-Lan","component.smarttub.title":"SmartTub","component.melcloud.title":"MELCloud","component.transmission.title":"Transmission","component.nzbget.title":"NZBGet","component.jellyfin.title":"Jellyfin","component.soma.title":"Soma Connect","component.risco.title":"Risco","component.goodwe.title":"GoodWe Inverter","component.evil_genius_labs.title":"Evil Genius Labs","component.lookin.title":"LOOKin","component.airtouch4.title":"AirTouch 4","component.econet.title":"Rheem EcoNet Products","component.progettihwsw.title":"ProgettiHWSW Automation","component.coinbase.title":"Coinbase","component.opengarage.title":"OpenGarage","component.wolflink.title":"Wolf SmartSet Service","component.shelly.title":"Shelly","component.konnected.title":"Konnected.io","component.rfxtrx.title":"RFXCOM RFXtrx","component.iqvia.title":"IQVIA","component.ondilo_ico.title":"Ondilo ICO","component.surepetcare.title":"Sure Petcare","component.dsmr.title":"DSMR Slimme Meter"}}}
2022-04-01 17:05:13 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [547816639936] Received {'type': 'frontend/get_translations', 'language': 'en', 'category': 'config', 'integration': 'steamist', 'id': 96}
2022-04-01 17:05:13 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [547816639936] Received {'type': 'frontend/get_translations', 'language': 'en', 'category': 'title', 'integration': 'steamist', 'id': 97}
2022-04-01 17:05:13 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [547816639936] Sending {"id":96,"type":"result","success":true,"result":{"resources":{"component.steamist.config.abort.already_configured":"Device is already configured","component.steamist.config.abort.already_in_progress":"Configuration flow is already in progress","component.steamist.config.abort.cannot_connect":"Failed to connect","component.steamist.config.abort.no_devices_found":"No devices found on the network","component.steamist.config.abort.not_steamist_device":"Not a steamist device","component.steamist.config.error.cannot_connect":"Failed to connect","component.steamist.config.error.unknown":"Unexpected error","component.steamist.config.flow_title":"{name} ({ipaddress})","component.steamist.config.step.discovery_confirm.description":"Do you want to setup {name} ({ipaddress})?","component.steamist.config.step.pick_device.data.device":"Device","component.steamist.config.step.user.data.host":"Host","component.steamist.config.step.user.description":"If you leave the host empty, discovery will be used to find devices."}}}
2022-04-01 17:05:13 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [547816639936] Sending {"id":97,"type":"result","success":true,"result":{"resources":{"component.steamist.title":"Steamist"}}}
2022-04-01 17:05:27 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [547746215200] Sending {"id":43,"type":"result","success":true,"result":{"resources":{"component.agent_dvr.title":"Agent DVR","component.hisense_aehw4a1.title":"Hisense AEH-W4A1","component.cast.title":"Google Cast","component.ovo_energy.title":"OVO Energy","component.yeelight.title":"Yeelight","component.keenetic_ndms2.title":"Keenetic NDMS2 Router","component.somfy_mylink.title":"Somfy MyLink","component.wled.title":"WLED","component.vilfo.title":"Vilfo Router","component.screenlogic.title":"Pentair ScreenLogic","component.yale_smart_alarm.title":"Yale Smart Living","component.zerproc.title":"Zerproc","component.wemo.title":"Belkin WeMo","component.spider.title":"Itho Daalderop Spider","component.directv.title":"DirecTV","component.flick_electric.title":"Flick Electric","component.azure_event_hub.title":"Azure Event Hub","component.acmeda.title":"Rollease Acmeda Automate","component.sharkiq.title":"Shark IQ","component.nest.title":"Nest","component.ezviz.title":"Ezviz","component.cpuspeed.title":"CPU Speed","component.wilight.title":"WiLight","component.adguard.title":"AdGuard Home","component.cert_expiry.title":"Certificate Expiry","component.steamist.title":"Steamist","component.monoprice.title":"Monoprice 6-Zone Amplifier","component.home_connect.title":"Home Connect","component.rtsp_to_webrtc.title":"RTSPtoWebRTC","component.hvv_departures.title":"HVV Departures","component.mailgun.title":"Mailgun","component.garages_amsterdam.title":"Garages Amsterdam","component.vizio.title":"VIZIO SmartCast","component.izone.title":"iZone","component.vicare.title":"Viessmann ViCare","component.netatmo.title":"Netatmo","component.xiaomi_miio.title":"Xiaomi Miio","component.simplisafe.title":"SimpliSafe","component.shopping_list.title":"Shopping List","component.doorbird.title":"DoorBird","component.twinkly.title":"Twinkly","component.prosegur.title":"Prosegur Alarm","component.aseko_pool_live.title":"Aseko Pool Live","component.gdacs.title":"Global Disaster Alert and Coordination System (GDACS)","component.sms.title":"SMS notifications via GSM-modem","component.gios.title":"GIO\u015a","component.ridwell.title":"Ridwell","component.picnic.title":"Picnic","component.homekit.title":"HomeKit","component.insteon.title":"Insteon","component.launch_library.title":"Launch Library","component.ifttt.title":"IFTTT","component.almond.title":"Almond","component.kulersky.title":"Kuler Sky","component.whois.title":"Whois","component.toon.title":"Toon","component.rainforest_eagle.title":"Rainforest Eagle","component.knx.title":"KNX","component.cloudflare.title":"Cloudflare","component.plugwise.title":"Plugwise","component.enphase_envoy.title":"Enphase Envoy","component.airly.title":"Airly","component.sleepiq.title":"SleepIQ","component.somfy.title":"Somfy","component.gpslogger.title":"GPSLogger","component.litejet.title":"LiteJet","component.forked_daapd.title":"forked-daapd","component.wiffi.title":"Wiffi","component.tado.title":"Tado","component.github.title":"GitHub","component.buienradar.title":"Buienradar","component.brunt.title":"Brunt Blind Engine","component.sentry.title":"Sentry","component.songpal.title":"Sony Songpal","component.venstar.title":"Venstar","component.intellifire.title":"IntelliFire","component.poolsense.title":"PoolSense","component.sonarr.title":"Sonarr","component.nfandroidtv.title":"Notifications for Android TV / Fire TV","component.iotawatt.title":"IoTaWatt","component.geofency.title":"Geofency","component.notion.title":"Notion","component.bmw_connected_drive.title":"BMW Connected Drive","component.zwave.title":"Z-Wave (deprecated)","component.mqtt.title":"MQTT","component.sia.title":"SIA Alarm Systems","component.dexcom.title":"Dexcom","component.atag.title":"Atag","component.totalconnect.title":"Total Connect","component.emonitor.title":"SiteSage Emonitor","component.meteoclimatic.title":"Meteoclimatic","component.vallox.title":"Vallox","component.crownstone.title":"Crownstone","component.radio_browser.title":"Radio Browser","component.volumio.title":"Volumio","component.ios.title":"Home Assistant iOS","component.broadlink.title":"Broadlink","component.fritzbox_callmonitor.title":"AVM FRITZ!Box Call Monitor","component.mikrotik.title":"Mikrotik","component.p1_monitor.title":"P1 Monitor","component.withings.title":"Withings","component.habitica.title":"Habitica","component.moehlenhoff_alpha2.title":"M\u00f6hlenhoff Alpha2","component.dialogflow.title":"Dialogflow","component.ipma.title":"Instituto Portugu\u00eas do Mar e Atmosfera (IPMA)","component.kodi.title":"Kodi","component.traccar.title":"Traccar","component.switcher_kis.title":"Switcher","component.oncue.title":"Oncue by Kohler","component.juicenet.title":"JuiceNet","component.minecraft_server.title":"Minecraft Server","component.lyric.title":"Honeywell Lyric","component.point.title":"Minut Point","component.tailscale.title":"Tailscale","component.ps4.title":"Sony PlayStation 4","component.gree.title":"Gree Climate","component.freebox.title":"Freebox","component.harmony.title":"Logitech Harmony Hub","component.airvisual.title":"AirVisual","component.lutron_caseta.title":"Lutron Cas\u00e9ta","component.hive.title":"Hive","component.fullykiosk.title":"Fully Kiosk Browser","component.dwains_dashboard.title":"Dwains Dashboard","component.flux_led.title":"Magic Home","component.waze_travel_time.title":"Waze Travel Time","component.flunearyou.title":"Flu Near You","component.tractive.title":"Tractive","component.lifx.title":"LIFX","component.subaru.title":"Subaru","component.isy994.title":"Universal Devices ISY994","component.esphome.title":"ESPHome","component.flume.title":"Flume","component.wallbox.title":"Wallbox","component.devolo_home_control.title":"devolo Home Control","component.recollect_waste.title":"ReCollect Waste","component.hlk_sw16.title":"Hi-Link HLK-SW16","component.plum_lightpad.title":"Plum Lightpad","component.rdw.title":"RDW","component.switchbot.title":"SwitchBot","component.nmap_tracker.title":"Nmap Tracker","component.homematicip_cloud.title":"HomematicIP Cloud","component.honeywell.title":"Honeywell Total Connect Comfort (US)","component.synology_dsm.title":"Synology DSM","component.nws.title":"National Weather Service (NWS)","component.iaqualink.title":"Jandy iAqualink","component.gogogate2.title":"Gogogate2 and ismartgate","component.solax.title":"SolaX Power","component.huisbaasje.title":"Huisbaasje","component.whirlpool.title":"Whirlpool Sixth Sense","component.verisure.title":"Verisure","component.system_bridge.title":"System Bridge","component.august.title":"August","component.sense.title":"Sense","component.ambee.title":"Ambee","component.aemet.title":"AEMET OpenData","component.local_ip.title":"Local IP Address","component.nut.title":"Network UPS Tools (NUT)","component.tasmota.title":"Tasmota","component.faa_delays.title":"FAA Delays","component.locative.title":"Locative","component.webostv.title":"LG webOS Smart TV","component.homekit_controller.title":"HomeKit Controller","component.mill.title":"Mill","component.watttime.title":"WattTime","component.upnp.title":"UPnP/IGD","component.dunehd.title":"Dune HD","component.upcloud.title":"UpCloud","component.islamic_prayer_times.title":"Islamic Prayer Times","component.growatt_server.title":"Growatt Server","component.climacell.title":"ClimaCell","component.asuswrt.title":"ASUSWRT","component.tibber.title":"Tibber","component.hyperion.title":"Hyperion","component.mutesync.title":"mutesync","component.pvoutput.title":"PVOutput","component.dlna_dmr.title":"DLNA Digital Media Renderer","component.rachio.title":"Rachio","component.azure_devops.title":"Azure DevOps","component.control4.title":"Control4","component.onewire.title":"1-Wire","component.aurora_abb_powerone.title":"Aurora ABB PowerOne Solar PV","component.pvpc_hourly_pricing.title":"Spain electricity hourly pricing (PVPC)","component.yamaha_musiccast.title":"MusicCast","component.home_plus_control.title":"Legrand Home+ Control","component.stookalert.title":"RIVM Stookalert","component.devolo_home_network.title":"devolo Home Network","component.canary.title":"Canary","component.arcam_fmj.title":"Arcam FMJ Receivers","component.xbox.title":"Xbox","component.coronavirus.title":"Coronavirus (COVID-19)","component.androidtv.title":"Android TV","component.roomba.title":"iRobot Roomba and Braava","component.mullvad.title":"Mullvad VPN","component.flipr.title":"Flipr","component.elgato.title":"Elgato Light","component.opentherm_gw.title":"OpenTherm Gateway","component.kraken.title":"Kraken","component.twilio.title":"Twilio","component.syncthing.title":"Syncthing","component.apple_tv.title":"Apple TV","component.tile.title":"Tile","component.unifiprotect.title":"UniFi Protect","component.emulated_roku.title":"Emulated Roku","component.nina.title":"NINA","component.plex.title":"Plex Media Server","component.dynalite.title":"Philips Dynalite","component.zwave_me.title":"Z-Wave.Me","component.google_travel_time.title":"Google Maps Travel Time","component.fronius.title":"Fronius","component.plaato.title":"Plaato","component.elmax.title":"Elmax Cloud Setup","component.twentemilieu.title":"Twente Milieu","component.adax.title":"Adax","component.syncthru.title":"Samsung SyncThru Printer","component.met_eireann.title":"Met \u00c9ireann","component.nuki.title":"Nuki","component.netgear.title":"NETGEAR","component.fireservicerota.title":"FireServiceRota","component.ambient_station.title":"Ambient Weather Station","component.meteo_france.title":"M\u00e9t\u00e9o-France","component.awair.title":"Awair","component.icloud.title":"Apple iCloud","component.deconz.title":"deCONZ","component.zha.title":"Zigbee Home Automation","component.sma.title":"SMA Solar","component.sensibo.title":"Sensibo","component.axis.title":"Axis","component.modern_forms.title":"Modern Forms","component.airnow.title":"AirNow","component.logi_circle.title":"Logi Circle","component.openuv.title":"OpenUV","component.fivem.title":"FiveM","component.glances.title":"Glances","component.unifi.title":"UniFi Network","component.smartthings.title":"SmartThings","component.open_meteo.title":"Open-Meteo","component.wiz.title":"WiZ","component.huawei_lte.title":"Huawei LTE","component.geonetnz_quakes.title":"GeoNet NZ Quakes","component.omnilogic.title":"Hayward Omnilogic","component.litterrobot.title":"Litter-Robot","component.airthings.title":"Airthings","component.spotify.title":"Spotify","component.profiler.title":"Profiler","component.mazda.title":"Mazda Connected Services","component.velbus.title":"Velbus","component.daikin.title":"Daikin AC","component.starline.title":"StarLine","component.squeezebox.title":"Logitech Squeezebox","component.ozw.title":"OpenZWave (deprecated)","component.smappee.title":"Smappee","component.fritz.title":"AVM FRITZ!Box Tools","component.modem_callerid.title":"Phone Modem","component.tolo.title":"TOLO Sauna","component.mysensors.title":"MySensors","component.elkm1.title":"Elk-M1 Control","component.xiaomi_aqara.title":"Xiaomi Gateway (Aqara)","component.co2signal.title":"CO2 Signal","component.philips_js.title":"Philips TV","component.fjaraskupan.title":"Fj\u00e4r\u00e5skupan","component.overkiz.title":"Overkiz (by Somfy)","component.samsungtv.title":"Samsung Smart TV","component.rituals_perfume_genie.title":"Rituals Perfume Genie","component.aussie_broadband.title":"Aussie Broadband","component.openweathermap.title":"OpenWeatherMap","component.fritzbox.title":"AVM FRITZ!SmartHome","component.blebox.title":"BleBox devices","component.guardian.title":"Elexa Guardian","component.enocean.title":"EnOcean","component.ambiclimate.title":"Ambiclimate","component.forecast_solar.title":"Forecast.Solar","component.metoffice.title":"Met Office","component.ialarm.title":"Antifurto365 iAlarm","component.environment_canada.title":"Environment Canada","component.mjpeg.title":"MJPEG IP Camera","component.vesync.title":"VeSync","component.panasonic_viera.title":"Panasonic Viera","component.owntracks.title":"OwnTracks","component.coolmaster.title":"CoolMasterNet","component.hue.title":"Philips Hue","component.kostal_plenticore.title":"Kostal Plenticore Solar Inverter","component.tesla_wall_connector.title":"Tesla Wall Connector","component.efergy.title":"Efergy","component.senseme.title":"SenseME","component.hunterdouglas_powerview.title":"Hunter Douglas PowerView","component.pure_energie.title":"Pure Energie","component.geonetnz_volcano.title":"GeoNet NZ Volcano","component.nam.title":"Nettigo Air Monitor","component.pi_hole.title":"Pi-hole","component.advantage_air.title":"Advantage Air","component.luftdaten.title":"Sensor.Community","component.smarthab.title":"SmartHab","component.motioneye.title":"motionEye","component.flo.title":"Flo","component.brother.title":"Brother Printer","component.rainmachine.title":"RainMachine","component.tradfri.title":"IKEA TR\u00c5DFRI","component.aurora.title":"NOAA Aurora Sensor","component.speedtestdotnet.title":"Speedtest.net","component.foscam.title":"Foscam","component.smhi.title":"SMHI","component.renault.title":"Renault","component.freedompro.title":"Freedompro","component.amberelectric.title":"Amber Electric","component.dnsip.title":"DNS IP","component.tellduslive.title":"Telldus Live","component.vlc_telnet.title":"VLC media player via Telnet","component.nexia.title":"Nexia/American Standard/Trane","component.kmtronic.title":"KMtronic","component.upb.title":"Universal Powerline Bus (UPB)","component.bosch_shc.title":"Bosch SHC","component.nuheat.title":"NuHeat","component.youless.title":"YouLess","component.trafikverket_weatherstation.title":"Trafikverket Weather Station","component.smart_meter_texas.title":"Smart Meter Texas","component.nightscout.title":"Nightscout","component.version.title":"Version","component.solarlog.title":"Solar-Log","component.homewizard.title":"HomeWizard Energy","component.eafm.title":"Environment Agency Flood Gauges","component.blink.title":"Blink","component.ruckus_unleashed.title":"Ruckus Unleashed","component.abode.title":"Abode","component.goalzero.title":"Goal Zero Yeti","component.motion_blinds.title":"Motion Blinds","component.srp_energy.title":"SRP Energy","component.vera.title":"Vera","component.tplink.title":"TP-Link Kasa Smart","component.balboa.title":"Balboa Spa Client","component.life360.title":"Life360","component.epson.title":"Epson","component.hangouts.title":"Google Hangouts","component.uptimerobot.title":"UptimeRobot","component.onvif.title":"ONVIF","component.dlna_dms.title":"DLNA Digital Media Server","component.powerwall.title":"Tesla Powerwall","component.ring.title":"Ring","component.accuweather.title":"AccuWeather","component.roon.title":"RoonLabs music player","component.neato.title":"Neato Botvac","component.tuya.title":"Tuya","component.iss.title":"International Space Station (ISS)","component.solaredge.title":"SolarEdge","component.bsblan.title":"BSB-Lan","component.smarttub.title":"SmartTub","component.melcloud.title":"MELCloud","component.transmission.title":"Transmission","component.nzbget.title":"NZBGet","component.jellyfin.title":"Jellyfin","component.soma.title":"Soma Connect","component.risco.title":"Risco","component.goodwe.title":"GoodWe Inverter","component.evil_genius_labs.title":"Evil Genius Labs","component.lookin.title":"LOOKin","component.airtouch4.title":"AirTouch 4","component.econet.title":"Rheem EcoNet Products","component.progettihwsw.title":"ProgettiHWSW Automation","component.coinbase.title":"Coinbase","component.opengarage.title":"OpenGarage","component.wolflink.title":"Wolf SmartSet Service","component.shelly.title":"Shelly","component.konnected.title":"Konnected.io","component.rfxtrx.title":"RFXCOM RFXtrx","component.iqvia.title":"IQVIA","component.ondilo_ico.title":"Ondilo ICO","component.surepetcare.title":"Sure Petcare","component.dsmr.title":"DSMR Slimme Meter"}}}

Here is a screenshot from the app.

IMG_3FC855B13903-1

bdraco commented 2 years ago

Can you post the output of http://<DEVICE_IP>/status.xml

aiosteamist doesn't have must in the way of debug logging so I might need to do an update with additional logging since it seems your firmware is likely different from the ones I have access to.

brannonvann commented 2 years ago

Nothing is returned - I get a "ERR_CONNECTION_REFUSED".

bdraco commented 2 years ago

Can you get some dumps of what the iOS app is doing to communicate with the device?

Something like this might work https://apps.apple.com/us/app/charles-proxy/id1134218562

brannonvann commented 2 years ago

Yes, i'm working on sniffing the traffic now to see what the app is doing. I'll post it as soon as i get it.

brannonvann commented 2 years ago

I haven't had any success. I tried capturing the network by running my iPhone through my proxy but i don't have the visibility i need. When i tried the app your recommended the steamist app doesn't find the device on the network. I tried turning off Charles Proxy, finding the device and then sending a command but none of the traffic from that app is captured in Charles Proxy. Any other ideas by chance?

bdraco commented 2 years ago

If you have an android device sometimes I have better luck with https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture&gl=US

brannonvann commented 2 years ago

Thank you but i don't have an android device. I've tried something else with no success.

bdraco commented 2 years ago

If you do manage to get dumps the API calls, I'm happy to try to add support for your firmware. Unfortunately there isn't much I can do without them

brannonvann commented 2 years ago

I put wireshark between my phone and the network and reviewed the connections and they were all UDP - no TCP connections. I captured all activity from app opening to starting and stopping the steam generator. Is that what you would expect? Given the presumed availability of and status xml doc I was expecting to see TCP communications.

brannonvann commented 2 years ago

I reached out to Steamist to see if I could get an official api document. Hopefully I'll hear back soon but in the meantime I have been able to control my 550 with some simple UDP commands. Here is the snippet of the code i was using in node.js. I was able to test the off command, preset 1, and preset 2 as well as request the status. Based on the wireshark sniffed "off" command i was able to decipher/guess at the others. These have been tested. Apparently the range goes 0-9 on the commands but I don't yet see any other functions from the other ones. Would be great if the integration supported these as services.


var status = Buffer.from('stdisc'); // STM 550 72F0 00000-D0-CD-02-A2-8AShower
var off = Buffer.from('stb3'); // Turn off Steamist
var on1 = Buffer.from('stb1'); // Turn on Steamist with preset 1
var on2 = Buffer.from('stb2'); // Turn on Steamist with preset 2

//sending command
client.send(on1, 30303, '192.168.2.101', function (error) {
  if (error) {
    client.close();
  } else {
    console.log('Command Sent');
  }
});
brannonvann commented 2 years ago

sorry to pile-on but I also wanted to add the different status responses based on the settings:

// preset 1 is on: STM 550 73F1145000-D0-CD-02-A2-8AShower
// preset 2 is on: STM 550 72F2145500-D0-CD-02-A2-8AShower
// unit is off:    STM 550 72F0 00000-D0-CD-02-A2-8AShower

I believe the 73F11450 part before the mac address is broken into:

Index Example Description
0-2 73F Unknown
3 0,1,2 Which profile is on. 0:0ff, 1: profile 1, 2: profile 2
4-7 1450 Time remaining in minutes:seconds 1450: 14 minutes, 50 seconds
bdraco commented 2 years ago

It looks like your firmware speaks a completely different protocol 🙈

I don't think I'll be able to add support since I don't have physical access to one that's similar.

I'm happy to review and accept PRs to home assistant and the lib if it's something you feel up to adding

brannonvann commented 2 years ago

I know it's quick and dirty but i just created a simple switch in HA to send UDP commands. The right way would be to develop the integration but I can't do that at the moment. I saw another ticket where someone else was having the same problem so I assume this probably affects everyone. The current steamist integration has 0 registered users so i'm not sure if anyone else if able to use this via the status.xml/leds.cgi but it needs to be updated. I'm curious how old your Firmware is? I saw they changed it a while back (2018) and it affected the control4 integration. I still haven't heard back from Steamist but will share if I get information.

For others also needing the simple solution, please post here/create a ticket so we know you are out there but here is the quick fix. Just need to update it with your IP.

configuration.yaml


switch:
  - platform: command_line
    switches:
      steam_shower:
        friendly_name: Steam Shower
        unique_id: 38652cf3-1da0-418d-a58e-60fa53af1212
        command_on: echo 'stb1' | nc -u -w1 192.168.2.101 30303
        command_off: echo 'stb3' | nc -u -w1 192.168.2.101 30303
bdraco commented 2 years ago

The firmware on mine is definitely pretty old. Probably pre 2018 AFAICT.

github-actions[bot] commented 2 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.