Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New device support]: IKEA INSPELNING smart plug with power monitoring #23961

Open
QempZor opened this issue Sep 13, 2024 · 109 comments
Open

[New device support]: IKEA INSPELNING smart plug with power monitoring #23961

QempZor opened this issue Sep 13, 2024 · 109 comments
Labels
new device support New device support request

Comments

@QempZor
Copy link

QempZor commented Sep 13, 2024

Link

US Version: https://www.ikea.com/us/en/p/inspelning-plug-smart-energy-monitor-90569846/
Dutch version: No ikea link yet, but buyable in the stores.. :)

Database entry

{"id":53,"type":"Router","ieeeAddr":"0xecf64cfffef2b718","nwkAddr":27855,"manufId":4476,"manufName":"IKEA of Sweden","powerSource":"Mains (single phase)","modelId":"INSPELNING Smart plug","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":266,"inClusterList":[0,3,4,5,6,8,1794,2820,4096,64636,64645],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"INSPELNING Smart plug","manufacturerName":"IKEA of Sweden","powerSource":1,"zclVersion":8,"appVersion":2,"stackVersion":114,"hwVersion":1,"dateCode":"20240215","swBuildId":"2.4.34"}},"haElectricalMeasurement":{"attributes":{"acPowerDivisor":10,"acPowerMultiplier":1,"acCurrentDivisor":1000,"acCurrentMultiplier":1,"acVoltageDivisor":10,"acVoltageMultiplier":1,"activePower":0,"rmsCurrent":3,"rmsVoltage":236}},"seMetering":{"attributes":{"divisor":1000,"multiplier":1,"currentSummDelivered":[0,77]}},"genLevelCtrl":{"attributes":{"onLevel":255,"currentLevel":254}},"genOnOff":{"attributes":{"onOff":1}}},"binds":[{"cluster":2820,"type":"endpoint","deviceIeeeAddress":"0xb43522fffe12b3b4","endpointID":1},{"cluster":1794,"type":"endpoint","deviceIeeeAddress":"0xb43522fffe12b3b4","endpointID":1}],"configuredReportings":[{"cluster":2820,"attrId":1291,"minRepIntval":10,"maxRepIntval":65000,"repChange":50},{"cluster":2820,"attrId":1288,"minRepIntval":10,"maxRepIntval":65000,"repChange":50},{"cluster":2820,"attrId":1285,"minRepIntval":10,"maxRepIntval":65000,"repChange":50},{"cluster":1794,"attrId":0,"minRepIntval":10,"maxRepIntval":65000,"repChange":[0,100]}],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[33],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":2,"stackVersion":114,"hwVersion":1,"dateCode":"20240215","swBuildId":"2.4.34","zclVersion":8,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1726245436588}

Zigbee2MQTT version

1.40.1

Comments

Just picked this plugs up at the Ikea in Amsterdam. They're quite new, no infopage on the Ikea site (NL)
I tried to follow the "How to add support" page, but.. well,.. to complicated for this noob :)

However I want to help so here is al the information I know.

Out of the box, in Z2M, a lot works already quite well. See the results below.

Extra;
Some Tweakers forum information (Dutch): https://gathering.tweakers.net/forum/list_message/80105532#80105532

External definition

const {light, electricityMeter} = require('zigbee-herdsman-converters/lib/modernExtend');

const definition = {
    zigbeeModel: ['INSPELNING Smart plug'],
    model: 'INSPELNING Smart plug',
    vendor: 'IKEA of Sweden',
    description: 'Automatically generated definition',
    extend: [light(), electricityMeter()],
    meta: {},
};

module.exports = definition;

What does/doesn't work with the external definition?

Out of the box in:

  • ON OFF switch works as expected.
  • There is an "Effect" thing in HA/Z2M: Dont think it needs to be there for plug
  • There is an "Brightness slider" Dont think it needs to be there for plug
  • Energy Sensor is a sum of total consumed energy. Don't know if correct. See next point.
  • Power monitoring works kinda. When I charge my iPad it reads around 20W wich seems to be good. However if i plug in my toaster (wich is around 2000w) it reports around 209w) So there seems like a decimal error thing?
  • Same problem for voltage. It reports 23,3-23,6v (when pluged in to a 230v outlet ofcourse)
  • ̶P̶r̶o̶b̶a̶b̶l̶y̶ ̶t̶h̶e̶ ̶s̶a̶m̶e̶ ̶t̶h̶i̶n̶g̶ ̶f̶o̶r̶ ̶t̶h̶e̶ ̶a̶m̶p̶e̶r̶a̶g̶e̶.̶.̶ ̶D̶i̶d̶n̶t̶ ̶t̶e̶s̶t̶ ̶t̶h̶a̶t̶.̶ UPDATE: After testing the amperage seems to be correct.

Configuration page (in HA) shows a Power-on behavior wich works as expected

@QempZor QempZor added the new device support New device support request label Sep 13, 2024
@Rembock
Copy link

Rembock commented Sep 13, 2024

I made this definition:

External definition

const {electricityMeter, onOff, identify} = require('zigbee-herdsman-converters/lib/modernExtend');
const {addCustomClusterManuSpecificIkeaUnknown, ikeaOta} = require('zigbee-herdsman-converters/lib/ikea')

const definition = {
   zigbeeModel: ['INSPELNING Smart plug'],
   model: 'E2206',
   vendor: 'IKEA',
   description: 'INSPELNING Smart plug',
   extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta(), electricityMeter()],
   meta: {},
};

module.exports = definition;

What does this external definition fix?

  • Removes "Effect"
  • Removes "Brightness slider"

Also:

  • Energy Sensor looks indeed like a sum of total consumed energy, I have another energymeter that does the same
  • Power monitoring works like it should, the voltage differs depending of the connected device onto your plug & should never use the full 230v.
  • Same applies to voltage and amperage

@QempZor
Copy link
Author

QempZor commented Sep 14, 2024

clarifying the voltage and wattage.
1500w toaster connected shows this on a 240v outlet:
Schermafbeelding 2024-09-14 113711

@Rembock
Copy link

Rembock commented Sep 16, 2024

You're right, I think I've extended the external definition correctly now. Can you try if this external definition works for you as well?

External definition

const {} = require('zigbee-herdsman-converters/lib/modernExtend');
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 ota = require('zigbee-herdsman-converters/lib/ota');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;

const {electricityMeter, onOff, identify} = require('zigbee-herdsman-converters/lib/modernExtend');
const {addCustomClusterManuSpecificIkeaUnknown, ikeaOta} = require('zigbee-herdsman-converters/lib/ikea');

const definition = {
   zigbeeModel: ['INSPELNING Smart plug'],
   model: 'E2206',
   vendor: 'IKEA',
   description: 'INSPELNING Smart plug',
   extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta()],      
   fromZigbee: [fz.electrical_measurement, fz.metering],
   toZigbee: [],
   configure: async (device, coordinatorEndpoint, logger) => {
       const endpoint = device.getEndpoint(1);
       await reporting.bind(endpoint, coordinatorEndpoint, ['haElectricalMeasurement', 'seMetering']);
       await reporting.activePower(endpoint);
       await reporting.rmsVoltage(endpoint);
       await reporting.rmsCurrent(endpoint); 
       await reporting.currentSummDelivered(endpoint);               
       endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {
           acPowerMultiplier: 1,
           acPowerDivisor: 10,
           acVoltageMultiplier: 1,
           acVoltageDivisor: 1,
           acCurrentMultiplier: 1,
           acCurrentDivisor: 1000,            
       });
       endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});        
       device.save();
   },
   exposes: [e.power(), e.voltage(), e.current(), e.energy()],
};

module.exports = definition;

This is my result:
Screenshot 2024-09-17 000819
I am not sure if the number of kWh is correct yet

Also don't forget to restart zigbee2mqtt and re-pair your device, otherwise it won't work.

@QempZor
Copy link
Author

QempZor commented Sep 17, 2024

Voltage is correct now. I think the total sum of Energy already was correct
Power is still wrong when wattage reach >1000w
Schermafbeelding 2024-09-17 100056

EDIT: Total sum of energy looks like it 10 times to high

@ronaldevers
Copy link

@Rembock the "effect" actually worked on the light on the plug. I could for example make the light "breathe". The brightness did not appear to do anything. So I don't think the "effect" should be removed.

@itkama
Copy link

itkama commented Sep 18, 2024

These are also available in Germany now. Just bought 2. I will take a look if your external controller works for me tomorrow @Rembock. Any clue on how to get these into pairing mode?

@basvdploeg
Copy link

@itkama You can put them in pairing mode by pressing and holding the small button next to the power button. You probably need a pointy object to do so.

@itkama
Copy link

itkama commented Sep 18, 2024

Okay, so I couldn't wait until tomorrow to pair it (thanks @basvdploeg):
image
Seems to be kind of working out of the box already? Voltage looks about right. On/Off working. Not sure about the power measurement, as this is the first time I'm measuring my vacuum bot.

Tried the other one with a pretty efficient GAN-USB-Charger to charge a powerbank that shows how much is going in. While the plug reported 30 to 31W, while the powerbank was reporting around 25W of input power. So for low power it may be kind of accurate.

What does the external converter really change now though? The power number atleast on low wattages seems to be looking correct? 🧐

@Rembock
Copy link

Rembock commented Sep 18, 2024

Made a new definition, this one fixes the issue's with Energy and Power @QempZor
@ronaldevers i will try to take a look if there's a dimmer functionality hidden somewere,

External definition

const {} = require('zigbee-herdsman-converters/lib/modernExtend');
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 ota = require('zigbee-herdsman-converters/lib/ota');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;

const {electricityMeter, onOff, identify} = require('zigbee-herdsman-converters/lib/modernExtend');
const {addCustomClusterManuSpecificIkeaUnknown, ikeaOta} = require('zigbee-herdsman-converters/lib/ikea');

const definition = {
   zigbeeModel: ['INSPELNING Smart plug'],
   model: 'E2206',
   vendor: 'IKEA',
   description: 'INSPELNING Smart plug',
   extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta()],      
   fromZigbee: [fz.electrical_measurement, fz.metering],
   toZigbee: [],
   configure: async (device, coordinatorEndpoint, logger) => {
       const endpoint = device.getEndpoint(1);
       await reporting.bind(endpoint, coordinatorEndpoint, ['haElectricalMeasurement', 'seMetering']);
       await reporting.activePower(endpoint);
       await reporting.rmsVoltage(endpoint);
       await reporting.rmsCurrent(endpoint); 
       await reporting.currentSummDelivered(endpoint);               
       endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {
           acPowerMultiplier: 1,
           acPowerDivisor: 1,
           acVoltageMultiplier: 1,
           acVoltageDivisor: 1,
           acCurrentMultiplier: 1,
           acCurrentDivisor: 1000,            
       });
       endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 1000, multiplier: 1});        
       device.save();
   },
   exposes: [
       e.power(), 
       e.voltage(), 
       e.current(), 
       e.energy()
   ],    
};

module.exports = definition;

Screenshot 2024-09-18 222031

@Rembock
Copy link

Rembock commented Sep 18, 2024

@ronaldevers I get Data confirm errors in my log when I add light to the extended definition, so I decided not to configure the effect

@LeoSum8
Copy link

LeoSum8 commented Sep 19, 2024

This looks very promising! I think I'll need to go out to eat some hotdogs for lunch pretty soon :)
Can anyone share how often the values are updated? Thanks!

@QempZor
Copy link
Author

QempZor commented Sep 19, 2024

Okay, so I couldn't wait until tomorrow to pair it (thanks @basvdploeg): image Seems to be kind of working out of the box already? Voltage looks about right. On/Off working. Not sure about the power measurement, as this is the first time I'm measuring my vacuum bot.

Tried the other one with a pretty efficient GAN-USB-Charger to charge a powerbank that shows how much is going in. While the plug reported 30 to 31W, while the powerbank was reporting around 25W of input power. So for low power it may be kind of accurate.

What does the external converter really change now though? The power number atleast on low wattages seems to be looking correct? 🧐

Power readings below 1000w are fine (out of the box), But above 1000W everything is shown as 100,0w (or f.e. 132,4w)

With the ext. def. from Rembock, everything above 1000W seems to be good; but below 1000w is then show 10x too much (7,2w LED bulb reads 72w power... )

Also; I saw someone on Tweakers (dutch tech forum) who bought 2 of these plugs and didn't show any data. He changed them at another Ikea store and then one of them is showing the correct voltage, and one is shown 10times to high voltage, with the same settings/ext.def.) So there might also be a (small) problem within the units itself. (<- Thats just speculation)

@Rembock
Copy link

Rembock commented Sep 19, 2024

I am almost certain that this must be a firmware issue, I hope Ikea will come up with an update soon.

Also; I saw someone on Tweakers (dutch tech forum) who bought 2 of these plugs and didn't show any data. He changed them at another Ikea store and then one of them is showing the correct voltage, and one is shown 10times to high voltage, with the same settings/ext.def.) So there might also be a (small) problem within the units itself. (<- Thats just speculation)

Yup, that's @basvdploeg :)

@itkama
Copy link

itkama commented Sep 19, 2024

@Rembock Firmware versions on both my plugs is 2.4.34 with a Firmware date of 20240215.
@QempZor there also is the TRETAKT plug. It looks really similar - but it has no power readings. Costs 2€ less here in Germany. Maybe he just got the wrong plugs? 😅

@basvdploeg
Copy link

basvdploeg commented Sep 19, 2024

@Rembock Firmware versions on both my plugs is 2.4.34 with a Firmware date of 20240215. @QempZor there also is the TRETAKT plug. It looks really similar - but it has no power readings. Costs 2€ less here in Germany. Maybe he just got the wrong plugs? 😅

No, they were the INSPELNING. Both showed only 1 (different) reading, and all the other values stayed empty. I tried re-pairing them multiple times, with and without external definition, but the results stayed the same.

When I switched them for two new version (from another IKEA store), I got all the data instantly. So it definitely looked like a problem in the plugs themselves.

@arjansiemons
Copy link

I bought 3 INSPELNING, one of them reports as TRETAKT (2204). I checked the label on the plug, it really says 2206 (INSPELNING).

@busene
Copy link

busene commented Sep 20, 2024

I bought 3 yesterday and added them to Zigbee2MQTT using the external definition from @Rembock . Somehow 1 shows all the values x10 (so my outlet is now outputting 2340Volts), but the other 2 show correct values. Anybody that knows whats going on?

@itkama
Copy link

itkama commented Sep 20, 2024

@busene do your 3 plugs show different firmware versions?

@busene
Copy link

busene commented Sep 20, 2024

@itkama nope, all show the same version

@Rembock
Copy link

Rembock commented Sep 20, 2024

Instead of using the power sensor from the E2206, I'm now using a sensor with the template integration as a helper from the UI in Home Assistant.

Screenshot 2024-09-20 181144

With this method you can 'tune' each plug to display the correct number of watts until Ikea pushes an firmware update that hopefully fixes the power sensor.
I also saw support voor the Tretakt listed here since the 3rd of May, I expect the Inspelning to be listed here soon as well.

It also seems like that the latest firmware version is 2.4.45, mine are both 2.4.34.

@basvdploeg
Copy link

I bought 3 yesterday and added them to Zigbee2MQTT using the external definition from @Rembock . Somehow 1 shows all the values x10 (so my outlet is now outputting 2340Volts), but the other 2 show correct values. Anybody that knows whats going on?

This is the same that I experienced with mine.

@busene
Copy link

busene commented Sep 20, 2024

@Rembock mine are also 2.4.34, is there a way to update them without the ikea hub?

@QempZor
Copy link
Author

QempZor commented Sep 20, 2024

I just bought a Dirigera and indeed there is an update. v2.4.45 is out
With this new update; out of the box the voltage and current are shown correctly in Z2M.

However the Power problem is still there. Above 1000w is shown as 100,0w
I checked the power in the Ikea Home app and there it's shown correctly. Above 1000w and also below 1000w.

In HomeAssistant with the template from @Rembock there is a big difference between the template measurement and the Z2M readings. This is maybe due to the fact that the Current readings are (quite a bit) off? Or at least; not accurate.

Example below is with an 30w ipad charger.
nieuwe_inspel
Quick translate:
"Ikea_plug_1" is the template sensor
"Vermogen" is Power straight out of Z2M

@basvdploeg
Copy link

The OTA update for the plug is available here:
https://fw.ota.homesmart.ikea.com/check/update/prod

But I’m not sure how it can be used through Z2M.

@notgood
Copy link

notgood commented Sep 21, 2024

Picked one today, comes with 2.4.34 firmware, would welcome any hints on updating it without Ikea hub.
It seems Zigbee2mqtt only supports the Tradfri OTA feed, not the Dirigera one.

Mine INSPELNING also came with a barely working and unreliable button, only third of keypresses actually did something.

Disassembled it: breakout board with a button and LED is pretty much floating midair, rather unfortunate and sloppy engineering design IMHO.
midair

Used a piece of plastic zip tie as a wedge between breakout board and relay, with a bit of electric tape to calibrate width.
fix

@folfy
Copy link

folfy commented Sep 22, 2024

I bought the new INSPELNING plug here in Austria two days ago, and experienced the same issue that power >=1000W is shown as 1/10th of the actual value (on ZHA).

I checked the Measurement Cluster for related attributes, and could figure out that the plug is dynamically adjusting the "ac_power_divisor" between 10 (<1000W) and 1 (>=1000W), which probably is not updated/reflected by ZHA or Z2M in the shown value accordingly:
inspelning_cluster

The off-value for the voltage seems to be fixed for some with the new firmware, see zigpy/zha-device-handlers#3374 (comment).

I'm currently looking into fixing/expanding the issue/quirk for ZHA, maybe someone here knows how to fix this in Z2M tho ;)

@Rembock
Copy link

Rembock commented Sep 30, 2024

@Knol010 add const ota = require('zigbee-herdsman-converters/lib/ota'); at the beginning of inspeling.js

@Henkjr66
Copy link

@Knol010 add const ota = require('zigbee-herdsman-converters/lib/ota'); at the beginning of inspeling.js

Nice!
My first plug just finished updating to 2.4.45 (took 50 min... om my old test setup).

@Knol010
Copy link

Knol010 commented Sep 30, 2024

Thx guys for the superfast reactions.

Scherm­afbeelding 2024-09-30 om 12 28 30

I added the line, dit a restart of Z2M but still the Inspelning is not showing up in the OTA page...
What is going wrong?

@Henkjr66
Copy link

Henkjr66 commented Sep 30, 2024

Thx guys for the superfast reactions.

Scherm­afbeelding 2024-09-30 om 12 28 30 I added the line, dit a restart of Z2M but still the Inspelning is not showing up in the OTA page... What is going wrong?

@Knol010
Copy link

Knol010 commented Sep 30, 2024

Thx guys for the superfast reactions.
Scherm­afbeelding 2024-09-30 om 12 28 30
I added the line, dit a restart of Z2M but still the Inspelning is not showing up in the OTA page... What is going wrong?

I used these files: Ikea Insplening.zip

I used your files. Re-added the inspelning plug, restarted z2m. The device isn't showing up in OTA :(

When I publish an update true MQTT it says that is does not support OTA updates

@Rembock
Copy link

Rembock commented Sep 30, 2024

@Knol010 try this external definition

External definition for updating E2206

const { } = require('zigbee-herdsman-converters/lib/modernExtend');
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 ota = require('zigbee-herdsman-converters/lib/ota');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;

const { electricityMeter, onOff, identify } = require('zigbee-herdsman-converters/lib/modernExtend');
// Uncomment the next line if you want to update with the standard Ikea ota links
// const {addCustomClusterManuSpecificIkeaUnknown, ikeaOta} = require('zigbee-herdsman-converters/lib/ikea');

// Uncomment the next line and comment the line above if you want to update trough with your own ota file
const { addCustomClusterManuSpecificIkeaUnknown } = require('zigbee-herdsman-converters/lib/ikea');

const definition = {
   zigbeeModel: ['INSPELNING Smart plug'],
   model: 'E2206',
   vendor: 'IKEA',
   description: 'INSPELNING Smart plug',
   // Uncomment the next line if you want to update with the standard Ikea ota links an comment the other lines below
   // extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta()], 

   // Uncomment the next 2 lines and comment the line above if you want to update with your own ota file
   ota: ota.zigbeeOTA,
   extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta(), electricityMeter()], 
   
   meta: {},
};

module.exports = definition;

@Knol010
Copy link

Knol010 commented Sep 30, 2024

It's working now.
External_convertors and ota in my configuration.yaml had to be to spaces to the left!

@Rembock
Copy link

Rembock commented Sep 30, 2024

Awesome, don't forget to add the power divisor manually if you're using electricityMeter trough modern extend (see #23961 (comment)) or else the power will be off above/under 1000W.

@Knol010
Copy link

Knol010 commented Sep 30, 2024

Awesome, don't forget to add the power divisor manually if you're using electricityMeter trough modern extend (see #23961 (comment)) or else the power will be off above/under 1000W.

Thx Rembock. I did the last part also.

Scherm­afbeelding 2024-09-30 om 13 50 02

The V is not correct. It should be lik 233.
Any idea how to correct this?

@Henkjr66
Copy link

Henkjr66 commented Sep 30, 2024

Awesome, don't forget to add the power divisor manually if you're using electricityMeter trough modern extend (see #23961 (comment)) or else the power will be off above/under 1000W.

Thx Rembock. I did the last part also.

Scherm­afbeelding 2024-09-30 om 13 50 02 The V is not correct. It should be lik 233. Any idea how to correct this?

After update I had the same issue.
Changed definition to this: #23961 (comment),
restarted Z2M and removed and re-added Ikea smart plug.

@manuelkasper
Copy link
Sponsor

If this works for everyone, I will create another pr.

Works on E2224 (Swiss plug version) with firmware 2.4.45. Thanks!

FWIW, the standby consumption is 0.2 W with the relay off, 0.7 W with the relay on (measured with a calibrated benchtop power meter). The measurement accuracy of this new inexpensive IKEA smart plug seems to be quite good too, less than 2% off with various loads (5 W LED, 60 W incandescent, 2000 W kettle).

@Menthe11
Copy link

Menthe11 commented Oct 2, 2024

Are OTA updates also possible now with the recent update?

@TASSDevon
Copy link

Are OTA updates also possible now with the recent update?

I just had a look in the OTA webui van z2m and did a check for updates, it did not show the available new version:

Screenshot 2024-10-02 at 08 22 22

@Rembock Is this expected?

@itkama
Copy link

itkama commented Oct 2, 2024

If I remember correctly the location of the OTA files is different than usual? So this would probably need another PR on the zigbee-ota side of things.

@Knol010
Copy link

Knol010 commented Oct 2, 2024

I just updated Z2M and I see Inspelning is supported now. I still need to update them with the inspelning.js file.

Awesome, don't forget to add the power divisor manually if you're using electricityMeter trough modern extend (see #23961 (comment)) or else the power will be off above/under 1000W.

Do I still need to do this with new plugs, because inspelning is supported now?
Just bought another 9 :)

@Rembock
Copy link

Rembock commented Oct 2, 2024

@Menthe11 & @TASSDevon no and yes, version 1.40.2 only uses modern extend as seen in #23961 (comment). ikeaOta is added there, but the new productionURL has to be added to tradfri.ts, or a new ota file for Dirigera has to be made. Like @itkama suggested, it needs a new PR to fix this.
In the mean time, you can use the instructions provided by @notgood in #23961 (comment) together with the external definition from #23961 (comment).

This means that you also have to add acPowerDivisor mentioned in #23961 (comment).
Last night, I've created a new PR to fix this, together with the adjusted intervals for the sensors. (see: Koenkk/zigbee-herdsman-converters#8060)

So yes @Knol010, we have to update the plugs the current way for now. If enyone feels free to open an issue or create a new PR for this go ahead, my knowledge barely scratches the surface of z2m to create a working ota for this plug.

@manzel
Copy link

manzel commented Oct 2, 2024

Thanks so much, @Rembock. Using these instructions, I could successfully update my device. The external definition from #23961 (comment) could not be loaded, though. I had to remove ikeaOta(), from the extend: ... line first.

@Menthe11
Copy link

Menthe11 commented Oct 2, 2024

Can confirm, could update my device. Thanks @Rembock

@Chromwell
Copy link

Chromwell commented Oct 3, 2024

My INSPELNING was detected as a TRETAKT Model E2204 with Z2M Version [1.40.2] commit: [e06848d] and also made an OTA update to 2.4.25. Can anyone make sense of this? Am i able to manually OTA update the "inspelning-smart-plug-soc_release_prod_v33816645_02579ff4-6fec-42f6-8957-4048def87def.ota" to my wrongly detected E2204 and make a correct working E2206 out of it ? I tried the configurations here but it does not detect an OTA update to push...

I took a second look on the lasered markings on the socket and it is also labeled as E2204/TRETAKT ... Maybe it got switched at production or an idiot switched it on purpose in the store, i´ll change it at IKEA....

@marazmarci
Copy link

My INSPELNING was detected as a TRETAKT Model E2204 with Z2M Version [1.40.2] commit: [e06848d] and also made an OTA update to 2.4.25. Can anyone make sense of this? Am i able to manually OTA update the "inspelning-smart-plug-soc_release_prod_v33816645_02579ff4-6fec-42f6-8957-4048def87def.ota" to my wrongly detected E2204 and make a correct working E2206 out of it ? I tried the configurations here but it does not detect an OTA update to push...

I took a second look on the lasered markings on the socket and it is also labeled as E2204/TRETAKT ... Maybe it got switched at production or an idiot switched it on purpose in the store, i´ll change it at IKEA....

Yes, it is very possible that someone swapped it in the store. It's so easy to do this since IKEA started using plastic-free packaging for their Zigbee products (so there's no sticky seal on the box anymore). I've been down the same road multiple times. One time there was some cheap AliExpress Zigbee GU10 light in the box instead of the IKEA one. Another time a Trådfri control outlet was literally cut in half, but it wasn't visible from the transparent front side of the box. So I learnt my lesson, and I always open the box to double-check its contents. 😅

@TASSDevon
Copy link

Is it normal it only reports energy in 0.1kWh increments? It gives a wrong individual energy graph in HA. Is it inherent to the plug?

Screenshot 2024-10-05 at 08 16 26

@Pierre331
Copy link

Pierre331 commented Oct 5, 2024

Hi,

I am a noob in Z2M so sorry if I am missing something obvious..
I am trying to update my plugs using the method described above.

I added inspelning.js with the definition bellow:

`
const { } = require('zigbee-herdsman-converters/lib/modernExtend');
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 ota = require('zigbee-herdsman-converters/lib/ota');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;

const { electricityMeter, onOff, identify } = require('zigbee-herdsman-converters/lib/modernExtend');
// Uncomment the next line if you want to update with the standard Ikea ota links
// const {addCustomClusterManuSpecificIkeaUnknown, ikeaOta} = require('zigbee-herdsman-converters/lib/ikea');

// Uncomment the next line and comment the line above if you want to update trough with your own ota file
const { addCustomClusterManuSpecificIkeaUnknown } = require('zigbee-herdsman-converters/lib/ikea');

const definition = {
zigbeeModel: ['INSPELNING Smart plug'],
model: 'E2206',
vendor: 'IKEA',
description: 'INSPELNING Smart plug',
// Uncomment the next line if you want to update with the standard Ikea ota links an comment the other lines below
// extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta()],

// Uncomment the next 2 lines and comment the line above if you want to update with your own ota file
ota: ota.zigbeeOTA,
extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta(), electricityMeter()],

meta: {},
};

module.exports = definition;
`

The inspelning-smart-plug-soc_release_prod_v33816645_02579ff4-6fec-42f6-8957-4048def87def.ota and also the inspelning_OTA_index.json with the code:

[ { "url": "inspelning-smart-plug-soc_release_prod_v33816645_02579ff4-6fec-42f6-8957-4048def87def.ota" } ]

I also added the link to the configuration.ya:

`
homeassistant_legacy_entity_attributes: false
legacy_api: false
legacy_availability_payload: false
external_converters:

  • inspelning.js
    ota:
    zigbee_ota_override_index_location: inspelning_OTA_index.json
    mqtt:
    `

(All those files are located in the zigbee2mqtt folder)

Then I delete the plug from Z2M restart it and add it back but no update are available..

I hope somebody can spot what might be wrong and help!

@manzel
Copy link

manzel commented Oct 5, 2024

@Pierre331 Look at the logs after a restart of Z2M. I suspect the external converter cannot be loaded. It is the problem I mentioned in #23961 (comment)

If that is the case, you have to remove ikeaOta(), from the line extend: [addCustomClusterManuSpecificIkeaUnknown(), onOff(), identify(), ikeaOta(), electricityMeter()], and restart Z2M. After that it should update.

@Pierre331
Copy link

It works! thanks a lot!!

@kender65
Copy link

kender65 commented Oct 6, 2024

I've managed to update firmware to 2.4.45 using z2m, here are the steps.

  1. Download https://fw.ota.homesmart.ikea.com/files/inspelning-smart-plug-soc_release_prod_v33816645_02579ff4-6fec-42f6-8957-4048def87def.ota

Hi!
Tried to download from the above mentioned address and got a certificate issue for fw.ota.homesmart.ikea.com:
net::ERR_CERT_AUTHORITY_INVALID
So I hesitated to procceed due to a possible security risk.
Is this still the only way?

@Koenkk
Copy link
Owner

Koenkk commented Oct 6, 2024

Is this still the only way?

OTA will be supported out of the box with the next release.

@kender65
Copy link

kender65 commented Oct 6, 2024

Is this still the only way?

OTA will be supported out of the box with the next release.

Thx for the quick reply.
So I'll wait for that!

@dsimoes
Copy link

dsimoes commented Oct 9, 2024

I've installed zigbee2mqtt with sonoff dongle-e. First device I connected is the Ikea INSPELNING /
E2206.

It's running ikea firmware 2.4.34. I would like to perform an OTA update to the latest published firmware (2.4.45?) to ensure the voltage reporting issue (& others) is fixed.

When i check for updates, I get no update available. I've also enabled Ikea test server and also got no updates.
Anyone has a clue why?

Thanks.

@dsimoes
Copy link

dsimoes commented Oct 9, 2024

Just to add that with the 2.4.34 firmware and the latest zigbee2mqtt definitions we get incorrect voltage/power readings like previously reported :(

I did some direct readings on the dev section and got this:

Applying ~48W load:

"rmsVoltage":232,
"acVoltageDivisor":10,
"acVoltageMultiplier":1,
"acPowerDivisor":10,
"acPowerMultiplier":1,
"activePower":485

  • Voltage is received as 232V but the acVoltageDivisor is not, hence the reporting of 23.2V
  • Power is received as 485W but with the applied acPowerDivisor, the reporting ends up being correct of 48.5W

Applying ~1000W load:

"rmsVoltage":228,
"acVoltageDivisor":10,
"acVoltageMultiplier":1,
"acPowerDivisor":10,
"acPowerMultiplier":1,
"activePower":1004

  • Same observation for voltage (incorrect reporting)
  • Power is received as 1004W (correct) but the acPowerDivisor is kept at 10, hence the reporting of 100.4W

!?! Is this definately a vendor problem or is there something else we are missing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device support New device support request
Projects
None yet
Development

No branches or pull requests