Satel binding - support, announcements and feature requests

Hi @olega
I haven’t tested the binding on OH3 yet, I will try on the weekend.
Do you have more logs, stack trace or anything that could help addressing the issue?

Here is the debug log:
23:10:01.199 [DEBUG] [g.satel.internal.protocol.SatelModule] - Connection failed

org.openhab.binding.satel.internal.protocol.SatelModule$ConnectionFailureException: IO error occurred while connecting socket

at org.openhab.binding.satel.internal.protocol.Ethm1Module.connect(Ethm1Module.java:85) ~[bundleFile:?]

at org.openhab.binding.satel.internal.protocol.SatelModule.communicationLoop(SatelModule.java:384) [bundleFile:?]

at org.openhab.binding.satel.internal.protocol.SatelModule$CommunicationWatchdog$2.run(SatelModule.java:520) [bundleFile:?]

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

Caused by: java.io.IOException: General encryption failure

at org.openhab.binding.satel.internal.protocol.Ethm1Module$EncryptedCommunicationChannel.<init>(Ethm1Module.java:134) ~[bundleFile:?]

at org.openhab.binding.satel.internal.protocol.Ethm1Module.connect(Ethm1Module.java:80) ~[bundleFile:?]

... 3 more

Caused by: java.security.GeneralSecurityException: JCE does not support 192-bit keys

at org.openhab.binding.satel.internal.protocol.EncryptionHelper.<init>(EncryptionHelper.java:43) ~[bundleFile:?]

at org.openhab.binding.satel.internal.protocol.Ethm1Module$EncryptedCommunicationChannel.<init>(Ethm1Module.java:132) ~[bundleFile:?]

at org.openhab.binding.satel.internal.protocol.Ethm1Module.connect(Ethm1Module.java:80) ~[bundleFile:?]

... 3 more

23:10:01.222 [DEBUG] [.satel.internal.event.EventDispatcher] - Distributing event: org.openhab.binding.satel.internal.event.ConnectionStatusEvent: connected = false, reason = IO error occurred while connecting socket

23:10:02.980 [DEBUG] [l.internal.handler.SatelBridgeHandler] - Module not initialized yet, skipping refresh

23:10:07.986 [DEBUG] [l.internal.handler.SatelBridgeHandler] - Module not initialized yet, skipping refresh

Same occurs in 2.5

Actually I just managed to fix it by adding env variable in docker :slight_smile:
CRYPTO_POLICY: "unlimited"

Yes, that was the reason, I am glad you solved the issue. :slight_smile:

Is the binding working without any problems now? Are there any other issues on OH3?

After upgrading to 3.0 (same issue is also in snapshot 3.1.0) the automatic discovery of things with ETHM-1 no longer works. In previous versions this has been working flawlessly. Manual adding of things continues to work fine.

I get the following error message from the discovery (note highlighted mismatch of thing and bridge UIDs which seems to cause the problem; my correct bridge UID is ‘satel:ethm-1:71a70daa2d’; if I manually add a satel:system it gets a different UID):

2021-01-03 12:39:40.419 [ERROR] [nternal.DiscoveryServiceRegistryImpl] - Cannot trigger scan for thing types '[satel:event-log, satel:partition, satel:atd-100, satel:output, satel:zone, satel:shutter, satel:system]' on 'SatelDeviceDiscoveryService'!
java.lang.IllegalArgumentException: Thing UID 'satel:system:71a70daa2d' does not match bridge UID 'satel:ethm-1:71a70daa2d'
	at org.openhab.core.config.discovery.DiscoveryResultBuilder.validateThingUID(DiscoveryResultBuilder.java:172) ~[bundleFile:?]
	at org.openhab.core.config.discovery.DiscoveryResultBuilder.withBridge(DiscoveryResultBuilder.java:120) ~[bundleFile:?]
	at org.openhab.binding.satel.internal.discovery.SatelDeviceDiscoveryService.addThing(SatelDeviceDiscoveryService.java:163) ~[?:?]
	at org.openhab.binding.satel.internal.discovery.SatelDeviceDiscoveryService.startScan(SatelDeviceDiscoveryService.java:77) ~[?:?]
	at org.openhab.core.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:194) ~[bundleFile:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:377) [bundleFile:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:362) [bundleFile:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:211) [bundleFile:?]
	at org.openhab.core.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:105) [bundleFile:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) [bundleFile:1.0.9]
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) [bundleFile:1.0.9]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) [bundleFile:1.0.9]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) [bundleFile:1.0.9]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) [bundleFile:1.0.9]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) [bundleFile:1.0.9]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [bundleFile:1.0.9]
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [bundleFile:1.0.9]
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) [bundleFile:1.0.9]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [bundleFile:3.1.0]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) [bundleFile:1.0.9]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [bundleFile:?]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]
	at java.lang.Thread.run(Thread.java:834) [?:?]

Same issue here.
Did u find walkaround or stick to manual conf.?

2021-01-04 15:57:34.750 [ERROR] [nternal.DiscoveryServiceRegistryImpl] - Cannot trigger scan for thing types '[satel:atd-100, satel:partition, satel:event-log, satel:system, satel:shutter, satel:zone, satel:output]' on 'SatelDeviceDiscoveryService'!
java.lang.IllegalArgumentException: Thing UID 'satel:system:e2e48b9020' does not match bridge UID 'satel:ethm-1:e2e48b9020'

@druciak is there any quick fix for this?

I will look into this issue ASAP.

@druciak: Much appreciated. Thank you!

@PePe: I stuck to manual config for the few items I really needed. They work fine.

@Elgin @PePe
I made a fix and created a PR here: [satel] Thing discovery fix by druciak · Pull Request #9718 · openhab/openhab-addons · GitHub
You can download binary from here: https://github.com/druciak/org.openhab.binding.satel/releases/download/v3.1.0/org.openhab.binding.satel-3.1.0-SNAPSHOT.jar

Works nicely for me.

Thank you very much, druciak!

1 Like

Work perfectly. Thank you

1 Like

For pure documentation purpose I will link PR which introduced change of behavior in this area: [discovery] Added validation for relation between ThingUID and BridgeUID by cweitkamp · Pull Request #1481 · openhab/openhab-core · GitHub

I try to add the ETHM-1 on a Windows server but get an error:

Status: OFFLINE
COMMUNICATION_ERROR
IO error occurred while connecting socket

Any tips?

It is hard to help basing on this little information you gave. Do you have errors in the log?

red while connecting socket
21:25:43.024 [DEBUG] [l.internal.handler.SatelBridgeHandler] - Module not initialized yet, skipping refresh
21:25:48.028 [INFO ] [g.satel.internal.protocol.Ethm1Module] - Connecting to ETHM-1 module at 192.168.10.235:7094
21:25:48.028 [DEBUG] [l.internal.handler.SatelBridgeHandler] - Module not initialized yet, skipping refresh
21:25:50.082 [DEBUG] [g.satel.internal.protocol.SatelModule] - Connection failed
org.openhab.binding.satel.internal.protocol.SatelModule$ConnectionFailureException: IO error occurred while connecting socket
        at org.openhab.binding.satel.internal.protocol.Ethm1Module.connect(Ethm1Module.java:85) ~[bundleFile:?]
        at org.openhab.binding.satel.internal.protocol.SatelModule.communicationLoop(SatelModule.java:384) [bundleFile:?]
        at org.openhab.binding.satel.internal.protocol.SatelModule$CommunicationWatchdog$2.run(SatelModule.java:520) [bundleFile:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.waitForConnect(Native Method) ~[?:?]
        at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107) ~[?:?]
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[?:?]
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[?:?]
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[?:?]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) ~[?:?]
        at java.net.Socket.connect(Socket.java:609) ~[?:?]
        at org.openhab.binding.satel.internal.protocol.Ethm1Module.connect(Ethm1Module.java:74) ~[bundleFile:?]
        ... 3 more
21:25:50.082 [DEBUG] [.satel.internal.event.EventDispatcher] - Distributing event: org.openhab.binding.satel.internal.event.ConnectionStatusEvent: connected = false, reason = IO error occurred while connecting socket
21:25:53.033 [DEBUG] [l.internal.handler.SatelBridgeHandler] - Module not initialized yet, skipping refresh
2

Is this the right log information?

As you can see, there is “Connection refused” error in this log. This means your ethm-1 is not listening on port 7094.
Assuming IP of your ETHM-1 is correct, you either have not enabled integration protocol on Integra side or you changed default integration protocol port.

I’ve got a new log:

12:54:01.020 [DEBUG] [g.satel.internal.protocol.SatelModule] - Communication thread started

12:54:01.020 [INFO ] [g.satel.internal.protocol.Ethm1Module] - Connecting to ETHM-1 module at 192.168.10.235:7094

12:54:01.020 [INFO ] [g.satel.internal.protocol.Ethm1Module] - ETHM-1 module connected successfully

12:54:01.035 [DEBUG] [g.satel.internal.protocol.SatelModule] - Sending message: Message: command = 7E, payload =

12:54:01.035 [INFO ] [g.satel.internal.protocol.Ethm1Module] - Closing connection to ETHM-1 module

12:54:01.035 [DEBUG] [.satel.internal.event.EventDispatcher] - Distributing event: org.openhab.binding.satel.internal.event.ConnectionStatusEvent: connected = false, reason = null

12:54:01.035 [DEBUG] [g.satel.internal.protocol.SatelModule] - Communication thread stopped

12:54:01.817 [DEBUG] [l.internal.handler.SatelBridgeHandler] - Module not initialized yet, skipping refresh

12:54:02.020 [DEBUG] [g.satel.internal.protocol.SatelModule] - Communication thread started

12:54:02.020 [INFO ] [g.satel.internal.protocol.Ethm1Module] - Connecting to ETHM-1 module at 192.168.10.235:7094

12:54:02.020 [INFO ] [g.satel.internal.protocol.Ethm1Module] - ETHM-1 module connected successfully

12:54:02.020 [DEBUG] [g.satel.internal.protocol.SatelModule] - Sending message: Message: command = 7E, payload =

12:54:02.020 [INFO ] [g.satel.internal.protocol.Ethm1Module] - Closing connection to ETHM-1 module

12:54:02.020 [DEBUG] [.satel.internal.event.EventDispatcher] - Distributing event: org.openhab.binding.satel.internal.event.ConnectionStatusEvent: connected = false, reason = null

12:54:02.020 [DEBUG] [g.satel.internal.protocol.SatelModule] - Communication thread stopped

Looks like there is a connection first

What have you changed to make the binding connecting? It looks the module is for some reason disconnecting immediately. Maybe you are connecting to DloadX port, not the one designated for integration protocol?
Could you describe you setup:

  • what module do you have,
  • what firmware does it have,
  • show OH configuration,
  • etc

I could not get automatic discovery to work.
I have 3.1.0.M3 installed which should include the latest fix:

# openhab-cli info

Version:     3.1.0.M3 (Build)

User:        openhab (Active Process 9336)
User Groups: openhab tty dialout audio bluetooth

Directories: Folder Name      | Path                        | User:Group
             -----------      | ----                        | ----------
             OPENHAB_HOME     | /usr/share/openhab          | openhab:openhab
             OPENHAB_RUNTIME  | /usr/share/openhab/runtime  | openhab:openhab
             OPENHAB_USERDATA | /var/lib/openhab            | openhab:openhab
             OPENHAB_CONF     | /etc/openhab                | openhab:openhab
             OPENHAB_LOGDIR   | /var/log/openhab            | openhab:openhab

The log file does not say very much about any problems:

2021-04-08 09:58:59.614 [INFO ] [.satel.internal.protocol.Ethm1Module] - Closing connection to ETHM-1 module
2021-04-08 09:59:08.580 [INFO ] [.satel.internal.protocol.Ethm1Module] - Connecting to ETHM-1 module at 10.5.5.9:7094
2021-04-08 09:59:08.588 [INFO ] [.satel.internal.protocol.Ethm1Module] - ETHM-1 module connected successfully
2021-04-08 09:59:08.684 [INFO ] [.satel.internal.protocol.SatelModule] - Connection to Integra 128 Plus initialized. INTEGRA version: 1.18 2018-06-20.
2021-04-08 11:20:29.331 [INFO ] [.satel.internal.protocol.SatelModule] - Ignoring response, it does not match command 7F: Message: command = 8C, payload = 7F C8 43 20 48 46 FF 00 03 78 F6 03 70 F6
r

But still I cannot see any things in the inbox.
Using openhab2 auto discovery worked without any problem.

Do I have to start automatic discovery manually?
Can you give me any hint on how to proceed?
Thank you!

Hi Bernhard.
Does the binding work with 3.0.x? Can you try it?
What happens if you add a thing manually? Will it work?