Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS 16 broke functionality in Homekit #247

Closed
vskal opened this issue Sep 17, 2022 · 24 comments
Closed

iOS 16 broke functionality in Homekit #247

vskal opened this issue Sep 17, 2022 · 24 comments

Comments

@vskal
Copy link

vskal commented Sep 17, 2022

All tiles are misnamed after the update, they all display the name of the area.
Tried by renaming the tiles but the weather values do not pass trhough.

Could you please have a look !

@byna
Copy link

byna commented Sep 22, 2022

Same problem for me.
Is there a way we can help by activating logs or something?

@AdeTheux
Copy link

Yes, same. About 10 tiles with the local area name, and they all seem related to the temperature.

@Tomcraft1980
Copy link

Tomcraft1980 commented Dec 29, 2022

Same problem here. All sensors are name "Wetterdaten" after updating to iOS 16. Before I had the sensors named like "Coud Cover" or "Wind" or "UV Index".
Seems to be related to issue #234.

@naofireblade
Copy link
Owner

That’s a HomeKit problem I can’t do anything about. You could use the eve app or hide some sensors via the plug-in config

@lint2015
Copy link

lint2015 commented Jan 9, 2023

Same problem here. All sensors are name "Wetterdaten" after updating to iOS 16. Before I had the sensors named like "Coud Cover" or "Wind" or "UV Index".
Seems to be related to issue #234.

I found that the final releases of iOS 16 provide a fix for this issue. If you delete the name of each of the sensors that now have the same name, it will default back to the sensor name that weather-plus initially assigned to them. I managed to fix all my sensor names this way.

@Tomcraft1980
Copy link

Tomcraft1980 commented Jan 9, 2023

I am on iOS 16.2 and if I delete I see the default names as you said but if I leave the name field the name of the sensor fills out the name like before.
Where do you delete these names!?
P.S.: I am one of the unlucky ones who did the home structure update before it was pulled by apple and am now waiting for the final fix from apple.
P.P.S.: Do you use the nameNow parameter in the config?

@AdeTheux
Copy link

AdeTheux commented Jan 9, 2023

Same problem here. All sensors are name "Wetterdaten" after updating to iOS 16. Before I had the sensors named like "Coud Cover" or "Wind" or "UV Index".
Seems to be related to issue #234.

I found that the final releases of iOS 16 provide a fix for this issue. If you delete the name of each of the sensors that now have the same name, it will default back to the sensor name that weather-plus initially assigned to them. I managed to fix all my sensor names this way.

Thanks! That worked.
Clicking the "x" next to the accessory name, then typing something in worked for all sensors.

@Tomcraft1980
Copy link

Sure I can also rename them, but lint2015 said clicking the "x" would default back to the sensor name and this does not happen in my case.
Any suggestions?

@jens-vonberg
Copy link

It might be because the serial number is the same on all the sensors. When I overwrite the name, it sets them back to the station name immediately.

@naofireblade
Copy link
Owner

naofireblade commented Apr 16, 2023

It might be because the serial number is the same on all the sensors. When I overwrite the name, it sets them back to the station name immediately.

The serial number is the same because it is the same physical device. I could split up all sensors into different devices but that would result in 120 devices if you have 8 days and 15 sensors. Maybe as an option…

@steffmatj
Copy link

Hi!

thanks for the work on the plug-in!! I have the same issue with the labels not showing in iOS 16 HomeKit. Another plug-in found a solution to fix it.

They wrote the following in the release notes in the update that fixed it:

„Added Configured Name characteristic to the Switch, Stateless Programmable Switch, and Lightbulb services. This appears to be necessary for HomeKit on iOS 16 to show anything other than the accessory name without manually changing all of the names within the Home app.“

maybe you can look into it again and also try to fix it! Thank you!!

the plug-in is the following https://github.com/thoukydides/homebridge-homeconnect

best
Steff

@naofireblade
Copy link
Owner

Thanks. I will look into this.

This was referenced Jan 11, 2024
@dacarson
Copy link
Collaborator

dacarson commented Feb 8, 2024

Following the example mentioned above, it seems that we need to use ConfiguredName when updating the tile with the current value.

@dacarson
Copy link
Collaborator

dacarson commented Feb 8, 2024

When I fix the issue, you can't see the values for a number of the sensors because of the UI of the Home app. Similar issue in the Eve app. Open on ideas on how to improve this.
(Ignore the "Now" sensor, as that is my Tempest Weather Station.)

IMG_4925
IMG_4924
IMG_4923
IMG_4D12FFF996A9-1

naofireblade pushed a commit that referenced this issue Mar 18, 2024
* Add support to report failing Tempest sensors

Fix #279
Fully parse the sensor failure number, and log the failure.
Add support to report SensorFault to HomeKit. There are only two options, No failure or General Failure.

Tested by setting random numbers for message.sensor_status, and verifying that failures appeared in the log, and that Eve app reports general error to the user. Apple's Home app doesn't seem to expose Sensor Fault.

* Ignore other values from sensor_status

#279
While testing, I noticed that sometimes my Tempest unit would have values in the sensor_status that are not documented. The documentation does say to ignore them.

* Update Tile text with value

#247
The value for unsupported fields were being reported in the title of a sensor. It seems this functionality broke in iOS 16, when they changed the behaviour of Characteristic.Name. To fix this, we need to use Characteristic.ConfiguredName.

* Drop duplicate messages

Seeing duplicate UDP messages events, though duplicates are not appearing on the wire/network. Duplicate messages are a problem for rain totals, as the rain amount is added twice.
Add some code to drop duplicate messages.

* Add Openweather Sunrise & Sunset support

#240 Sunrise/Sunset
Openweather API 2.5 has Sunrise and Sunset values. This patch adds support for it.
I also saw that 3.0 API also has support for it for the current conditions. This patch also adds support for that too.

* Update config.schema.json

Fix for #122

* Add Tempest forecast support

Add the support for Tempest weather station forecasts. The weather station broadcasts new current conditions each minute so the refresh interval is hardcoded to 1 minute. However forecasts don't update that frequently, so I have forecast updating each hour.

* Improve error reporting for OpenWeatherMap fails

To help diagnose #282 and to help with general debugging,  log not just the result but the error when OpenWeatherMap fails to load the URL.

* Add light level history

Fix #287
Through fakegato "custom" history support, the light level (lux) history is now supported.
Adjust history logging to include light level.

Tested with Tempest weather station and OpenWeatherMap V2.5 API (that does *not* include light level).

* Remove unsupported Yahoo weather.

#45
Yahoo doesn't provide weather information anymore. Support for the Yahoo weather service has been removed, so remove the api file.

Update the packages.json file, remove yahoo. Add the company that makes the Tempest weather station, Weatherflow.

* Add better error handling to Weather Underground.

Debug #246
Add a check to see if WeatherUnderground it returning correctly, but the PWS is offline.

* Increase maximum UV Index value

Australia's outback has higher UV Index values than 12. I see it hit 13 at times.

* Add rain sensor for weather underground

Fix: #112
Add support for the rain sensor (RainBool). If the current precipitation rate is greater than zero, then it is raining.

Also, always use metric values. Conversion from metric to desired unit happens during rendering the value.

Tested with both an offline PWS and online PWS.

* Report values even for sensor failed

Fix #288
Even if the sensor has been reported as failed, it has been observed that values may still be good. As the values could be out of range, don't use them for calculations.

* Calculate values only if numbers in range

#285 Patch feedback. Calculate the calculated values only if temperature and humidity values are within range. The values may be out of range if the sensors have failed.

* Log sensor failures once an hour

#285. Patch feedback
Log is spammed if a sensor fails, so only log once every hour.

Also, don't need to track Temperature and Humidity sensor failures specifically anymore as calculations are bounds checked.

* Revert "Log sensor failures once an hour"

This reverts commit e8ca350.

* Log sensor failures once an hour

#285. Patch feedback
Log is spammed if a sensor fails, so only log once every hour. As sensor status for AIR unit could be ok, but the sensor status for SKY unit be bad, I need to track sensor logging separately. I also overload the AIR unit to report Tempest unit data.

Also, don't need to track Temperature and Humidity sensor failures specifically anymore as calculations are bounds checked.

* Fix forecasts to be error resilient

#285  Patch feedback
Fix crash when the apiKey and/or stationId is missing. Use the lastForecastUpdate variable to indicate if we have valid parameters at all. If they are not set, don't define the variable, and as such never attempt to fetch a forecast. This is a valid configuration so I don't log this state.
If invalid apiKey and/or stationId is used, then the URL request will fail with a response code other than 200 (OK). If that happens, fail with an error. This error will get logged. As the forecast is only fetched every hour, this error will only appear once an hour and won't spam the logs.

* Sensor error string format

#285  Patch feedback
Add better formatting for sensor error logs, so that each failing sensor is comma delimited.
Also fix range checking for calculated values, allow temperatures to be between -100 to +100 degC.

* Fix battery reporting for AIR/SKY

#285  Patch feedback
Move battery reporting/handling to one place, in the observation messages. Tempest handling was already correct. Add reporting for AIR/SKY battery level. As the levels can be different but we only have one battery value we can report, report the lowest one.
Change AIR/SKY battery percentage calculator to be the same as Tempest.

* AIR/SKY battery level never goes up

I should not compare to the previous reported value, as it will never increase. I need to compare Sky battery with Air battery and vice versa when determining the lowest value to report.

* Increase robustness of Forecast

Patch feedback #285
Even though the server says it returned forecast ok with a 200 OK status code, parsing sometimes fails and crashes. Catch this error and print it out if it happens, including the full received result and the parse error.

* Forecast not updating

Patch feedback #285
Forecast wasn't updating when it clocked over to the new year. The code was testing for an undefined variable incorrectly.

* Forecast said there will be rain when there won't be

Patch feedback #285
Should not use the precipitation icons for snow and rain state as the chance precipitation can be zero, but there are still icons.
Instead do the same as OpenWeatherMap, normalize the conditions to the condition details numbered values, then check to see if there will be rain or snow.

* Fix crash when Wunderground server unreachable

There could be no response object if the internet and/or weather underground server is not reachable. So before trying to read the response from the server, make sure that there is a response.

* Fix today's forecast

Today's forecast isn't sent after around 11pm.
To detect this, make sure that the current month day is the same as the month day of the forecast. If they are different, then offset the forecasts.
Save the current day forecast, so that when it is not available, the last forecast can be inserted into the forecasts array.
@dacarson
Copy link
Collaborator

Can you please try 3.3.4-beta.1 and verify that it works.

@Tomcraft1980
Copy link

After update to the final version 3.3.4 all the misnamed occupancy sensors disappeared.
Is this intentionally?
How can I gett the occupancy sensors back?

@dacarson
Copy link
Collaborator

It sounds like the same issue as #291
I am looking into it.

@dacarson
Copy link
Collaborator

dacarson commented May 8, 2024

I did cause the sensors to disappear. I fixed them in 3.3.5.

@Tomcraft1980
Copy link

Tomcraft1980 commented May 8, 2024

Thanks!
Can you publish it to npmjs.com so that we can update the plugin?

@dacarson
Copy link
Collaborator

dacarson commented May 8, 2024

@naofireblade can you help with publishing?

@Tomcraft1980
Copy link

Still not published to npmjs.org, so it is not possible to update the plugin via Homebridge UI.

@naofireblade
Copy link
Owner

Done

@Tomcraft1980
Copy link

Tomcraft1980 commented May 15, 2024

Thanks!
The occupancy sensors are now named correctly with version 3.3.5! Good job!

@dacarson
Copy link
Collaborator

Closing as it sounds like it is fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants