Elro Connects Binding (Beta)

No worries. When you test, make sure to download the latest version from the link. I added a signal strength channel on each device and a alarm trigger channel on the bridge. This one will trigger if an alarm on any of the connected devices triggers. The idea is that an you should always be able to get the alarm, even if no things are set up for the individual devices. But that is a configuration choice of course.

A trigger channel can indeed be used through rules (typically, send a notificationā€¦ if a trigger event is received), or you could use the timestamp-trigger profile to connect this trigger channel to a DateTime item. That item will then get updated with the time of the last alarm. Check the documentation on profiles here.

1 Like

Thanks for your hints Mark, much appreciated.

What Iā€™m trying to achieve is: when the smokeAlarm is triggered, I would like to receive a Open update to one Contact item (same when I test the Alarm) ā€¦ when a Closed updaet when the alarm goes off.

Is that possible?

Andrea

Alarm triggered = alarm goes off (real or test).
Linking this to a contact item is a very simple rule you can easily build through the UI:
When the trigger channel triggered
Action update contact item state
In adition, you may want to put an expiry (through metadata) on the contact item to return to the default state after a while.

An alarm is just that. It does not have a state from itself. It will fire when there is an alarm.

1 Like

In this case better to link a Switch item ā€¦ in order to return to the default state manually (that means you also implicitly ack the alarm).

Thanks for sharing
Andrea

@Mherwege a couple of notes.

  1. when K1 goes offline, the thing remains online (Iā€™ve configure all things manually, with a .things file).
  2. remember the WPA2 is just Personal, and the network needs to be 2.4GHz and not 2.4/5GHz ā€¦ and you donā€™t need to reactivate the 5GHz after the configuration, because it will work at the beginning, but in case of rejoin of the wifi network, K1 will stay offline).

Andrea

@Mherwege how can I add the IP address in my .things file? Iā€™ve tried ā€œipā€, or ā€œipaddressā€, but nothing

Bridge elroconnects:connector:myhub [ connectorId="ST_XXXXXXXXXXXXX", refreshInterval=120, ipaddress="192.168.13.59" ] {
    smokealarm 1 "ELRO SmokeDetector Kitchen" [ deviceId="1" ]
 //   coalarm 2 "Garage" [ deviceId="2" ]
 //   heatalarm 3 "Kitchen" [ deviceId="3" ]
 //   wateralarm 4 "Basement" [ deviceId="4" ]
 //   entrysensor 5 "Back Door" [ deviceId="5" ]
 //   motionsensor 6 "Hallway" [ deviceId="6" ]
 //   temperaturesensor 7 "Family Room" [ deviceId = "7" ]
 //   powersocket 8 "Television" [ deviceId = "8" ]
}

edit: solved, it was ipAddress, not ipaddress

@Mherwege the version with IP is working like a charm, with K1 and OH3 on different subnets :slight_smile:

I think you can integrate this function in the main stream.

Let me summarise my findings:

  • the Binding with IP advanced feature is working great. With the new Binding you can implement ELRO K1 on a multi-vlan environment, without being forced to put K1 and OH3 on the same subnet.

  • The most important thing is remember to have a 2.4GHZ WPA2-PSK Network for configuring initially the K1 Connector. WPA3 or WPA2-EAP are not supported (ELRO told me they will add in case those options in a new device, not in the current K1 version).

  • Mandatory is disabling the 5GHz Band, if enabled. This can impact also any following re-connection

  • The client with ELRO Connects app is using a discovery protocol to find the K1 Connector. Both client and connector need to be on the same wifi network. This is using for sure a sort of multicast, so itā€™s mandatory to avoid any solution that avoid any connection between wifi clients on the same SSID (like client device isolation, multicast/broadcast block, etc etc ā€¦) After the initialisation of the K1 Connector, any isolation mechanism between wifi clients can be reenabled without any issue.

Fantastic job Mark :slight_smile: a huge THANK YOU

Andrea

Can you be a bit more precise here? In what way does the K1 go offline? I would expect it to go offline in OH after the refresh interval at most. If thatā€™s not the case, I am interested in seeing some logs on when that happens.

The issue Iā€™ve experienced was during a fault in my original Wifi network ā€¦ rebooting the AP (where it was present the 2.4GHz and also the 5GHz) the K1 stays offline, but the thing in OH3 was still online. After the creation of a specific 2.4GHz-only network for K1, I didnā€™t experienced additional issues.

But we can simulate a fault in K1, and see what happens. Let me check

Andrea

Is it the binding now available in official 3.3M3 ?
This beta version from marketplace should then be unpublished.

1 Like

I have done further development of the binding, not yet in the milestone version (and not yet submitted for review). I have updated this submission with the development version.
I highly welcome feedback from users.

1 Like

Hi Mark,

the version you shared, with static IP option, is working like a charm here. Now Iā€™ve moved to 3.3.0 M3, and I hope the release published with M3 is the same.

thanks
Andrea

@ariela Yes, the version in 3.3.0 M3 already contains the static IP logic. This marketplace version adds extra functionality on top.

1 Like

The marketplace binding version has been enhanced and updated. The enhancements have been submitted for review in PR #12653.

Mark, any plan to include in the Binding also the radiator valves (SF40RV)? they look very good :slight_smile:
thanks
Andrea

I donā€™t have immediate plans, but I am up for a challenge if someone is willing to test. It is a very different type of device from the rest. All others are just sensors.

All functionality in this beta version is now available in the snapshot version of openHAB. If you wish to use this enhanced version, please upgrade to the snapshot, or the next milestone version 3.3.0.M5 as soon as it is available. You can still manually download the beta binding jar linked in the first post and drop it in your addons folder if you do not wish to upgrade at this point.

1 Like

ciao Mark,

3.3.0 M5 here. Iā€™ve cleaned up the cache, restarted, and at the beginning I saw this log:

2022-05-08 11:02:57.144 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.elroconnects.internal.handler.ElroConnectsSmokeAlarmHandler@7ee236ee': count is negative: -11
java.lang.IllegalArgumentException: count is negative: -11
	at java.lang.String.repeat(String.java:3149) ~[?:?]
	at org.openhab.binding.elroconnects.internal.util.ElroConnectsUtil.encode(ElroConnectsUtil.java:49) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsBridgeHandler.renameDevice(ElroConnectsBridgeHandler.java:717) ~[?:?]
	at org.openhab.binding.elroconnects.internal.devices.ElroConnectsDevice.updateDeviceName(ElroConnectsDevice.java:87) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.updateDeviceName(ElroConnectsDeviceHandler.java:121) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.initialize(ElroConnectsDeviceHandler.java:56) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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:834) [?:?]
2022-05-08 11:02:57.245 [INFO ] [o.internal.handler.AstroThingHandler] - Scheduled Positional job astro:moon:home every 60 seconds
2022-05-08 11:02:57.196 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.elroconnects.internal.handler.ElroConnectsSmokeAlarmHandler@1a2401e9': count is negative: -11
java.lang.IllegalArgumentException: count is negative: -11
	at java.lang.String.repeat(String.java:3149) ~[?:?]
	at org.openhab.binding.elroconnects.internal.util.ElroConnectsUtil.encode(ElroConnectsUtil.java:49) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsBridgeHandler.renameDevice(ElroConnectsBridgeHandler.java:717) ~[?:?]
	at org.openhab.binding.elroconnects.internal.devices.ElroConnectsDevice.updateDeviceName(ElroConnectsDevice.java:87) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.updateDeviceName(ElroConnectsDeviceHandler.java:121) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.initialize(ElroConnectsDeviceHandler.java:56) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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:834) [?:?]
2022-05-08 11:02:57.242 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.elroconnects.internal.handler.ElroConnectsSmokeAlarmHandler@7db455bd': count is negative: -12
java.lang.IllegalArgumentException: count is negative: -12
	at java.lang.String.repeat(String.java:3149) ~[?:?]
	at org.openhab.binding.elroconnects.internal.util.ElroConnectsUtil.encode(ElroConnectsUtil.java:49) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsBridgeHandler.renameDevice(ElroConnectsBridgeHandler.java:717) ~[?:?]
	at org.openhab.binding.elroconnects.internal.devices.ElroConnectsDevice.updateDeviceName(ElroConnectsDevice.java:87) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.updateDeviceName(ElroConnectsDeviceHandler.java:121) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.initialize(ElroConnectsDeviceHandler.java:56) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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:834) [?:?]
2022-05-08 11:02:57.235 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'elroconnects:smokealarm:myhub:1': count is negative: -11
java.lang.IllegalArgumentException: count is negative: -11
	at java.lang.String.repeat(String.java:3149) ~[?:?]
	at org.openhab.binding.elroconnects.internal.util.ElroConnectsUtil.encode(ElroConnectsUtil.java:49) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsBridgeHandler.renameDevice(ElroConnectsBridgeHandler.java:717) ~[?:?]
	at org.openhab.binding.elroconnects.internal.devices.ElroConnectsDevice.updateDeviceName(ElroConnectsDevice.java:87) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.updateDeviceName(ElroConnectsDeviceHandler.java:121) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.initialize(ElroConnectsDeviceHandler.java:56) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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:834) [?:?]
2022-05-08 11:02:57.352 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'elroconnects:smokealarm:myhub:2': count is negative: -12
java.lang.IllegalArgumentException: count is negative: -12
	at java.lang.String.repeat(String.java:3149) ~[?:?]
	at org.openhab.binding.elroconnects.internal.util.ElroConnectsUtil.encode(ElroConnectsUtil.java:49) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsBridgeHandler.renameDevice(ElroConnectsBridgeHandler.java:717) ~[?:?]
	at org.openhab.binding.elroconnects.internal.devices.ElroConnectsDevice.updateDeviceName(ElroConnectsDevice.java:87) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.updateDeviceName(ElroConnectsDeviceHandler.java:121) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.initialize(ElroConnectsDeviceHandler.java:56) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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:834) [?:?]
2022-05-08 11:02:57.295 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'elroconnects:smokealarm:myhub:3': count is negative: -11
java.lang.IllegalArgumentException: count is negative: -11
	at java.lang.String.repeat(String.java:3149) ~[?:?]
	at org.openhab.binding.elroconnects.internal.util.ElroConnectsUtil.encode(ElroConnectsUtil.java:49) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsBridgeHandler.renameDevice(ElroConnectsBridgeHandler.java:717) ~[?:?]
	at org.openhab.binding.elroconnects.internal.devices.ElroConnectsDevice.updateDeviceName(ElroConnectsDevice.java:87) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.updateDeviceName(ElroConnectsDeviceHandler.java:121) ~[?:?]
	at org.openhab.binding.elroconnects.internal.handler.ElroConnectsDeviceHandler.initialize(ElroConnectsDeviceHandler.java:56) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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:834) [?:?]

After a while, all the sensors become ONLINE, so not a big issue. But perhaps something to be investigated.

please let me know
thanks
Andrea

At the moment I have some zwave valves. But I will consider the option, in the future. thanks for your help Mark

checking, and the Elro Binding (beta) is not anymore in the marketplace, right? Now we have only one Binding available, the official one. Is that correct? Iā€™m asking, because I have some strange issues in my Bindings list :slight_smile:

thanks
Andrea

Thatā€™s correct. Everything that was in the beta should be in the released version.

1 Like