I’ve opened this issue on github, related to a race condition, which occurs in my system, when sending many Intertechno commands by a rule.
I would be happy, if someone can test my changes, especially with other bindings than Intertechno. I’m using it for about a month with Intertechno, without any problems.
High Mik,
in order to test both of your .jars (CUL Intertechno binding and CUL transport), do I need to put both of them into the addons folder? Since the late isn’t a binding I’m not sure on that. (Preparing myself to start testing when hardware is delivered ).
Had both .jars in the addons folder of a fresh install of the snapshot version(1099) and got those in the log:
19:48:50.123 [ERROR] [org.openhab.io.transport.cul ] - FrameworkEvent ERROR - org.openhab.io.transport.cul
org.osgi.framework.BundleException: Could not resolve module: org.openhab.io.transport.cul [202]
Unresolved requirement: Import-Package: org.openhab.core.binding
at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1620) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1599) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1571) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1514) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
and
19:49:10.302 [ERROR] [org.openhab.binding.intertechno ] - FrameworkEvent ERROR - org.openhab.binding.intertechno
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.intertechno [201]
Unresolved requirement: Import-Package: org.openhab.core.binding
at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1620) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1600) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1571) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1514) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
I have both .jars working now. In between I hab a situation when I lost the ssh connection out off a unknown reason. When restablishing the login to the Karaf-console did take minutes, so I rebooted the system, which was also delayed for minutes. That started after I changed the .item file in order to use the syntax (no address anymore, only commandON and CommandOFF)
After the restart it seems to be running fine.
I’m actually having problems to get the RF messages handles by some of sockets correctly ( for example: on one socket ON/OFF from the original remote is working, via CUL only only OFF is working), so I can’t test the sending of several messages to different sockets in a short time.That problem has nothing to do with your bindings!
I do have no such problem using my oldest sockets (>25 years, “hard-wired” code).
Hi Mik,
I also had a deep look into the CUL IO binding, because I see that openhab sends “X” to the CUL device after each receiving command. This is the “credit report”. fhem does not.
I think it is not necessary to send a credit report after each receiving command. I see that, due to the “credit report” the binding can not get all update messages form a FHT sender.
I found in “…/openhab/io/transport/cul/internal/AbstractCULHandler.java” in the function “processNextLine” the call of requestCreditReport().
I have disabled this line (line no. 223) and it works.
May you build a .jar with your and my changes and I will test that.
protected void processNextLine(String data) {
log.debug("Received raw message from CUL: " + data);
if ("EOB".equals(data)) {
log.warn("(EOB) End of Buffer. Last message lost. Try sending less messages per time slot to the CUL");
return;
} else if ("LOVF".equals(data)) {
log.warn(
"(LOVF) Limit Overflow: Last message lost. You are using more than 1% transmitting time. Reduce the number of rf messages");
return;
} else if (data.matches("^d+s+d+")) {
processCreditReport(data);
return;
}
notifyDataReceived(data);
requestCreditReport();
}
Hi Andy,
I’m happy to get some additional response on this topic.
As you can see in my pull request, I already removed this request for a credit report. Did you test the bundle from the starting post in this thread?
I also don’t know, if it’s actually necessary to get a credit report after each transmitted command at all. The result isn’t used anywhere, as far as I can see.
Anyway, I appreciate your testing with an other binding than Intertechno, which I’m using, very much.
Hi Mik,
I did not see your pull request so far.
My experience with git is at the beginning and I do not want to do something wrong.
So build my own version without credit request locally outside of git.
I will start to use your .jar this evening and let you know about the test result in the next days.
You have to provide the 26 digits id and the channel (0-15). Optional, you can provide the group parameter (with value “1”) , which results in switching all items with the given id.
This configuration allows you to manual specify the complete commands to send in either ON or OFF state. The given commands will be sent directly to the CUL (prefixed with “is”).