Hi @CyborgAndy
many thanks for providing the binding update for MySensors 4.0.4! I upgrade my OpenHAB 3.4.4 a few minutes ago to 4.0.4 successfully with your binding update. I use a USB connected serial-gateway. The OpenHAB manual installation upgrade works perfect. I need to do afterwards the following steps in the Karaf console, to get the gateway online again, after the update:
feature:install openhab-transport-serial
feature:install openhab-core-io-transport-mqtt
feature:install openhab-core-io-transport-serial-javacomm
Many thanks again!
kerberos
@chrishiscox said in OH3 Serial Gateway Problem:
I tried and tried with my serial gateway, and never got it to function porperly. The serial port was working I could see it and data, but OH3 just refused to recognise the data. After a week, I decided to abandon the serial and flashed a esp8266 attached the nRF to it and bobs my uncle as we say. It goes via MQTT, so takes a little more settting up but works fine. If you want more info I will dig out the pages I used to make it work.
Hmmm, the pi OH is running on already has an active MQTT broker. So you got me thinking: Wouldn't it be possible to use the MQTT gateway instead of the serial gateway? It should be able to translate radio messages (Hope RF69 in my case) to mqtt messages which are already recognized by OH. I'll have to find a spare pi and try it.
@ben999
Check out Serial Protocol
I have four Arduinos. Each has a different MY_NODE_IDs (I use 130, 131, 132, 133). Each has four sensors: moisture, humidity, temperature, and voltage each of which has a CHILD_ID: CHILD_ID_MOISTURE is 0 , CHILD_ID_HUMIDITY is 1, CHILD_ID_TEMPERATURE is 2, CHILD_ID_VOLTAGE is 3.
When an Arduino makes a measurement, it sends that measurement to a unique MQTT topic. In the case of the Arduino with MY_NODE_ID of 130 that is sending the moisture measurement, that MQTT topic is mysensors_out/130/0/1/0/35 and the message is [something like] 760 (35 is the value type)
Similarly, when a controller sends a command to a device (Arduino), the topic is unique.
If you have two actuators with the same MY_NODE_ID and CHILD_ID (MQTT topic) there would be confusion as to what you want each actuator to do. Likewise, if two sensors had the same MQTT topic, how would the controller know how to handle the data.
The 2.5-version of the binding does not work out of the box in OpenHAB 3 for me.
2020-12-22 22:53:34.555 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/usr/share/openhab/addons/org.openhab.binding.mysensors-2.5.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.mysensors [272]
Unresolved requirement: Import-Package: org.eclipse.smarthome.config.core
at org.eclipse.osgi.container.Module.start(Module.java:444) ~[org.eclipse.osgi-3.12.100.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[org.eclipse.osgi-3.12.100.jar:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [bundleFile:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [bundleFile:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [bundleFile:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [bundleFile:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [bundleFile:3.6.4]
I guess it might have something to do with this?
https://community.openhab.org/t/guide-binding-development-changes-for-openhab-3-from-2-5-x/104134
Namespace change of openHAB core classes
With the migration of Eclipse Smart Home to openHAB the namespace of all classes in openHAB core needed to be changed. This means all imports done by bindings that refer to org.eclipse.smarthome have been changed to org.openhab.core. With your binding code you can simply do a file level replace of this text string in the java source files to migrate the binding. On linux you can use the following commands in you src/main/java directory:
find . -name *.java -exec sed -i "s/org.eclipse.smarthome.core/org.openhab.core/g" {} ;
find . -name *.java -exec sed -i "s/org.eclipse.smarthome/org.openhab.core/g" {} ;