New Netatmo binding (starting OH 3.3 M5)

You have to create a home bridge between thr account bridge and the camera thing.
Look at the documentation, you have sn example.

Since today the binding throws an error when Iā€™m trying to change the monitoring status of my presence and all the bridges and Netatmo devices go offline. Anyone else experiencing the same behaviour?


2022-07-05 08:32:24.070 [DEBUG] [handler.capability.RefreshCapability] - Module refreshed, next one in 180 s
2022-07-05 08:32:32.884 [TRACE] [mo.internal.handler.ApiBridgeHandler] - executeUri POST  http://169.254.202.186/d90314498cfdc90f1847f95bb08630cc/command/changestatus?status=on 
2022-07-05 08:32:32.889 [DEBUG] [mo.internal.handler.ApiBridgeHandler] - Request timedout, retry counter : 3
2022-07-05 08:32:32.890 [TRACE] [mo.internal.handler.ApiBridgeHandler] - executeUri POST  http://169.254.202.186/d90314498cfdc90f1847f95bb08630cc/command/changestatus?status=on 
2022-07-05 08:32:32.898 [DEBUG] [mo.internal.handler.ApiBridgeHandler] - Request timedout, retry counter : 2
2022-07-05 08:32:32.898 [TRACE] [mo.internal.handler.ApiBridgeHandler] - executeUri POST  http://169.254.202.186/d90314498cfdc90f1847f95bb08630cc/command/changestatus?status=on 
2022-07-05 08:32:32.905 [DEBUG] [mo.internal.handler.ApiBridgeHandler] - Request timedout, retry counter : 1
2022-07-05 08:32:32.905 [TRACE] [mo.internal.handler.ApiBridgeHandler] - executeUri POST  http://169.254.202.186/d90314498cfdc90f1847f95bb08630cc/command/changestatus?status=on 
2022-07-05 08:32:32.911 [WARN ] [andler.capability.SecurityCapability] - Error changing camera monitoring status 'true' : java.util.concurrent.ExecutionException: "java.net.SocketException: Network is unreachable"
2022-07-05 08:32:32.911 [DEBUG] [tatmo.internal.handler.DeviceHandler] - bridgeStatusChanged for bridge netatmo:home:b39ee523bd:62b748e4f51b0c0a717dd7ca to OFFLINE (COMMUNICATION_ERROR): @text/request-time-out
2022-07-05 08:32:32.925 [DEBUG] [tatmo.internal.handler.ModuleHandler] - bridgeStatusChanged for thing netatmo:presence:b39ee523bd:62b748e4f51b0c0a717dd7ca:70ee5071a89c to OFFLINE (BRIDGE_OFFLINE)
2022-07-05 08:32:32.927 [DEBUG] [tatmo.internal.handler.ModuleHandler] - bridgeStatusChanged for thing netatmo:doorbell:b39ee523bd:62b748e4f51b0c0a717dd7ca:70ee50905382 to OFFLINE (BRIDGE_OFFLINE)

Network is reachable in general of course but the api seems to be unreachable. However when I disable and enable the bridge it comes back online so the api is definitely not down.

Is the IP from the request valid?

I donā€™t know. All I can say is that it is no local IP in my network and no docker defined network.

thank you so much. Completely missed that :frowning: apologies for that

Tsss, did not see that I have to use another bridge for the cameraā€¦
But now it all works fine, thanks a lot for pointing in the right direction!

Ok now thatā€™s interesting: I can change the floodlight mode without problems. Only changing the monitoring state will cause this error. Yesterday this worked as well.

Already tried to delete and recreate the presence thing but itā€™s still the same. I have no idea where this IP comes fromā€¦

EDIT: Digging deeper I see the following statements in the logs:


2022-07-05 12:30:11.862 [TRACE] [mo.internal.handler.ApiBridgeHandler] - executeUri returned : code [200 OK] body {"local_url":"http://169.254.202.186/d90314498cfdc90f1847f95bb08630cc","product_name":"Welcome Netatmo"}

Two things are strange: I donā€™t know this IP. I donā€™t own a welcome camera.

Still no idea what is going onā€¦

EDIT2: Ok this seems annoying but I got it fixed by rebooting the cam. I suspect that something goes wrong when it looses wifi connection (my wife shuts down wifi during the night). However like all other devices on my network the cam came back online but apparently reported the wrong local IP (maybe some factory default).

A lot of TCP-Stacks assign an adress of the network 169.254.x.x if the DHCP is not reachable. So an address like this suggest connectivity issues.

Thanks for your input. I guess that means that Iā€™m probably right. While the wifi was down the adapter went back to its default and though it got a new dhcp lease when wifi came back in the morning it still reported the old IP for some reason (I guess this might also be a cached value on Netatmo side). Maybe the guys at Netatmo never expected the camera to loose wifi connection for a longer period, however that would be a bit strangeā€¦ letā€™s see, maybe this was a one time failure. I donā€™t want to go to the fuse box every morning to get the camera going again :wink:

Well I will put an additional access point in the garden soon anyway. This AP will stay on all night and should therefore fix this issue.

I had the same issue. Netatmo-app was unhappy about the frequent disconnects/connects, so I also placed a dedicated AP that handles my 2 Outdoor Presence-Cameras.

Iā€™m struggling with the .things configuration for a Healthy Home Coach device in OH 3.3.0. What I have now:

Bridge netatmo:account:home [ clientId="******", clientSecret="******", refreshToken="******"]
{
    Thing home-coach livingroom "Netatmo Livingroom" @ "Livingroom" [ id="70:EE:50:25:E2:26" ] {
        Channels:
            Type temp-measurement : NHCTemp [period="30min"]
    }
}

This gives me the following error for the Homecoach device in event.log:

[INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'netatmo:account:home' changed from UNKNOWN to ONLINE
[INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'netatmo:home-coach:home:livingroom' changed from OFFLINE (BRIDGE_OFFLINE) to UNKNOWN

And in openhab.log:

[DEBUG] [mo.internal.handler.ApiBridgeHandler] - Initializing Netatmo API bridge handler.
[INFO ] [etatmo.internal.servlet.GrantServlet] - Registered Netatmo servlet at '/netatmo/connect/588a0fb529977e6b7f8b49de'
[DEBUG] [mo.internal.handler.ApiBridgeHandler] - Connecting to Netatmo API.
[DEBUG] [tatmo.internal.handler.ModuleHandler] - Initializing handler for thing netatmo:home-coach:home:livingroom
[DEBUG] [tatmo.internal.handler.ModuleHandler] - bridgeStatusChanged for thing netatmo:home-coach:home:livingroom to ONLINE
[WARN ] [handler.capability.AirCareCapability] - Error retrieving home-coach data '70:EE:50:25:E2:26' : Rest call failed: statusCode=DEVICE_NOT_FOUND, message=Device not found
[DEBUG] [handler.capability.RefreshCapability] - Module is not ONLINE; special refresh interval is used
[DEBUG] [handler.capability.RefreshCapability] - Module refreshed, next one in 900 s

The Device not found message gives a clue, but I donā€™t know how to fix. In the App on my phone the device is working fine and the old setup in OH 2.5 also worked fine.

Do I have to setup the callback and expose OpenHAB? Iā€™m not sure from the documentation what the purpose of the webhook is. In the old version I never used that.

The webhook is only for security related devices (cameras and so onā€¦) so nothing to do with Health Coach.
Can you try to use the auto discovery to see what differences can exist between you file declared device and the discovered one ?
Tip : if youā€™re sure of your mac address, could you try it lower case ?

UPDATE: I missed your last remark: changing to lowercase MAC-address worked!

Scanning for the Home Coach device workedā€¦

So I tried again (after removing the Things and restarting OH) by adding the Bridge/Account and then manually, in the UI, adding the device with itā€™s MAC-address. Same result as using the .things file: status is ā€˜UNKNOWNā€™. Only when scanning for a device it can be brought ONLINE.

There must be some difference in handling scanned devices and manually added devices.
The configuration in the UI looks exactly the same, except for the Thing status of the Healthy Home Coach.

UID: netatmo:home-coach:home:70ee5025e226
label: NHC Livingroom
thingTypeUID: netatmo:home-coach
configuration:
  id: 70:EE:50:25:E2:26
bridgeUID: netatmo:account:home
location: Livingroom
channels:
  - id: LRNHCTemp
    channelTypeUID: netatmo:temp-measurement
    label: temp measurement
    description: null
    configuration:
      limit: MIN
      period: 30min

I have a few channels working now but I donā€™t understand how to put the ā€˜pressureā€™ channel in the .things definition. This works for the first two channels, but the others stay NULL (but show ā€˜ONLINEā€™) and the last one gives an error ā€˜channel type netatmo:pressure could not be resolved.ā€™.

    Thing home-coach livingroom "NHC Livingroom" @ "Livingroom" [ id="70:ee:50:25:e2:26" ] {
        Channels:
            Type temp-measurement : LRNHCTemp [period="30min"]
            Type hum-measurement : LRNHCHum [period="30min"]
            Type co2 : LRNHCCO2
            Type noise : LRNHCNoise
            Type pressure : LRNHCPress
    }

The table for the Home Coach is a bit unclear for me. For example:

Channel Group Channel Id Item Type Description
noise value Number:Dimensionless Current noise level
humidity value Number:Dimensionless Current humidity
humidity humidex Number Computed Humidex index
humidity humidex-scale Number Humidex index appreciation
pressure value Number:Pressure Current pressure

Gives the same Channel Id for different channels (value).

I tried:

{
    Thing home-coach livingroom "NHC Livingroom" @ "Livingroom" [ id="70:ee:50:25:e2:26" ] {
        Channels:
            Type temp-measurement : LRNHCTemp [period="30min"]
            Type hum-measurement : LRNHCHum [period="30min"]
            Type co2-measurement : LRNHCCO2
            Type noise-measurement : LRNHCNoise
            Type pressure-measurement : LRNHCPress
    }
}

Now co2-measurement, noise-measurement, and pressure-measurement give actual values from the binding but Iā€™m not sure what they represent because not all are mentioned in the tables for the Home Coach device. Are these average values over a period?

What I am looking for is what to specify in the .things file for the following measurements:

Channel Group Channel Id Item Type Description
noise value Number:Dimensionless Current noise level
humidity value Number:Dimensionless Current humidity
pressure value Number:Pressure Current pressure
temperature value Number:Temperature Current temperature
airquality co2 Number:Dimensionless Air quality
timestamp last-seen DateTime Last time the module reported its presence

You have no channel to add, they are already provided with the thing. Look at the channels tab of your thing in MainUI.
Adding additionnal channels is only for specific features like for example getting the max temp during the last month.

2 Likes

If anyone is experiencing the same behaviour: I now managed to find a workaround but only if you have a UniFi network. When I reconnect the wireless client (the camera) via the unifi binding the camera can be controlled again after a couple of minutes. This will most likely also work with other network equipment but it may not be as easy to control via openHAB.

Is it possible that these events are currently swapped in the code?

<option value="ACCEPTED_CALL">Call is incoming</option>
<option value="INCOMING_CALL">Call has been answered by a user</option>

The netatmo documentation says:

incoming_call -> When a call is incoming
accepted_call -> When a call as been answered by a user
1 Like

Yes, it is possible!

Hi,
Iā€™m using the latest stable released version of the add-on (3.3.0) and everything works fine with the autoscan.
I would like to try to create the netatmo.things file but I am having difficulty: Iā€™m able to activate the account, but I canā€™t activate the house bridge and the objects below. Could you please help me?
I have a house setup like this:

Account Netatmo

  • Home: First Floor
    ā€“ Room: Dining Room
    ā€” Plug: Relay1
    ā€” Thermostat: Thermostat1
  • Home: Second Floor
    ā€“ Room: Bedroom
    ā€” Plug: Relay2
    ā€” Thermostat: Thermostat2
    ā€” Valve: Valve1
    ā€“ Room: Office
    ā€” Valve: Valve2
    ā€“ Room: BathroomUp
    ā€” Valve: Valve3
1 Like