2022-03-30 21:50:39 +02:00

2.3 KiB

title description ha_category ha_iot_class ha_release ha_domain ha_platforms ha_integration_type
Netio Instructions on how to integrate Netio switches into Home Assistant.
Switch
Local Polling 0.24 netio
switch
integration

The netio switch platform allows you to control your Netio Netio4, Netio4 All, and Netio 230B. These are smart outlets controllable through Ethernet and/or Wi-Fi that reports consumptions (Netio4all). This integration requires Telnet to be enabled on the Netio device.

To use Netio devices in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
switch:
  - platform: netio
    host: 192.168.1.43
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    outlets:
      1: Free
      2: TV
      4: Lamp

{% configuration %} host: description: "The IP address of your Netio plug, e.g., http://192.168.1.32." required: true type: string port: description: The port to communicate with the switch. required: true default: 1234 type: integer username: description: The username for your plug. required: true default: admin type: string password: description: The password for your plug. required: true type: string outlets: description: "List of all outlets. Consisting of a number and a name [No.]: [Name]." required: false type: list {% endconfiguration %}

To get pushed updates from the Netio devices, one can add this Lua code in the device interface as an action triggered on "Netio" "System variables updated" with an 'Always' schedule:

-- this will send socket and consumption status updates via CGI
-- to given address. Associate with 'System variables update' event
-- to get consumption updates when they show up

local address='ha:8123'
local path = '/api/netio/<host>'


local output = {}
for i = 1, 4 do for _, what in pairs({'state', 'consumption',
                        'cumulatedConsumption', 'consumptionStart'}) do
    local varname = string.format('output%d_%s', i, what)
    table.insert(output,
        varname..'='..tostring(devices.system[varname]):gsub(" ","|"))
end end

local qs = table.concat(output, '&')
local url = string.format('http://%s%s?%s', address, path, qs)
devices.system.CustomCGI{url=url}