HowTo set "repeaterMode" EnOcean actuator, String item with channel?

Hi there,

I want to enable “repeaterMode” for one of my EnOcean actuators. Its a Nodon 1-channel actuator, where the EnOcean bridge has to enable it. Unlike Eltako or PEHA, where it could be enabled on device level.

That value is available as string channel “enocean:measurementSwitch:gtwy:0516xxxx:repeaterMode”, but I don’t find a description howto set that channel to the needed value.

According to the EnOcean documentation, there are 3 values valid: 1, 2 or disable

Normally actuators have 2 different things to set, Repeater on/off, Repeater level 1 or 2.

Here I guess setting “repeaterMode 1 / 2” would imply “Repeater On” + “Repeater Level 1 /2” and “repeaterMode disable” imply “Repeater Off” and well, no “Repeater Level” …

For my setup I would like to set “repeaterMode 1”, means “Repeater On” and “Repater Level 1”.

Reading existing openhab documentation doesn’t enlight me howto define that specific mode into a string item with channel … ?

Have you tried to set your string value as a command option for an item linked to the channel?

Since I try to maintain everything in files under “/etc/openhab”, I tried to define an Item to that channel, no success, basically no documentation … nice job to provide that function, but keeping the secret how to us it …

So, the actuator is defined in a .things file and has also entities in .items file, I can add an item in PaperUI. And that does work, I can change “repeaterMode” into “Level-1”, “Level-2” and “Repeater Off”.

2021-08-15 18:23:48.357 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Flur_EG_Aktor_repeatmode' received command LEVEL1

2021-08-15 18:23:48.381 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Flur_EG_Aktor_repeatmode' predicted to become LEVEL1

2021-08-15 18:23:48.405 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Flur_EG_Aktor_repeatmode' changed from NULL to LEVEL1

But that item seems to have maintained as long as the bridge does run in that status.

And that drives me nuts now, no documentation how to define that specific item in a .items file, not forced to keep it in PaperUI.

I also don’t find a possibilty to show an ASCII output of an PaperUI created item, to copy or to learn, unlike e.g. things …

If you want to “inspect” an Item, use REST API docs and look at its JSON form.

And that PaperUI created item for “repeaterMode” does cause exceptions using it:

2021-08-15 18:28:51.421 [WARN ] [.server.impl.connections.HttpSession] - Exception encountered while verifying pairing

java.lang.Exception: Unknown user: 7CD5A814-42C8-4766-B69D-7AB5A4AB6C1B

	at io.github.hapjava.server.impl.pairing.PairVerificationManager.stage2(PairVerificationManager.java:113) ~[bundleFile:?]

	at io.github.hapjava.server.impl.pairing.PairVerificationManager.handle(PairVerificationManager.java:51) ~[bundleFile:?]

	at io.github.hapjava.server.impl.connections.HttpSession.handlePairVerify(HttpSession.java:127) [bundleFile:?]

	at io.github.hapjava.server.impl.connections.HttpSession.handleRequest(HttpSession.java:56) [bundleFile:?]

	at io.github.hapjava.server.impl.connections.ConnectionImpl.doHandleRequest(ConnectionImpl.java:56) [bundleFile:?]

	at io.github.hapjava.server.impl.connections.ConnectionImpl.handleRequest(ConnectionImpl.java:49) [bundleFile:?]

	at io.github.hapjava.server.impl.http.impl.AccessoryHandler.channelRead0(AccessoryHandler.java:52) [bundleFile:?]

	at io.github.hapjava.server.impl.http.impl.AccessoryHandler.channelRead0(AccessoryHandler.java:17) [bundleFile:?]

	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) [bundleFile:4.1.63.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [bundleFile:4.1.63.Final]

	at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61) [bundleFile:4.1.63.Final]

	at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:370) [bundleFile:4.1.63.Final]

	at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66) [bundleFile:4.1.63.Final]

	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [bundleFile:4.1.63.Final]

	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.63.Final]

	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.63.Final]

Ok, thanks, quickly run thru API explorer for that item:

{
  "link": "https://openhabian:8443/rest/items/Flur_EG_Aktor_repeatmode",
  "state": "LEVEL1",
  "stateDescription": {
    "pattern": "%s",
    "readOnly": false,
    "options": [
      {
        "value": "OFF",
        "label": "Repeater off"
      },
      {
        "value": "LEVEL1",
        "label": "Level-1"
      },
      {
        "value": "LEVEL2",
        "label": "Level-2"
      }
    ]
  },
  "commandDescription": {
    "commandOptions": [
      {
        "command": "OFF",
        "label": "Repeater off"
      },
      {
        "command": "LEVEL1",
        "label": "Level-1"
      },
      {
        "command": "LEVEL2",
        "label": "Level-2"
      }
    ]
  },
  "editable": true,
  "type": "String",
  "name": "Flur_EG_Aktor_repeatmode",
  "label": "Flur EG Aktor Repeater Modus",
  "category": "",
  "tags": [
    "Point"
  ],
  "groupNames": []
}

That tag [“Point”] I can see to add to my manual item in file. But how get from the rest of information to a correct behavior?

Looks like I got it … :face_with_monocle: :smirk:

String Flur_EG_Aktor_repeatmode "Repeater Mode" <text> (EG_Flur_Nodon) ["Point"] {
   channel="enocean:measurementSwitch:gtwy:0516xxxx:repeaterMode"
   [profile="system:default", OFF="Repeater off", LEVEL1="Level-1", LEVEL2="Level-2"]
}

Can be shown in Basic UI:

And does obviously the job according to the log:

2021-08-15 19:56:52.856 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Flur_EG_Aktor_repeatmode' received command LEVEL1

2021-08-15 19:56:52.873 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Flur_EG_Aktor_repeatmode' predicted to become LEVEL1

2021-08-15 19:56:52.891 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Flur_EG_Aktor_repeatmode' changed from NULL to LEVEL1

So, now to find out if it has to be set on every OH start and how to prefill that item accordingly …

Nope, that was wrong, did just work properly as long as my GUI created item was available. The secret seems to be “Metadata in items” …

Actually my item in file definition looks like that:

String Flur_EG_Aktor_repeatmode "Repeater Mode" <text> (EG_Flur_Nodon) ["Point"] {
   channel="enocean:measurementSwitch:gtwy:0516xxxx:repeaterMode",
   stateDescription=""[
      pattern="%s",
      readOnly="false",
      options="OFF=Off, LEVEL1=Level-1, LEVEL2=Level-2"
   ],
   commandDescription=""[
      commandOptions="OFF=Off, LEVEL1=Level-1, LEVEL2=Level-2"
   ],
   editable="true"
}

It does work and do the job, but get sometimes that error, especially when I switch between the options fast:

2021-08-27 18:29:19.605 [ERROR] [ernal.transceiver.EnOceanTransceiver] - Exception in informListeners

java.lang.NumberFormatException: For input string: ""

	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:?]

	at java.lang.Long.parseLong(Long.java:702) ~[?:?]

	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.informListeners(EnOceanTransceiver.java:304) [bundleFile:?]

	at org.openhab.binding.enocean.internal.transceiver.EnOceanESP3Transceiver.processMessage(EnOceanESP3Transceiver.java:140) [bundleFile:?]

	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.receivePackets(EnOceanTransceiver.java:261) [bundleFile:?]

	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver$1.run(EnOceanTransceiver.java:197) [bundleFile:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:829) [?:?]

So, looks like is not perfect, albeit switching thru the options:

2021-08-27 18:29:19.547 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Flur_EG_Aktor_repeatmode' received command OFF

2021-08-27 18:29:19.549 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Flur_EG_Aktor_repeatmode' predicted to become OFF

2021-08-27 18:29:19.560 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Flur_EG_Aktor_repeatmode' changed from LEVEL2 to OFF

Any inputs welcome? @rossko57 ?

Nope, I don’t know anything about Enocean binding, the thing complaining.

@rossko57 Well, I don’t think this is EnOcean specific, that goes rather back to notation, semantic of that item with metadata …

What I can see so far is, for testing everybody is switching fast(er), just for the sake of switching, so I do and do cause that error. But if I leave some time in between, let’s say 30sec or more, I often don’t get that error in log …

I already tried "autoupdate=“true” but didn’t help.

Treat the message as you wish.

I’m not sure what you think autoupdate does

Well, exactly like described. Since the start of the error is

Could have been, that there’s a mismatch between any internal stored data and reality on actuator causing that. So the try with autoupdate was to proof if updating information is maybe not reliable enough … but I got the exception also, after a while …

Well, that is overall a java error, exception, here in conjunction with an EnOcean device, therefore it points to it … it could just be wrong formated line in the item and it would point to EnOcean something … but the cause would be the wron format and nothing EnOcean specific …

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.