Australia - Electrically Certified Hardware

Yep. The temperature sensor for the heat pump is just poked in to the insulation near the outlet, so it would be no problem to add another one near by.

The PM reports energy use. Usually less than 3 kWh for my 250L tank.

The Sanden is only 1000w so a bit over 4A. It has the ability to turn off for certain hours built in but I had the sparky install a Shelley 1pm (rated at 15A) for power monitoring.

I want to do the same for a EV charger which draws 3100W (so around 13.5A) plugged in to a 15A outlet. Would a 1PM be ok there for both switching and power monitoring

Yeah likewise.

Hmm. I wouldnā€™t like to say. Send Shelly support an email.

Iā€™ve hooked up my hotwater system with a custom relay connected into my fronius inverter, itā€™s triggered when iā€™m exporting more than XXXX watts, and itā€™s set to go on for 90min by 3:30pm if we havenā€™t yet received that much time (on cloudy days etc.)

Let me know if you need the details on it and I will dig up the model etc, I found it in the fronius docs and ordered it from RS parts.

Are any of the ZigBee or tuya based plug with energy monitoring small enough to fit side by side? Or are there any smart powerboards with individual energy monitoring?

Also, I am going to be having a solaredge inverter installed next month. Iā€™ve done a bunch of reading and expect to get the data into HA via the built in solaredge Modbus. I will then have overall energy usage available.

If I also wanted to get some data on specific appliances using smart plugs, how does home assistant handle overall consumption and individual devices? Can I have both without messing up the data/reports.

@hipsi I think I know what you are trying to do here, above my pay grade though, can you throw the code for the whole automation? Does it trigger on setting something to do with the fan?

I had a dig through possible ways for adding manual attributes to a switch and got lost, so would certainly love some help here on ways to controlling my crazy fan!

@Stewface Itā€™s convoluted and messy but hereā€™s the pieces.

In the configuration.yaml I setup a template Fan and a Template light as follows:

fan:
  - platform: template
    fans:
      kitchen_fan_test:
        friendly_name: "Kitchen - Fan"
        value_template: "{{ states('input_boolean.template_fan_state') }}"
       # percentage_template:  "{{ states('input_number.kitchen_fan_percentage') }}"
        preset_mode_template: "{{ states('input_select.kitchen_fan_preset_mode') }}"
        direction_template:  "{{states('input_select.kitchen_fan_direction') }}"
        turn_on:
          service: script.template_fan_on
        turn_off:
          service: script.template_fan_off
       # set_percentage:
       #   service: script.template_fan_set_speed
       #   data:
       #     percentage: "{{ percentage }}"
        set_direction:
          service: script.template_fan_direction
          data:
            direction: "{{ direction }}"
        set_preset_mode:
          service: script.template_fan_preset_mode
          data:
            preset_mode: "{{ preset_mode }}"
       # speed_count: 5
        preset_modes:
          - 'one'
          - 'two'
          - 'three'
          - 'four'
          - 'five'

light:
  - platform: template
    lights:
      kitchen_light_template:
        friendly_name: "Kitchen Light Template"
        turn_on:
          service: localtuya.set_dp
          data:
            device_id: xxxxxxxxxxxxxxxxxxxx
            dp: 15
            value: true
        turn_off:
          service: localtuya.set_dp
          data:
            device_id: xxxxxxxxxxxxxxxxxxxxxxxxx
            dp: 15
            value: false
        set_level:
          service: input_number.set_value
          data_template:
            value: "{{ Brightness }}"
            entity_id: input_number.kitchen_light_level

the fan also needs an input_boolean:

  template_fan_state:
    name: Fan State

with an input_select for the Fan:

  kitchen_fan_speed_selector:
    name: Kitchen Fan Speed Selector
    options:
      - 1
      - 2
      - 3
      - 4
      - 5
    icon: mdi:target

and an input_number for the light just in the helpers UI:

This is the automation that runs on a change of state of my input_select. For simplicity I only change this input_select by using input_select.select_next or input_select.select_previous on a zigbee remote trigger.

- id: '1615453535122'
  alias: Kitchen Fan input_select Speed
  description: ''
  trigger:
  - platform: state
    entity_id: input_select.kitchen_fan_speed_selector
  action:
  - service: fan.set_speed
    entity_id: fan.kitchen_fan_test
    data_template:
      speed: "{% if is_state(\"input_select.kitchen_fan_speed_selector\", \"1\") %}\n\
        \  1\n{%-elif is_state(\"input_select.kitchen_fan_speed_selector\", \"2\"\
        ) %}\n  2\n{%-elif is_state(\"input_select.kitchen_fan_speed_selector\", \"\
        3\") %}\n  3\n{%-elif is_state(\"input_select.kitchen_fan_speed_selector\"\
        , \"4\") %}\n  4\n{%-elif is_state(\"input_select.kitchen_fan_speed_selector\"\
        , \"5\") %}\n  5\n{% else %}\n  none\n{% endif %}\n"

I tried piecing together a script (below) to work with the input_number.kitchen_light_level but never got it working, hence all I can do is turn the light on and off. Incidentally, if

template_kitchen_light_1:
  alias: Kitchen Fan Light 1
  sequence:
  - service: localtuya.set_dp
    data:
      device_id: xxxxxxxxxxxxxxxxxxx
      dp: 16
      value: 1
template_kitchen_light_2:
  alias: Kitchen Fan Light 2
  sequence:
  - service: localtuya.set_dp
    data:
      device_id: xxxxxxxxxxxxxxxxxxx
      dp: 16
      value: 2
template_kitchen_light_3:
  alias: Kitchen Fan Light 3
  sequence:
  - service: localtuya.set_dp
    data:
      device_id: xxxxxxxxxxxxxxxxxxx
      dp: 16
      value: 3
template_kitchen_light_4:
  alias: Kitchen Fan Light 4
  sequence:
  - service: localtuya.set_dp
    data:
      device_id: xxxxxxxxxxxxxxxxxxx
      dp: 16
      value: 4
template_kitchen_light_5:
  alias: Kitchen Fan Light 5
  sequence:
  - service: localtuya.set_dp
    data:
      device_id: xxxxxxxxxxxxxxxxxxx
      dp: 16
      value: 5
template_kitchen_light_level:
  alias: Kitchen Light Level
  sequence:
  - service: input_number.set_value
    data_template:
      entity_id: input_number.kitchen_light_level
      value: '{{ bright }}'
  - service: script.turn_on
    data_template:
      entity_id: script.template_kitchen_light_{{ bright }}
  mode: single

incidentally if you call the localtuya.set_dp service with the data from any of those examples in the script from the developer tools, it works to change the light level. I just donā€™t have experience using scripts which is why I wasnā€™t able to get this working with my input_number.

I hope Iā€™ve put everything in here and it doesnā€™t confuse you as much as it has me.

1 Like

Thank you!! Iā€™ll start experimenting with all this tonight!

Anyone got Qmotion zigbee motorised blinds (think its bought out by Legrand now) working with ZHA in home assistant? I havenā€™t bought it but if no one has Iā€™ll see if they will let me try a controller before putting a lot inā€¦

Just googled these, they sounds like a cool idea, 5yrs on a set of batteries :expressionless:
Are these expensive ?

Must be doable if done in Z2M

https://www.zigbee2mqtt.io/devices/HDM40PV620.html

1 Like

No idea but there is a local store I can ask. They also run on D cell batteries so replaceable unlike automate blinds that are not but rechargeable.

It would be better, can always use high current rechargeable
If it had a built in rechargeable battery, well that would have a limited life span probably, at least this way it would work in many many years to come

1 Like

Hi @Cadal If you donā€™t mind asking if they sell the remotes. Ive fallen for the QdR2 remote (Qmotion Multi Channel QdR2 Remote (HDM40PV620) Zigbee compatibility) and canā€™t find anywhere online that sells it.

If anyone is using the Mercator Ikuu Double Power Point SPP02G this code works with zigbee2mqtt


const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3210_raqjcxo5'}],
    zigbeeModel: ['TS011F'],
    model: 'SPP02G',
    vendor: 'Mercator',
    description: 'Mercator Ikuu Double Power Point',
    fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.ignore_basic_report, fz.tuya_switch_power_outage_memory],
    toZigbee: [tz.on_off],
    exposes: [
        e.switch().withEndpoint('left'),
        e.switch().withEndpoint('right'), 
        e.power().withEndpoint('left'), 
        e.current().withEndpoint('left'), 
        e.voltage().withEndpoint('left').withAccess(ea.STATE), 
        e.energy(),    
        exposes.enum('power_outage_memory', ea.STATE_SET, ['on', 'off', 'restore']).withDescription('Recover state after power outage')],
    endpoint: (device) => {
            return {left: 1, right: 2};
    },
    // The configure method below is needed to make the device reports on/off state changes
    // when the device is controlled manually through the button on it.
    meta: {multiEndpoint: true}, 
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint1 = device.getEndpoint(1);
        const endpoint2 = device.getEndpoint(2);
        await reporting.bind(endpoint1, coordinatorEndpoint, ['genBasic', 'genOnOff', 'haElectricalMeasurement', 'seMetering']);
        await reporting.bind(endpoint2, coordinatorEndpoint, ['genOnOff']);
        await reporting.onOff(endpoint1);
        await reporting.onOff(endpoint1);
        await reporting.onOff(endpoint1);
        await reporting.rmsVoltage(endpoint1, {change: 5});
        await reporting.rmsCurrent(endpoint1, {change: 50});
        await reporting.activePower(endpoint1, {change: 1});
        await reporting.onOff(endpoint1);
        await reporting.onOff(endpoint2);
        endpoint1.saveClusterAttributeKeyValue('haElectricalMeasurement', {acCurrentDivisor: 1000, acCurrentMultiplier: 1});
        endpoint1.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});
	device.save();
    },
};

module.exports = definition;

image

1 Like

Monday or this weekend is when we plan to go iā€™ll ask then :slight_smile:

1 Like

Has anyone been able to create a custom Quirk for the Telstra Zigbee (SZ-ESW01-AU) plugs? By that I mean have then show as switches rather than lights and fix the power consumption values, some of which are off?

Youā€™ll wanna use [Zigbee2MQTT] or [Deconz]

(Sercomm Telstra Smart Power Plug (SZ-ESW01-AU) Zigbee compatibility)

Not supported in ZHA yet?

Or maybe try this?

Thx.
Iā€™m on ZHA and while it is detecting the plug and more or less working, its reporting a couple of things incorrect. Apparently this is a fault of the hardware and a Quirk is required to overwrite what the hardware is reporting.

Iā€™ll have a read of the second link, with luck it might have what I need.

Adding the following to config,yaml corrects the device type, only pain is I need to configure each device. Now to work out correcting the power consumption values! Thx

zha:
  device_config:
    00:0d:6f:00:0f:8e:70:68-1:
       type: 'switch'