Yio Remote Community

OpenWeather integration

I added a weather integration using OpenWeather (https://openweathermap.org/). They offer a free access, sufficient for our needs.

Rain and snow is faked, to show the icons.

Config.json :

    "openweather":
    {
        "data":
        [
            {
                "friendly_name": "OpenWeather",
                "id": "openweather",
                "key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                "language": "de",
                "units": "metric",
                "log": "debug"
            }
        ]
    }

You can configure one ore more locations. The entity_id is the openweather location.

    "weather": [
        {
            "entity_id": "Vienna, AT",
            "supported_features": [],
            "friendly_name": "Wien",
            "integration": "openweather"
        }
    ],

@marton:

Please create a integration.openweather repository, I will push it there.

I am thinking when I should fetch data from the server. I do not fully understand the standby modes.
There is a normal standby and a wifi off mode. After wifi off a connect is initiated for all integratrions. But during normal standby the integration activity should also be reduced to save power. I propose to add standby on/off functions to the integrations similar to connect/disconnect.

1 Like

Poh! You are on fire m8 :ok_hand:

Thanks @ChristianRiedl! I haven’t seen your message just now, but I can see someone already created a repo for you.

When the user sets to turn off the wifi after some period of time. The remote disconnects all intergrations, to avoid timeout and connection errors.

During normal standby, the integrations are kept connected, because it could be the case that we want the remote to turn on when a specific event happens. However this functionality is not implemented yet. If we disconnect the integrations in standby mode, that could save power. Maybe it should be user configurable.

@marton

OK, I understand. As power consumption is a critical thing on the YIO, integrations using polling should increase their polling cycle during standby. Instead of connecting to StandbyControl I propose to add a standby on/off function to the integrationinterface. It remembers integration developers to save power.

As promised, I also updated the wiki entities chapter.

Shall I prepare a feature branch for the weather stuff ?

An option also could be to just turn off the integrations when in standby. Right now there are nothing that requires to wake the remote up. A logic could prevent the integrations to disconnect when for example watching a movie or listening to music, so you have immediate control over volume, etc. When nothing is playing, it will disconnect.

Please do prepare a branch @ChristianRiedl! Thank you.

@marton
I pushed the weather entities including the UI components I created. Additionally a small change in Logger to log the files in a separate directory, it is easier to clean.

In the entities.* entitiesinterface.h files I added the changes we allready discussed. The integrations should not use QObjects*, only interfaces. I also made some changes using the “optimized” config functions.

In config.* I removed 2 unused signals, and corrected wrong namings.

Thank you @ChristianRiedl!

Maybe for the logger we can think of a cleanup/log file rotation logic, so we don’t end up filling up the card.