invalid input ‘unknown’

After updating the Home Assistant container, I noticed a lot of errors in the log. For example:

ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template<template=({{ (iif((states('sensor.s8_power') | float) > 42) ...
~
ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ iif( (states['sensor.t2_temperature'].state | float() ) >= ((states['climate.airco_slaapkamer'].attributes['temperature'] | float()) + (states['input_number.airco_off_delta'].state | float())) ) }}' but no default was specified

A quick google found this, so basically, don’t use float() but specify a default value, and use float(0) instead in your templates! Change that in \NAS\docker\homeassistant\config\configuration.yaml and any template used in your automations, restart Home Assistant and the errors are gone!

Have a nice day!

Home Assistant Asusrouter

Note to self: https://github.com/Vaskivskyi/ha-asusrouter/issues/993
If you can connect to the container, run pip show asusrouter and confirm that somehow it is not of version 1.21.0

pip show asusrouter

If you can connect to the container, try installing the dependency manually with pip install asusrouter==1.21.0. If you get any errors, post them here, please. Package installation issues might be related to the other custom integrations and their dependencies.

pip install asusrouter==1.21.0

Wifi to Zigbee

My wifi is not slow at all, but I started getting more and more connection problems from random devices. The solution for me was to replace some wifi devices with zigbee versions.

I started with adding a SMLIGHT SLZB-06 to my network. This is a Zigbee 3.0 to Ethernet USB WiFi Gateway Coordinator with PoE and it works with Home Assistant using ZHA or Zigbee2MQTT.
So I gave it a fixed IP address, and on my NAS, where Home Assistant is running in a Docker container, I installed eclipse-mosquitto and koenkk/zigbee2mqtt. Next I added the SMLIGHT SLZB-06 and MQTT integration in Home Assistant and everything started coming together and working like a charm.

First added devices were temperature and humidity sensors, Sonoff SNZB-02P and SNZB-02D. Next I started adding smart plugs Sonoff S60ZBTPF and IHOMECAM Smart power plugs, replacing my HomeWizard wifi energy sockets.

And guess what? With more devices on zigbee, my wifi is stable again and I get a lot more data out of my smart home!

That’s all folks!
Have a nice day…

Meet je stad! #1084

We are live!

the project: https://meetjestad.net/
info: https://meetjestad.net/node/1084
data: https://meetjestad.net/data/sensors_recent.php?sensor=1084&limit=12
json: https://meetjestad.net/data/?type=sensors&ids=1084&format=json&limit=1
Utrecht: https://meetjestad.net/index3.php?loc=Ut
RIVM: https://samenmeten.rivm.nl/dataportaal/sensor_dashboard.php?kit_id=MJS_1084#tabs-2

Of course I wanted to add the data to my own Home Assistant installation. For this I had to add some custom sensors to:
\\NAS\docker\homeassistant\config\configuration.yaml

rest:
  - resource: "https://meetjestad.net/data/?type=sensors&ids=1084&format=json&limit=1"
    scan_interval: 00:15:00
    sensor:
      - name: "mjs_1084_humidity"
        unique_id: mjs_1084_humidity
        value_template: '{{ (value_json[0].humidity | float) | round(1) }}'
        device_class: humidity
        state_class: measurement
        unit_of_measurement: "%"
        availability: '{{ ((value_json[0].humidity | float) >= 0) and ((value_json[0].humidity | float) <= 100) }}'
      - name: "mjs_1084_temperature"
        unique_id: mjs_1084_temperature
        value_template: '{{ (value_json[0].temperature | float) | round(1) }}'
        device_class: temperature
        state_class: measurement
        unit_of_measurement: "°C"
        availability: '{{ ((value_json[0].temperature | float) > -25) and ((value_json[0].temperature | float) < 100) }}'
      - name: "mjs_1084_pm25"
        unique_id: mjs_1084_pm25
        value_template: '{{ (value_json[0]["pm2.5"] | float) | round(0) }}'
        device_class: pm25
        state_class: measurement
        unit_of_measurement: "µg/m³"
        availability: '{{ ((value_json[0]["pm2.5"] | float) >= 0) and ((value_json[0]["pm2.5"] | float) < 50000) }}'
      - name: "mjs_1084_pm10"
        unique_id: mjs_1084_pm10
        value_template: '{{ (value_json[0].pm10 | float) | round(0) }}'
        device_class: pm10
        state_class: measurement
        unit_of_measurement: "µg/m³"
        availability: '{{ ((value_json[0].pm10 | float) >= 0) and ((value_json[0].pm10 | float) < 50000) }}'
      - name: "mjs_1084_battery_voltage"
        unique_id: mjs_1084_battery_voltage
        value_template: '{{ (value_json[0].supply | float) | round(2) }}'
        device_class: voltage
        state_class: measurement
        unit_of_measurement: V
      - name: "mjs_1084_timestamp"
        unique_id: mjs_1084_timestamp
        device_class: timestamp
        value_template: "{{ strptime( value_json[0].timestamp ~ '+00:00' , '%Y-%m-%d %H:%M:%S%z') }}"

* Please note some changes I made, compared to the instructions I found here. The following does not work:

value_template: '{{ (value_json[0].pm2.5 | float) }}'

I had to use:

value_template: '{{ (value_json[0]["pm2.5"] | float) | round(0) }}'

* I added the timestamp as a sensor as well, so I could see when the last data packet was transmitted. For the timestamp, the following did not quite work. It just gave me the UTC time:

value_template: "{{ value_json[0].timestamp | as_datetime | as_local }}"

So, I had to add some string manipulation to get the data in the correct timezone:

value_template: "{{ strptime( value_json[0].timestamp ~ '+00:00' , '%Y-%m-%d %H:%M:%S%z') }}"

* And to filter out invalid data, like temperature at -26 or pm at over 50k, I had to add some availability filters, like so:

availability: '{{ ((value_json[0].pm10 | float) >= 0) and ((value_json[0].pm10 | float) < 50000) }}'

That’s all folks…
Have a nice day!

Update HA docker container

So I installed Home Assistant on a Synology NAS, using the official instructions. Now, one of my HACS Integrations started complaining about an update, but it required a newer version of Home Assistant, which I was not receiving. After a long search I figured out that using the ‘stable’ tag would not give me any updates for Home Assistant. I would have to use ‘latest’…
Unfortunately, you cannot change this in the downloaded docker Image.

So, what to do? My system was running for a month and I did not want to lose my config and history/data. Simple solution; I downloaded a new Image with the correct settings and pointed a new Container to the same /config folder on my NAS.

Since the instructions on the Home Assistant website were not quite correct for my version of Synology DSM 7.2.2-72806 Update 3, below the updated steps:

Install Home Assistant Container

Continue reading Update HA docker container

Home Assistant Formuler Z11 Remote

As mentioned before, I started using Home Assistant to create my own smart home and as it goes, you start playing with other smart devices in the home. You connect lights, heating, tv, sound system, router, and, in my case, the Formuler Z11 box. You start with little scripts to turn everything on (or off) with a single button press, instead of having to grab three separate remotes. And then you find the Universal Remote Card… a remote control card, within Home Assistant!

Standard buttons for zapping and volume were added quickly, but the ‘Groups’ and ‘Guide’ buttons turned out to be a little bit more of a challenge. But… I got it working, and below is the how-to, if you want to add custom buttons for your android tv box in Home Assistant as well.

Continue reading Home Assistant Formuler Z11 Remote