Qubino 3phase smart meter - channels receive strange values

@Vyacheslav_Batyrshin @eshabi
I get very strange values from the different channels.
The device itself shows Consumption = 4.8 kWh
values on channel
… ELECTRIC METER (kWh), I receive 3.3 kWh
… ELECTRIC METER (kWh)1, I receive 4.3 kWh
Device shows actual power usage = 2685 W
Values on channel
… ELECTRIC METER (Watts), I receive 55.7 W
… ELECTRIC METER (Watts)1, I receive 849 W
… ELECTRIC METER (Watts)2, I receive 305.7 W
… ELECTRIC METER (Watts)3, I receive 289 W
… ELECTRIC METER (Watts)4, I receive 248 W

The different Voltage and Amp channels do not get populated at all. The device display shows them correclty.
Channels for kWh 2,3 and 4 do not seem to exist at all.

My assumption was that the channels without a number report the sums of all three phases, but that is not the case here.

Anybody any clue what is going on here?

I think, I learned something last night.
The values of channels “1” seem to show th sum of all three phases. Channel “2”, “3” and “4” show the individual phases. No clue yet, what channels wo a number actually show.

I dont think that the database definition will be the cause here - the database doesn’t define any formulae etc - just the channels.

Maybe you can provide a debug log file showing your problem - at the moment it’s unclear to me at least what is happening, or if there is any sort of problem, or just if you don’t understand the information provided by the meter?

@chris
This device behaves strangely in my environment. I get inconsistent values back via the channels, there are times when the channels do not update at all.
When looking into the channel definitions in the database, I see difference to the channel entries in the xml file that was created for the device.

I attach the xml filenetwork_dd419481__node_116.xml (23.0 KB)

I also see a command class “Command Class Controller Replication” in the XML file. During inclusion I got n error that this class is not available.

2020-05-16 10:09:51.826 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 116: Application Command Request (ALIVE:DONE)
2020-05-16 10:09:51.827 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 116: resetResendCount initComplete=true isDead=false
2020-05-16 10:09:51.829 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 116: Incoming command class COMMAND_CLASS_CONTROLLER_REPLICATION, endpoint 0
2020-05-16 10:09:51.831 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 116: SECURITY NOT required on COMMAND_CLASS_CONTROLLER_REPLICATION
2020-05-16 10:09:51.832 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 116: Received COMMAND_CLASS_CONTROLLER_REPLICATION V0 unknown command 4
2020-05-16 10:09:51.833 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 116: Commands processed 1.
2020-05-16 10:09:51.835 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 116: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@11e99b1.
2020-05-16 10:09:51.836 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-05-16 10:09:51.838 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2020-05-16 10:09:51.839 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-05-16 10:09:51.840 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-05-16 10:10:02.215 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 08 00 04 00 74 02 21 04 A0 
2020-05-16 10:10:02.220 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=116, callback=0, payload=00 74 02 21 04 
2020-05-16 10:10:02.223 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=116, callback=0, payload=00 74 02 21 04 
2020-05-16 10:10:02.224 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-05-16 10:10:02.226 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 116: Application Command Request (ALIVE:DONE)
2020-05-16 10:10:02.227 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 116: resetResendCount initComplete=true isDead=false
2020-05-16 10:10:02.229 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 116: Incoming command class COMMAND_CLASS_CONTROLLER_REPLICATION, endpoint 0
2020-05-16 10:10:02.231 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 116: SECURITY NOT required on COMMAND_CLASS_CONTROLLER_REPLICATION
2020-05-16 10:10:02.233 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 116: Received COMMAND_CLASS_CONTROLLER_REPLICATION V0 unknown command 4
2020-05-16 10:10:02.234 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 116: Commands processed 1.

If there is corruption in the data, then the binding cannot really do a lot to improve this. ZWave has a poor error detection system, so it’s not uncommon for data to come through. Some devices do use a secondary error detection system (ie CRC) which is better, but every time we’ve had these sort of issues, that’s not used, and there’s really nothing that can be done.

You can ignore this - it is not used.

Thanks for the quick response.
What about the difference in channel defs between the database and the xml file?

Can you be a bit more specific? The XML file doesn’t define channels - these are only defined in the database. What do you think is missing (sorry - I know I could try to work this out, but if you can tell me what you think is wrong it would be really helpful).

For Endpoint 0, the meter defs in the XML are:

                <commandClass>COMMAND_CLASS_METER</commandClass>
            <COMMAND__CLASS__METER>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>4</versionSupported>
              <meterType>ELECTRIC</meterType>
              <meterScales>
                <meterScale>E_KVAh</meterScale>
                <meterScale>E_KVARH</meterScale>
                <meterScale>E_KWh</meterScale>
                <meterScale>E_Power_Factor</meterScale>
                <meterScale>E_W</meterScale>
              </meterScales>
              <canReset>true</canReset>
              <isGetSupported>true</isGetSupported>
              <isSupportRequestSupported>true</isSupportRequestSupported>

in the DB the defs are:

For Endpoint 1 in XML file:

<commandClass>COMMAND_CLASS_METER</commandClass>
            <COMMAND__CLASS__METER>
              <endpoint reference="../../../.."/>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <meterType>ELECTRIC</meterType>
              <meterScales>
                <meterScale>E_KVAh</meterScale>
                <meterScale>E_Pulses</meterScale>
                <meterScale>E_KWh</meterScale>
                <meterScale>E_W</meterScale>
              </meterScales>
              <canReset>false</canReset>
              <isGetSupported>true</isGetSupported>
              <isSupportRequestSupported>true</isSupportRequestSupported>

in the DB the defs for Endpoint 1 are:

For Endpoint 2 in the XML file:

<commandClass>COMMAND_CLASS_METER</commandClass>
            <COMMAND__CLASS__METER>
              <endpoint reference="../../../.."/>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <meterType>ELECTRIC</meterType>
              <meterScales>
                <meterScale>E_KVAh</meterScale>
                <meterScale>E_Pulses</meterScale>
                <meterScale>E_KWh</meterScale>
                <meterScale>E_W</meterScale>
              </meterScales>
              <canReset>false</canReset>
              <isGetSupported>true</isGetSupported>
              <isSupportRequestSupported>true</isSupportRequestSupported>

For Endpoint 2 in the DB:

For Endpoint 3 in the XML:

 <commandClass>COMMAND_CLASS_METER</commandClass>
            <COMMAND__CLASS__METER>
              <endpoint reference="../../../.."/>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <meterType>ELECTRIC</meterType>
              <meterScales>
                <meterScale>E_KVAh</meterScale>
                <meterScale>E_Pulses</meterScale>
                <meterScale>E_KWh</meterScale>
                <meterScale>E_W</meterScale>
              </meterScales>
              <canReset>false</canReset>
              <isGetSupported>true</isGetSupported>
              <isSupportRequestSupported>true</isSupportRequestSupported>

For Endpoint 3 in the DB:

and finally for Endpoint 4 in XML:

 <COMMAND__CLASS__METER>
              <endpoint reference="../../../.."/>
              <version>0</version>
              <instances>0</instances>
              <control>false</control>
              <versionSupported>0</versionSupported>
              <meterType>ELECTRIC</meterType>
              <meterScales>
                <meterScale>E_KVAh</meterScale>
                <meterScale>E_Pulses</meterScale>
                <meterScale>E_KWh</meterScale>
                <meterScale>E_W</meterScale>
              </meterScales>
              <canReset>false</canReset>
              <isGetSupported>true</isGetSupported>
              <isSupportRequestSupported>true</isSupportRequestSupported>

and Endpoint 4 in the DB:

I can see there may be some differences, but to summarise, what do you think is missing?

If you think there are things missing, then please update the database, or at least propose the changes to be made.

I do not know if any of the differences are a cause for my issues. It looks strange to me that the the xml and db have different measures for the meter in different sequences. I have no experience with maintaining the database, so I am concerned to worsen the situation when making changes to the db.
I do not know what the best next step in this situation is.

I’ve once compared the readings on the device itself vs. the z-wave readings and I remember there were only some minor differences.
One thing I did notice is that the readings are not updated immediately, so there is a chance that there will be some temporary inconsistency between the numbers.