Binding/configuration for ReVolt radio energy meter NC-5262?

Hi,
I just got two of these here on my table:
http://www.revolt-power.de/Funksteckdose-NC-5462-919.shtml
The price was very nice: € 13,90 per plug.

I read here, that it was possible to integrate these into FHEM via CUL - and I asked myself if someone else did it already for openHAB. They’re working in the range 433,05 - 434,75 Mhz

If nobody did this before, I’ll try my luck - but maybe I need support from people having experience with CUL.

Cheers,
Boby

Hello again,
I got them running on my CUL, I receive the data - and I know how to interpret the received values.
But what I’m missing now, is the the proper way to get the data from the CUL into openHAB.

Is there an existing way to get “any” data received from my CUL stick into openHAB without developing a transport binding? Means: Is there an “open” CUL transport protocol I don’t know an just have to use it?
I don’t speak JAVA, otherwise I’d develop some io-binding for that…

Thanks,
Boby

Has this topic someone already solved? I’m also looking to include the Revolt sockets via nanoCUL into OH2

Unfortunately unsolved for three years

Hey,

What i was able to do so far:

  • Installed Jeelink Binding
  • Created a Jeelink USb Device for the nanocul with baudrate 38400
  • (note init string seems not to work properly)
  • used a terminal program to set the nanocul to Slow RF “fx”
  • set the nanocul into the right mode: "X21

Now I’m able to see the messages of the Revolt in the openhab2 log. But thats where i stuck now. So i created a feqture request for it: https://github.com/openhab/openhab2-addons/issues/6077

BR,
Rob

(Continue from the issue report):
Sorry, was my fault. I had still installed the 2.4.0. Now 2.5.0 is running.
Init works now as expected:

==> /var/log/openhab2/openhab.log <==
2019-12-10 18:34:42.231 [DEBUG] [elink.internal.JeeLinkHandlerFactory] - creating JeeLinkHandler for thing 156a8b6a...
2019-12-10 18:34:42.237 [DEBUG] [elink.internal.JeeLinkHandlerFactory] - registering sensor discovery service...
2019-12-10 18:34:42.259 [DEBUG] [org.openhab.binding.jeelink         ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.config.discovery.DiscoveryService}={service.id=525, service.bundleid=306, service.scope=singleton} - org.openhab.binding.jeelink

==> /var/log/openhab2/events.log <==
2019-12-10 18:34:42.307 [hingStatusInfoChangedEvent] - 'jeelink:jeelinkUsb:156a8b6a' changed from UNINITIALIZED to INITIALIZING

==> /var/log/openhab2/openhab.log <==
2019-12-10 18:34:42.309 [DEBUG] [l.connection.JeeLinkSerialConnection] - Creating serial connection for port /dev/ttyUSB1 with baud rate 57600...
2019-12-10 18:34:42.314 [DEBUG] [l.connection.JeeLinkSerialConnection] - Opening serial connection to port /dev/ttyUSB1 with baud rate 57600...
2019-12-10 18:34:42.326 [DEBUG] [ding.jeelink.internal.JeeLinkHandler] - Connection to port /dev/ttyUSB1 opened.

==> /var/log/openhab2/events.log <==
2019-12-10 18:34:42.330 [hingStatusInfoChangedEvent] - 'jeelink:jeelinkUsb:156a8b6a' changed from INITIALIZING to ONLINE

==> /var/log/openhab2/openhab.log <==
2019-12-10 18:34:42.331 [DEBUG] [ding.jeelink.internal.JeeLinkHandler] - Init commands scheduled in 10 seconds.
2019-12-10 18:34:42.336 [DEBUG] [ding.jeelink.internal.JeeLinkHandler] - Monitoring job started.

==> /var/log/openhab2/events.log <==
2019-12-10 18:34:48.050 [ome.event.ItemCommandEvent] - Item 'Tasmota_RGB01' received command ON
2019-12-10 18:34:48.078 [nt.ItemStatePredictedEvent] - Tasmota_RGB01 predicted to become ON

==> /var/log/openhab2/openhab.log <==
2019-12-10 18:34:49.273 [WARN ] [eneric.internal.generic.ChannelState] - Command 'FFB36B' not supported by type 'ColorValue': FFB36B is not a valid RGB syntax

==> /var/log/openhab2/events.log <==
2019-12-10 18:34:49.281 [ome.event.ItemCommandEvent] - Item 'Tasmota_RGB02' received command ON
2019-12-10 18:34:49.295 [nt.ItemStatePredictedEvent] - Tasmota_RGB02 predicted to become ON

==> /var/log/openhab2/openhab.log <==
2019-12-10 18:34:49.945 [INFO ] [org.quartz.core.QuartzScheduler     ] - Scheduler openHAB-job-scheduler_$_NON_CLUSTERED started.
2019-12-10 18:34:50.707 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 45 1 4 12 63
2019-12-10 18:34:50.711 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 45 1 4 12 63
2019-12-10 18:34:51.345 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 8 1 4 25 106
2019-12-10 18:34:51.348 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 8 1 4 25 106
2019-12-10 18:34:51.714 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 2 1 4 223 45
2019-12-10 18:34:51.716 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 2 1 4 223 45
2019-12-10 18:34:52.333 [DEBUG] [ding.jeelink.internal.JeeLinkHandler] - Sending init commands for port /dev/ttyUSB1: fx;X21
2019-12-10 18:34:52.338 [DEBUG] [connection.AbstractJeeLinkConnection] - Writing to device on port /dev/ttyUSB1: fx
2019-12-10 18:34:52.341 [DEBUG] [connection.AbstractJeeLinkConnection] - Writing to device on port /dev/ttyUSB1: X21
2019-12-10 18:34:52.496 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 17 1 4 207 47
2019-12-10 18:34:52.499 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 17 1 4 207 47
2019-12-10 18:34:52.772 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB1: r4F1BE5004F3206695BBA592F
2019-12-10 18:34:53.174 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB1: omAF65C052
2019-12-10 18:34:54.061 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 12 1 4 203 43
2019-12-10 18:34:54.064 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 12 1 4 203 43
2019-12-10 18:34:54.302 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 6 1 4 196 45
2019-12-10 18:34:54.309 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 6 1 4 196 45
2019-12-10 18:34:54.542 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 9 1 4 144 46
2019-12-10 18:34:54.547 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 9 1 4 144 46
2019-12-10 18:34:55.052 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 45 1 4 13 63
2019-12-10 18:34:55.054 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 45 1 4 13 63
2019-12-10 18:34:56.067 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB1: omCCB7210EA0A02C
2019-12-10 18:34:56.713 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 17 1 4 207 48
2019-12-10 18:34:56.715 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 17 1 4 207 48
2019-12-10 18:34:57.225 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB0: OK 9 0 1 4 195 51
2019-12-10 18:34:57.229 [TRACE] [.LaCrosseTemperatureReadingConverter] - Creating reading from: OK 9 0 1 4 195 51

So since the init procedure is fixed… the protocol is next, right?

Discovery should work and I already have part of the protocol running. Power and consumption are reported to openHAB. I have no more time now, will work on this the next days.

I have just updated the jar file with the current state. Please try out if you can discover your power monitors and report back if they get sensible values.

Great work man!
Autodiscovery works - I had to trigger it several times until it received most of my sensors (but that’s just fine tuning of the sensors radio settings too)
The so far decoded values make sense:

==> /var/log/openhab2/openhab.log <==
2019-12-10 19:09:39.281 [WARN ] [eneric.internal.generic.ChannelState] - Command 'FFB36B' not supported by type 'ColorValue': FFB36B is not a valid RGB syntax
2019-12-10 19:09:39.365 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB1: r4F1BE3005032067C5CBA6225
2019-12-10 19:09:39.367 [DEBUG] [ternal.revolt.RevoltReadingConverter] - hex=E3 int=227
2019-12-10 19:09:39.369 [DEBUG] [ternal.revolt.RevoltReadingConverter] - hex=0050 int=80
2019-12-10 19:09:39.372 [DEBUG] [ternal.revolt.RevoltReadingConverter] - hex=32 int=50
2019-12-10 19:09:39.374 [DEBUG] [ternal.revolt.RevoltReadingConverter] - hex=067C int=1660
2019-12-10 19:09:39.376 [DEBUG] [ternal.revolt.RevoltReadingConverter] - hex=5C int=92
2019-12-10 19:09:39.378 [DEBUG] [ternal.revolt.RevoltReadingConverter] - hex=BA62 int=47714
2019-12-10 19:09:39.381 [DEBUG] [.internal.revolt.RevoltSensorHandler] - updating states for thing 4F1B: currWatt=166.0 (166.0), consumption=477.14 (477.14)

I have once again updated the jar. I have added the missing channels.Missing is the update of the readme, I will do this once you are happy with the naming, as otherwise I will have to correct it twice.

So please install, check values, naming and description of things and channels and report back.

Readings are now there (had to recreate/rediscover the things), naming i good too. Your calculation seems to be okay too. Just the items aren’t receiving the proper values jet (I’m checking my setup,maybe I did something wrong - just used the auto creation assistant from paperUI jet)

2019-12-11 16:59:01.508 [TRACE] [connection.AbstractJeeLinkConnection] - Read line from port /dev/ttyUSB1: r4B5EE5002B3202F64D14DA53
2019-12-11 16:59:01.513 [DEBUG] [.internal.revolt.RevoltSensorHandler] - updating states for thing 4B5E: power=75.8, powerFactor=0.77, consumption=53.38, current=0.43, voltage=229, frequency=50

==> /var/log/openhab2/events.log <==
2019-12-11 16:59:01.547 [vent.ItemStateChangedEvent] - Revolt_Infra_SZ_MomentanerVerbrauch changed from 78.7 W to 75.8 W
2019-12-11 16:59:01.567 [vent.ItemStateChangedEvent] - Revolt_Infra_SZ_Leistungsfaktor changed from 0.76 to 0.77
2019-12-11 16:59:01.576 [vent.ItemStateChangedEvent] - Revolt_Infra_SZ_StromstRke changed from 0.45 A to 0.43 A
2019-12-11 16:59:01.584 [vent.ItemStateChangedEvent] - Revolt_Infra_SZ_Spannung changed from 0.45 V to 0.43 V
2019-12-11 16:59:01.590 [vent.ItemStateChangedEvent] - Revolt_Infra_SZ_Stromnetzfrequenz changed from NULL to 0.43 Hz

Sorry, that was my mistake. Copied and pasted without adjusting the getters, which resulted in sending the current to multiple channels.

I have once again updated the jar.

Edit: How often do the monitors send values? On change only or in regular interval? I am wondering what a sensible sensor timeout would be.

Okay, I’m gonna update the jar right away now.
They send all values in a regular interval. Usually almost ever 2 to 3 sec.
I guess just my CUL isn’t the best in receiving the stuff …

Readings are now fine!

So i leave the sensor timeout at 60s. Do you know which devices work with this protocol? Is it only the NC-5462 and the NC-5262 or do all the Revolt Power Monitors work with the same protocol?

Edit: i have now once again updated the jar. I have changed the internal logic a bit simplyfing the addition of new sensor types. I also updated some of the naming and descriptions.

Can you please once again install the jar and check if everything is still working? I would then try to find some people on the jeelink thread that are also willing to test the new version. If everything works as expected, I will create pull request to get the changes into openhab.

I’m using the Revolt NC-5462 and the Profitec KD 310 T (same device it seems).
Maybe also the DIW FHT-9998 and in general all similar looking devices - but that’s just wild guessing.

The latest version of your modules seems to work still fine.