LiXee ZLinky_TIC DDF File

I can assure you I’m in Standard more. Linky shows it and 0xFF66 0x0300 is 1

I do not worry about 0x0000 0x0100 & 0x0102, ok it is weird, but why not… Maybe we need more people in standard more to see if they have the base index at 0x0100 and a weird sum at 0x0000 too.

I’ll come back later when I send my CAC to Enedis and switch to production mode to tell you if I can read my production then.

But it bothers me to see it on the Linky and not in deconz. It is as if all clusters related to production are kept to 0 if mode or bit for production is not set, whereas there are values or not.

Values are visible on enedis site too, so it s possible to compare value to see if there is a problem on value displayed on linky or if we realy need to use direclty the 0x0100, and ignore the 0x0100
On https://www.enedis.fr/ or perhaps you have a bill ?

I cannot find it :frowning:

On the part with statistics I sum up all values from all year, and it did not match any of the value I can get on Linky or ZLinky :sweat_smile:

Between the change from old mechanical counter to Linky + change from HCHP to normal something was lost in the way.

ATM it just works for me, reading 0x0100. We just need more users to confirm this logic or not. Maybe asking on github project?

Ok, so I think you are right, here LiXee ZLinky_TIC DDF File - #5 by alibert it s a DDF made by an user on standard + Base and he use 0x0100

But BTW what is the second counter ? And after 24 h working both counter increase ? or only the 0x0100 ?

Only 0x0100 increases. I do not know what is the second value. My guess: previous energy provider or old HC

Yep probably. I will update the file https://github.com/dresden-elektronik/deconz-rest-plugin/blob/master/devices/lixee/zlinky_tic_standard_mono_base.json with the attruibute 0x0100 when I will have a new DDF to add, for exemple your with production or the triphase one.

Hello, nothing news here ?
Have made a PR https://github.com/dresden-elektronik/deconz-rest-plugin/pull/6229 to correct consumption for Standard + base and add an attribute on the GUI.

If you have other thing to add, like the production ?

Hello. Thanks for the work already done!
I’m looking for a DDF enabling: Mode Historique + Triphasé + HPHC.
Is it available somewhere?

I’m only seeing:

  • historique+mono+base
  • historique+mono+hphc
  • standard+mono+base

Thanks for your help

Sure, can you try this DDF

{
  "schema": "devcap1.schema.json",
  "manufacturername": "LiXee",
  "modelid": "ZLinky_TIC",
  "vendor": "LiXee",
  "product": "ZLinky_TIC historique+HPHC+triphase",
  "sleeper": false,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_POWER_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0b04"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/consumption",
          "refresh.interval": 300,
          "read": {
            "at": "0x0100",
            "cl": "0x0702",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0100",
            "cl": "0x0702",
            "ep": 0,
            "eval": "Item.val = Attr.val"
          }
        },
        {
          "name": "state/current_P1",
          "refresh.interval": 300,
          "read": {
            "at": "0x0508",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0508",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != 65535) { Item.val = Attr.val; }"
          }
        },
        {
          "name": "state/current_P2",
          "refresh.interval": 300,
          "read": {
            "at": "0x0908",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0908",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != 65535) { Item.val = Attr.val; }"
          }
        },
        {
          "name": "state/current_P3",
          "refresh.interval": 300,
          "read": {
            "at": "0x0a08",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0a08",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != 65535) { Item.val = Attr.val; }"
          }
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/power",
          "refresh.interval": 300,
          "read": {
            "at": "0x050f",
            "cl": "0x0b04",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x050f",
            "cl": "0x0b04",
            "ep": 1,
            "eval": "if (Attr.val != -32768) { Item.val = Attr.val; }"
          }
        },
        {
          "name": "state/voltage",
          "refresh.interval": 300
        }
      ]
    },
    {
      "type": "$TYPE_CONSUMPTION_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0702"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/consumption",
          "refresh.interval": 300,
          "read": {
            "at": "0x0100",
            "cl": "0x0702",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0100",
            "cl": "0x0702",
            "ep": 1,
            "eval": "Item.val = Attr.val"
          }
        },
        {
          "name": "state/consumption_2",
          "refresh.interval": 300,
          "read": {
            "at": "0x0102",
            "cl": "0x0702",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0102",
            "cl": "0x0702",
            "ep": 0,
            "eval": "Item.val = Attr.val"
          }
        },
        {
          "name": "state/lastupdated"
        }
      ]
    },
    {
      "type": "ZHAAlarm",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0xff66"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/alarm",
          "refresh.interval": 300,
          "read": {
            "at": "0x0005",
            "cl": "0xff66",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0005",
            "cl": "0xff66",
            "ep": 1,
            "eval": "Item.val = Attr.val > 0 ? true : false",
            "fn": "zcl"
          },
          "default": false
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0702",
      "report": [
        {
          "at": "0x0000",
          "dt": "0x23",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0B04",
      "report": [
        {
          "at": "0x0505",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        },
        {
          "at": "0x0508",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        },
        {
          "at": "0x0908",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        },
        {
          "at": "0x0a08",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        },
        {
          "at": "0x050F",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0xFF66",
      "report": [
        {
          "at": "0x0005",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000001"
        }
      ]
    }
  ]
}

Remark:

  • Older DDF use a fake sensor for HPHC, they have a ZHAConsumption finishing by 01 and another finishing by 02, and both using state/consumption. This DDF create only one ZHAConsumption but having state/consumption and state/consumption_2
  • The ZHAPower will have state/current_P1 state/current_P2 and state/current_P3, but the power is triphase.
  • The result will depend of third app integration, wich one are you using (can use the same trick for the ZHAConsumption but I think now they support it)? Else you can check the result in phoscon / help / API Information / sensor to see raw values.

@mathieu it’s ok or do you need more help ?

Hello,

Thank you very much for your work on the ZLinky DDF files, it is very helpful !
I am using the HP/HC DDF mainly for power and alarm.

Does anyone saw the alarm activated ?

I tried to exceed the subscription, 6500/6000 VA for me, during some time, about 1 minute. I could see the Linky symbol indicating that I was exceeding but I got no change on the alarm value on the Conbee API. I also changed the associated binding report min value to 1.

Thank you in advance for your help and have a good day,
Samuel

The DDF seems working, but I don’t see additional sensors on Home Assistant.
I have to test via the Rest API, but don’t I’ve time right now. I will try this week end.
Thanks for your help.

@Samuel There was already a discussion about this feature, will check on github if I find it again.

The DDF is looking for cluster 0xff66, attribute 0x0005, It just check if this value is > 0 or not, you can check it too in deconz to compare if you have the GUI.

Edit :
I have check the site GitHub - fairecasoimeme/Zlinky_TIC: Téléinformation Linky autoalimenté ZigBee 3.0 and I only see this feature for historic mode, wich one have you ?

Edit2:
Some tests here LiXee ZLinky_TIC · Issue #5459 · dresden-elektronik/deconz-rest-plugin · GitHub

Hello @Smanar,

Thank you for your help !

Yes, my Linky is using the historic mode with “heures pleines/heures creuses”. I am not using the deconz GUI, only the REST API.

The link #2 with the test is very instructive and it replies to my question !
I only checked the apparent power “Puissance apparente” not the current “Courant efficace” and I did not reached 7000 VA, I just stopped when the Linky showed its alert.

I will try again this weekend and maybe install the deconz GUI.

Have a good evening,
Samuel

I know there is an issue somewhere about this setting going “true” > 0 but never return to 0. But I can’t find it again, so idk if its solved or not, or if there is a special thing to do on the device to reset this value.

Hello @Smanar,

I managed to activate the alarm on the REST API and also the ADPS value at 32 A, around 7500 VA as I have 238 V. On my ZLinky, the value correctly returned to 0.

As far as I understood, the indicator on the Linky is shown as soon as the apparent power exceed the subscribed/reference one, so 6000 VA for me. But the ADPS is reported when the current exceed the reference one computed from the reference power for 200 V which for me is 30 A.

I still need to do some tests to check the time between the over consumption and the alarm on the REST API.

Thank you again and have a good day,
Samuel

Ha nice , so the value return to zero itself ? Nice to know.

BTW, for information, I m “out of country” for 1 week, so I will not be able to add/edit DDF before next week.

Hello all,
Do we still need to implement the DDF file manually or has it been published officially ?

I am using a conbee II version 2.17.01 / firmware 26780700 but it seems I cannot include my Lixee module.

Jordan

Hello Jordan,

I am not an expert in DDF nor LiXee !

The DDFs for LiXee / Zlinky are still in status “Draft” on master so there are some manual operations required to include your LiXee module. It seems that the version 2.17.1 does not contain any DDF.

If you want to go for manual changes, I would suggest to create a “lixee” folder on your Deconz installation and keep the single DDF that match your Linky configuration then change the status to “Gold” so that it will be enabled.

Hope it helps and have a good day,
Samuel

1 Like

Yep exactly.

What is your OS ?
You have one folder reseted by deconz at every update, and one reserved to the user, the second one is not modified.

All DDF provided directly with deCONZ typically reside in /usr/share/deCONZ/devices/ on a Linux system and are loaded first. However, files residing in the home directory of the user running deCONZ (e.g. /home/<DECONZUSER>/.local/share/dresden-elektronik/deCONZ/devices) will override the pre-packaged files to allow users to amend and keep their own files if desired.