OH3 - MySensors Binding


  • Hero Member

    Hey @fabyte and @ncollins!

    I just want you to know, that I'm still there, but out of time at the moment. My third child was born just recently and I don't have any time for the binding at the moment.
    I'm really sorry you had to reverse engineer the binding to add your code. That's awfully wrong.
    We need to create a new common base to continue the work on the binding.
    I was not able to add the binding to the official repo because of the formal requirements from the Openhab Team. I'm sure these requirements are needed, but I'm no professional in java. I struggled mainly at the nonnull annotations that are needed.



  • @TimO Congratulations on your child 👏
    I know it's an exciting time and definitely more important than developing a OH binding 😁
    Spending time with your family should always be number 1 priority and you can't blame anyone for taking time off from a internet community 🙂



  • @TimO Congrats!

    I've been looking some of the other addon-ons and your code actually looks a lot better than most. I think the base is pretty solid.

    I'll take a look at the annotations, and maybe getting some more traditional unit tests in place.

    If we get to a point where a merge is acceptable, maybe we can move the maintenance fork to the MySensors repo.



  • @TimO & @fabyte I took a stab at making all of the classes/interfaces @NonNullByDefault and adding/overriding null checks throughout. It builds fine, seems to be working well with my ethernet gateway.

    I'm going to look at unit testing next.

    https://github.com/nikolac/openhab2-addons/tree/mysensors-oh3-migration/bundles/org.openhab.binding.mysensors

    Screen Shot 2021-02-24 at 11.37.43 AM.png



  • @ncollins

    I have been trying to get MySensors working with OH3 for a few days now and have just stumbled upon this thread. How opportune!!!

    I am just trying to get a temp/hum arduino nano with a NRF24L01 hooked up to PI400 with OH3 using this link:

    https://www.smarthomeblog.net/diy-home-automation-sensors-first-node/

    Since I am starting from scratch with a simple proof of concept there might be some easy testing to be done with my setup.

    Do you have any suggestions for me?

    Thanks!



  • @haloway13 Glad to see you're diving in.

    Have you set up your gateway yet? If not, try this https://www.mysensors.org/build/raspberry. I find it's easier to build and debug node with a working gateway.



  • @ncollins

    I believe so.

    openhabian@openhabian:~/MySensors $ sudo ./bin/mysgw
    Feb 28 14:28:54 INFO  Starting gateway...
    Feb 28 14:28:54 INFO  Protocol version - 2.4.0-alpha
    Feb 28 14:28:54 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
    Feb 28 14:28:54 DEBUG TSF:LRT:OK
    Feb 28 14:28:54 DEBUG TSM:INIT
    Feb 28 14:28:54 DEBUG TSF:WUR:MS=0
    Feb 28 14:28:54 DEBUG TSM:INIT:TSP OK
    Feb 28 14:28:54 DEBUG TSM:INIT:GW MODE
    Feb 28 14:28:54 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
    Feb 28 14:28:54 DEBUG MCO:REG:NOT NEEDED
    Feb 28 14:28:54 DEBUG MCO:BGN:STP
    Feb 28 14:28:54 DEBUG MCO:BGN:INIT OK,TSP=1
    Feb 28 14:28:54 DEBUG GWT:RMQ:CONNECTING...
    Feb 28 14:28:54 DEBUG connected to 192.168.1.151
    Feb 28 14:28:54 DEBUG GWT:RMQ:OK
    Feb 28 14:28:54 DEBUG GWT:TPS:TOPIC=mygateway1-out/0/255/0/0/18,MSG SENT
    Feb 28 14:28:54 DEBUG TSM:READY:NWD REQ
    Feb 28 14:28:54 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    Feb 28 14:29:13 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:31.3
    Feb 28 14:29:13 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Feb 28 14:29:23 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:31.4
    Feb 28 14:29:23 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Feb 28 14:29:43 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:16.1
    Feb 28 14:29:43 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/0/1/0/0,MSG SENT
    
    
    


  • @haloway13 Looks good.

    Next, I would get openhab ready for adding the mysensors addon. https://github.com/tobof/openhab2-addons/wiki/Installation

    Via the openhab console run the following to install/activate the binding dependencies:
    feature:install openhab-transport-serial
    feature:install openhab-core-io-transport-mqtt
    I recommend also setting log:set DEBUG org.openhab.binding.mysensors

    Create a mqtt system connection in OpenHAB. Be sure to check advanced, and set the port.
    Screen Shot 2021-02-28 at 10.37.10 AM.png

    Then you can drop the org.openhab.binding.mysensors.jar into the addons folder and it should auto install. You can start with the binding linked above.

    Once all of that is done, you can configure your first thing, which would be a MySensors MQTT Bridge. (you should disable "Enables the startup check", I believe there is a bug)
    Screen Shot 2021-02-28 at 10.50.13 AM.png



  • @ncollins I have had some issues getting this going. Am I running the development branch? Can you tell from the output?



  • @haloway13 you have any logs or screenshots of errors you're seeing?



  • @ncollins best I can do is say that it was a java io exception of some sort associated with the bridge or broker. I have since started from scratch several times and have not taken any screenshots.

    I have faithfully followed directions from: https://github.com/tobof/openhab2-addons/wiki/Installation

    Then it is a bit of a mystery to me how to finish up the configuration through the web pages.

    Any help would be greatly appreciated!



  • Hmm, I don't use openhabian, but it looks like there is a log viewer built in: http://openhabian:9001 (maybe change openhabian to the IP of your pi).

    Without logs or screenshots, it'll be impossible to help.



  • @ncollins

    openhab log:tail output

    log:set DEBUG org.openhab.binding.mysensors
    openhab> log:tail
    20:17:49.861 [INFO ] [b.core.internal.i18n.I18nProviderImpl] - Time zone set to 'America/Denver'.
    20:17:49.924 [INFO ] [b.core.internal.i18n.I18nProviderImpl] - Location set to '39.82834020908714,-105.06875216960907'.
    20:17:49.929 [INFO ] [b.core.internal.i18n.I18nProviderImpl] - Locale set to 'en_US'.
    20:18:27.583 [INFO ] [b.core.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
    20:18:33.947 [INFO ] [org.openhab.ui.internal.UIService    ] - Started UI on port 8080
    20:18:35.072 [INFO ] [re.automation.internal.RuleEngineImpl] - Rule engine started.
    20:18:36.112 [INFO ] [hab.ui.habpanel.internal.HABPanelTile] - Started HABPanel at /habpanel
    20:25:15.958 [INFO ] [ig.discovery.internal.PersistentInbox] - Added new thing 'mqtt:systemBroker:mosquitto' to inbox.
    20:25:15.959 [INFO ] [openhab.event.InboxAddedEvent        ] - Discovery Result with UID 'mqtt:systemBroker:mosquitto' has been added.
    20:25:17.970 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid 86f6e016-3847-404f-80dc-a5abb81f6b2d
    20:25:28.579 [INFO ] [t.reconnect.PeriodicReconnectStrategy] - Try to restore connection to '192.168.1.151'. Next attempt in 60000ms
    20:25:28.673 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid 86f6e016-3847-404f-80dc-a5abb81f6b2d
    20:26:28.685 [INFO ] [t.reconnect.PeriodicReconnectStrategy] - Try to restore connection to '192.168.1.151'. Next attempt in 60000ms
    20:26:28.694 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid 86f6e016-3847-404f-80dc-a5abb81f6b2d
    
    

    Broker config screen:
    SS_2021-03-03_20-29-11.png
    Addition to the Inbox:
    SS_2021-03-03_20-29-32.png
    Clicking the inbox. This is where I have no clue as to how to proceed...

    SS_2021-03-03_20-29-45.png



  • so to follow up:

    Here is the log after adding the thing systembroker:

    21:28:27.906 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid bd9a756d-5cf7-46b0-adaa-856d29f8b587
    21:29:27.913 [INFO ] [t.reconnect.PeriodicReconnectStrategy] - Try to restore connection to '192.168.1.151'. Next attempt in 60000ms
    21:29:27.920 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid bd9a756d-5cf7-46b0-adaa-856d29f8b587
    21:30:27.925 [INFO ] [t.reconnect.PeriodicReconnectStrategy] - Try to restore connection to '192.168.1.151'. Next attempt in 60000ms
    21:30:27.933 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid bd9a756d-5cf7-46b0-adaa-856d29f8b587
    21:31:05.860 [INFO ] [openhab.event.InboxRemovedEvent      ] - Discovery Result with UID 'mqtt:systemBroker:mosquitto' has been removed.
    21:31:06.015 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from UNINITIALIZED to INITIALIZING
    21:31:06.072 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from INITIALIZING to OFFLINE
    21:31:06.079 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid bd9a756d-5cf7-46b0-adaa-856d29f8b587
    21:31:06.130 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from OFFLINE to OFFLINE (COMMUNICATION_ERROR): Timeout
    21:31:06.135 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from OFFLINE (COMMUNICATION_ERROR): Timeout to OFFLINE (COMMUNICATION_ERROR): java.io.IOException: Connection reset by peer
    21:31:27.938 [INFO ] [t.reconnect.PeriodicReconnectStrategy] - Try to restore connection to '192.168.1.151'. Next attempt in 60000ms
    21:31:27.943 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from OFFLINE (COMMUNICATION_ERROR): java.io.IOException: Connection reset by peer to OFFLINE
    21:31:27.951 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid bd9a756d-5cf7-46b0-adaa-856d29f8b587
    21:31:27.986 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from OFFLINE to OFFLINE (COMMUNICATION_ERROR): java.io.IOException: Connection reset by peer
    21:32:27.956 [INFO ] [t.reconnect.PeriodicReconnectStrategy] - Try to restore connection to '192.168.1.151'. Next attempt in 60000ms
    21:32:27.967 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid bd9a756d-5cf7-46b0-adaa-856d29f8b587
    21:32:27.968 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from OFFLINE (COMMUNICATION_ERROR): java.io.IOException: Connection reset by peer to OFFLINE
    21:32:28.014 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:systemBroker:mosquitto' changed from OFFLINE to OFFLINE (COMMUNICATION_ERROR): java.io.IOException: Connection reset by peer
    
    

    Here is how I configured the thing:

    systembroker.png



  • @fabyte

    Could you post config screens for each of the things above for me?

    Thanks!



  • One thing I had to do was explicitly set secure="false" into /opt/openhab/userdata/config/org/openhab/mqttbroker.config.

    Please try that, then restart.



  • also, is your MQTT broker password protected? if not, remove the username and password from your system broker configuration.



  • @ncollins
    I will check tonight.

    I really appreciate all help so far.

    When you refer to the broker password: do you mean when you install the mqtt using the openhabian-config utility from the command line while being logged in with ssh to the Pi?



  • @haloway13 I had exactly the same problem.
    Here is what I did to fix it:

    1. uninstalled the mqtt binding
      1.1 make sure the /opt/openhab/userdata/config/org/openhab/mqttbroker.config is removed
    2. installed the mqtt binding
    3. setup the system broker

    After that, the system broker connection could be established and the Try to restore connection to '192.168.1.151'. Next attempt in 60000ms messaged disappeared.

    Then you can proceed and set up the MySensors MQTT Bridge.



  • @haloway13 yeah, when you did the initial mqtt setup, did you protect it with a password? If not, make sure you clear out the username and password from the OpenHAB broker settings. (I’m not sure if it will fail if you provide credentials to an instance that is not password protected)



  • @fabyte

    I am not showing such a file as mentioned in 1.1

    2 & 3 refer to using the web interface?

    Thanks!



  • @haloway13 Yes, everything via the web interface



  • @haloway13 Here are all of my settings in my sandbox environment.

    A couple things to note, NO MQTT BINDING INSTALLED, no special MQTT thing configured, my mqtt install is not password protected.

    Screen Shot 2021-03-05 at 12.49.22 PM.png Screen Shot 2021-03-05 at 12.53.23 PM.png Screen Shot 2021-03-05 at 12.54.34 PM.png Screen Shot 2021-03-05 at 12.55.27 PM.png Screen Shot 2021-03-05 at 12.55.50 PM.png Screen Shot 2021-03-05 at 1.01.14 PM.png
    Screen Shot 2021-03-05 at 1.03.05 PM.png

    My Gateway code:

    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    
    // Enables and select radio type (if attached)
    //#define MY_RADIO_RF24
    //#define MY_RADIO_RFM69
    //#define MY_RADIO_RFM95
    
    #define MY_GATEWAY_MQTT_CLIENT
    #define MY_GATEWAY_ESP8266
    
    #define MY_BAUD_RATE 9600
    
    #define MY_MQTT_CLIENT_ID "MYSGW01"
    
    // Set this node's subscribe and publish topic prefix
    #define MY_MQTT_PUBLISH_TOPIC_PREFIX "tele/mysgw01-out"
    #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX  "cmnd/mysgw01-in"
    
    // Set MQTT client id
    
    
    // Enable these if your MQTT broker requires username/password
    //#define MY_MQTT_USER "username"
    //#define MY_MQTT_PASSWORD "password"
    
    // Set WIFI SSID and password
    #define MY_WIFI_SSID "--------"
    #define MY_WIFI_PASSWORD "*********"
    
    // Set the hostname for the WiFi Client. This is the hostname
    // passed to the DHCP server if not static.
    #define MY_HOSTNAME MY_MQTT_CLIENT_ID 
    
    // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
    //#define MY_IP_ADDRESS 192,168,178,87
    
    // If using static ip you can define Gateway and Subnet address as well
    //#define MY_IP_GATEWAY_ADDRESS 192,168,178,1
    //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
    
    // MQTT broker ip address.
    #define MY_CONTROLLER_IP_ADDRESS 192, 168, 1, 62
    
    //MQTT broker if using URL instead of ip address.
    // #define MY_CONTROLLER_URL_ADDRESS "test.mosquitto.org"
    
    // The MQTT broker port to to open
    #define MY_PORT 1883
    
    // Enable inclusion mode
    //#define MY_INCLUSION_MODE_FEATURE
    // Enable Inclusion mode button on gateway
    //#define MY_INCLUSION_BUTTON_FEATURE
    // Set inclusion mode duration (in seconds)
    //#define MY_INCLUSION_MODE_DURATION 60
    // Digital pin used for inclusion mode button
    //#define MY_INCLUSION_MODE_BUTTON_PIN D1
    
    // Set blinking period
    //#define MY_DEFAULT_LED_BLINK_PERIOD 300
    
    // Flash leds on rx/tx/err
    //#define MY_DEFAULT_ERR_LED_PIN 16  // Error led pin
    //#define MY_DEFAULT_RX_LED_PIN  16  // Receive led pin
    //#define MY_DEFAULT_TX_LED_PIN  2  // the PCB, on board LED
    #include <ArduinoOTA.h>
    #include <MySensors.h>
    
    void setup()
    {
    
      pinMode(LED_BUILTIN, OUTPUT);
    	// Setup locally attached sensors
     ArduinoOTA.setHostname(MY_HOSTNAME);
      ArduinoOTA.onStart([]() {
        Serial.println("ArduinoOTA start");
      });
      ArduinoOTA.onEnd([]() {
        Serial.println("\nArduinoOTA end");
      });
      ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
        Serial.printf("OTA Progress: %u%%\r", (progress / (total / 100)));
      });
      ArduinoOTA.onError([](ota_error_t error) {
        Serial.printf("Error[%u]: ", error);
        if (error == OTA_AUTH_ERROR) {
          Serial.println("Auth Failed");
        } else if (error == OTA_BEGIN_ERROR) {
          Serial.println("Begin Failed");
        } else if (error == OTA_CONNECT_ERROR) {
          Serial.println("Connect Failed");
        } else if (error == OTA_RECEIVE_ERROR) {
          Serial.println("Receive Failed");
        } else if (error == OTA_END_ERROR) {
          Serial.println("End Failed");
        }
      });
      ArduinoOTA.begin();
    }
    
    void presentation()
    {
      
    	// Present locally attached sensors here
      sendSketchInfo("MYSGW01-TEST Gateway","1.0");
      present(0, S_BINARY);
    }
    
    void loop()
    {
    	// Send locally attached sensors data here
       ArduinoOTA.handle();
    }
    
    void receive(const MyMessage &message)
    {
        // We only expect one type of message from controller. But we better check anyway.
        if (message.type==V_STATUS) {
            // Change relay state
            digitalWrite(LED_BUILTIN, message.getBool() ? LOW:HIGH);
            // Store state in eeprom
            saveState(message.sensor, message.getBool());
            // Write some debug info
            Serial.print("Incoming change for sensor:");
            Serial.print(message.sensor);
            Serial.print(", New status: ");
            Serial.println(message.getBool());
        }
    }
    


  • @ncollins

    Thank you so much. This has gotten me so much closer to actually getting the test temp and humidity arduino thing working.

    I am seeing this output from the mysensors gateway:

    Mar 05 22:55:07 DEBUG GWT:RMQ:OK
    Mar 05 22:55:07 DEBUG GWT:TPS:TOPIC=mygateway1-out/0/255/0/0/18,MSG SENT
    Mar 05 22:55:07 DEBUG TSM:READY:NWD REQ
    Mar 05 22:55:07 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    Mar 05 22:55:07 DEBUG TSF:MSG:READ,1-1-0,s=255,c=3,t=21,pt=1,l=1,sg=0:0
    Mar 05 22:55:07 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/255/3/0/21,MSG SENT
    Mar 05 22:55:41 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:34.0
    Mar 05 22:55:41 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Mar 05 22:55:51 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:19.8
    Mar 05 22:55:51 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/0/1/0/0,MSG SENT
    Mar 05 22:57:01 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:34.1
    Mar 05 22:57:01 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Mar 05 22:57:11 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:34.0
    Mar 05 22:57:11 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Mar 05 22:57:41 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:19.8
    Mar 05 22:57:41 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/0/1/0/0,MSG SENT
    Mar 05 22:59:01 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:34.0
    Mar 05 22:59:01 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Mar 05 22:59:21 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:19.9
    Mar 05 22:59:21 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/0/1/0/0,MSG SENT
    Mar 05 22:59:41 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:19.8
    Mar 05 22:59:41 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/0/1/0/0,MSG SENT
    Mar 05 23:00:51 DEBUG TSF:MSG:READ,1-1-0,s=1,c=1,t=1,pt=7,l=5,sg=0:34.0
    Mar 05 23:00:51 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/1/1/0/1,MSG SENT
    Mar 05 23:01:11 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:19.7
    Mar 05 23:01:11 DEBUG GWT:TPS:TOPIC=mygateway1-out/1/0/1/0/0,MSG SENT
    Mar 05 23:01:21 DEBUG TSF:MSG:READ,1-1-0,s=0,c=1,t=0,pt=7,l=5,sg=0:19.8
    
    

    My Sensors Gateway configuration: not letting me upload the image/screenshot, getting an error.
    ![0_1615011411135_SS_2021-03-05_23-09-13.jpg](Uploading 100%)

    Humidity Sensor thing: same problem here.
    ![0_1615011449159_SS_2021-03-05_23-12-48.jpg](Uploading 100%)

    I will try to edit this in the morning

    The short of it is that I am not seeing the values I am expecting from the sensor. I am leaning towards just not identifying the id/node for each of the things/channel.



  • Here is the humidity sensor thing page:
    SS_2021-03-05_23-12-48.jpg
    Here is the temperature:
    SS_2021-03-07_06-32-21.png

    Do I have the node and child id right? What should I check?

    Or maybe I need to do a follow on configuration to see the values?

    Thank you!



  • @haloway13 progress!

    Check the channels tab of your temperature sensor thing:
    Screen Shot 2021-03-07 at 8.13.28 AM.png

    "Add link to item" then follow the directions to create a new item
    Screen Shot 2021-03-07 at 8.15.31 AM.png



  • @ncollins

    I tried just as you describe. However I think something is failing before this should be expected to succeed.

    Thoughts?

    openhab> log:tail                                                                                                                                                                                                       
    22:37:44.426 [DEBUG] [s.discovery.MySensorsDiscoveryService] - Starting MySensors discovery scan
    22:37:44.428 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Adding consumer for topic: mygateway1-out/+/+/+/+/+
    22:37:44.434 [WARN ] [protocol.mqtt.MySensorsMqttConnection] - Skipping I_VERSION connection test, not recommended...
    22:37:44.438 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:bridge-mqtt:3976df7e54' changed from INITIALIZING to ONLINE
    22:37:44.446 [DEBUG] [sensors.factory.MySensorsCacheFactory] - Writing on cache given_ids, content: []
    22:37:44.443 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:temperature:7c6c709b27' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
    22:37:44.451 [INFO ] [protocol.mqtt.MySensorsMqttConnection] - Successfully connected to MySensors Bridge.
    22:37:44.454 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
    22:37:44.460 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=1, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    22:37:44.464 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Adding device MySensorsNode [nodeId=1, childNumber=1, chidldList={1=MySensorsChild [childId=1, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_HUM=MySensorsVariableVHum [value=null]}]}]
    22:37:44.465 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=0, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    22:37:44.467 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-1 not registered yet, registering...
    22:37:44.469 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Merging child map: {1=MySensorsChild [childId=1, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_HUM=MySensorsVariableVHum [value=null]}]} with: {0=MySensorsChild [childId=0, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_ID=MySensorsVariableVId [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_TEMP=MySensorsVariableVTemp [value=null]}]}
    22:37:44.472 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from INITIALIZING to ONLINE
    22:37:44.474 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-0 not registered yet, registering...
    22:37:44.479 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:temperature:7c6c709b27' changed from INITIALIZING to ONLINE
    22:41:47.918 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from ONLINE to UNINITIALIZED
    22:41:47.936 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
    22:41:49.778 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from UNINITIALIZED (DISABLED) to INITIALIZING
    22:41:49.786 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=1, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    22:41:49.788 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Adding device MySensorsNode [nodeId=1, childNumber=1, chidldList={1=MySensorsChild [childId=1, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_HUM=MySensorsVariableVHum [value=null]}]}]
    22:41:49.791 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-1 not registered yet, registering...
    22:41:49.795 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from INITIALIZING to ONLINE
    22:41:51.075 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from ONLINE to UNINITIALIZED
    22:41:51.090 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
    22:41:51.806 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from UNINITIALIZED (DISABLED) to INITIALIZING
    22:41:51.814 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=1, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    22:41:51.817 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Adding device MySensorsNode [nodeId=1, childNumber=1, chidldList={1=MySensorsChild [childId=1, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_HUM=MySensorsVariableVHum [value=null]}]}]
    22:41:51.819 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-1 not registered yet, registering...
    22:41:51.825 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:humidity:3976df7e54:529c716d78' changed from INITIALIZING to ONLINE
    22:42:06.748 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:temperature:7c6c709b27' changed from ONLINE to UNINITIALIZED
    22:42:06.762 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:temperature:7c6c709b27' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
    22:42:07.739 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:temperature:7c6c709b27' changed from UNINITIALIZED (DISABLED) to INITIALIZING
    22:42:07.749 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=0, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    22:42:07.751 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Adding device MySensorsNode [nodeId=1, childNumber=1, chidldList={0=MySensorsChild [childId=0, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_ID=MySensorsVariableVId [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_TEMP=MySensorsVariableVTemp [value=null]}]}]
    22:42:07.753 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-0 not registered yet, registering...
    22:42:07.756 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mysensors:temperature:7c6c709b27' changed from INITIALIZING to ONLINE
    22:51:49.195 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuation update for thing 1-1: {nodeUpdateTimeout=-1, smartSleep=false, requestHeartbeatResponse=false, childUpdateTimeout=-1, childId=18, nodeId=1, revertState=true, requestAck=false}
    22:51:49.214 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=18, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    22:51:49.217 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Adding device MySensorsNode [nodeId=1, childNumber=1, chidldList={18=MySensorsChild [childId=18, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_HUM=MySensorsVariableVHum [value=null]}]}]
    22:51:49.218 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-18 not registered yet, registering...
    23:01:04.984 [WARN ] [se.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: Temperature
    23:01:08.762 [WARN ] [se.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: TemperatureSensor_Temperature
    23:04:05.921 [WARN ] [se.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: TemperatureSensor_Variable1
    23:05:12.626 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuation update for thing 1-18: {nodeUpdateTimeout=-1, smartSleep=false, requestHeartbeatResponse=false, childUpdateTimeout=-1, childId=0, nodeId=1, revertState=true, requestAck=false}
    23:05:12.636 [DEBUG] [sensors.handler.MySensorsThingHandler] - Configuration: MySensorsSensorConfiguration{nodeId=1, childId=0, requestAck=false, revertState=true, smartSleep=false, childUpdateTimeout=-1, nodeUpdateTimeout=-1, requestHeartbeatResponse=false, usePureWhiteLightInRGBW=false}
    23:05:12.638 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Adding device MySensorsNode [nodeId=1, childNumber=1, chidldList={0=MySensorsChild [childId=0, nodeValue={V_VAR5=MySensorsVariableVVar5 [value=null], V_VAR1=MySensorsVariableVVar1 [value=null], V_VAR2=MySensorsVariableVVar2 [value=null], V_VAR4=MySensorsVariableVVar4 [value=null], V_VAR3=MySensorsVariableVVar3 [value=null], V_HUM=MySensorsVariableVHum [value=null]}]}]
    23:05:12.643 [DEBUG] [sensors.handler.MySensorsThingHandler] - Event listener for node 1-0 not registered yet, registering...
    22:35:59.095 [WARN ] [orsAbstractConnection$MySensorsWriter] - Message returned from queue is null
    22:37:44.434 [WARN ] [orsAbstractConnection$MySensorsWriter] - Message returned from queue is null
    
    


  • @haloway13 can you send a screenshot of your item?Screen Shot 2021-03-08 at 9.09.23 AM.png





  • @haloway13 Can you post your sketch?

    Your humidity sensor and your temperature sensor Thing configurations both point to Child Id = 0. I think your humidity sensor should be Child Id = 1.



  • @ncollins
    Fixed the child ID. Good catch. No change.

    Here is the sketch

    #include <DHT.h>
    
    #define MY_DEBUG 1
    #define MY_RADIO_NRF24
    #define MY_NODE_ID 1
    
    #define CHILD_ID_TEMP 0
    #define CHILD_ID_HUM 1
    #define DHT_DATA_PIN 3
    #define SENSOR_TEMP_OFFSET 0
    
    #include <MySensors.h>
    
    /**************************************************/
    /****************** CONSTANTS *********************/
    /**************************************************/
    
    static const uint64_t UPDATE_INTERVAL = 10000;
    static const uint8_t FORCE_UPDATE_N_READS = 10;
    
    /**************************************************/
    /****************** VARIABLES *********************/
    /**************************************************/
    float lastTemp;
    float lastHum;
    float temperature;
    float humidity;
    uint8_t nNoUpdatesTemp;
    uint8_t nNoUpdatesHum;
    
    /**************************************************/
    /****************** MESSAGES **********************/
    /**************************************************/
    
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    
    DHT dht;
    
    void presentation() 
    { 
    present(CHILD_ID_HUM, S_HUM);
    present(CHILD_ID_TEMP, S_TEMP);
    }
    
    
    void setup()
    {
    delay(2000); //Wait 2 seconds before starting sequence
    
    if (UPDATE_INTERVAL <= dht.getMinimumSamplingPeriod()) 
    {
    Serial.println("Warning: UPDATE_INTERVAL is smaller than supported by the sensor!");
    }
    
    sleep(dht.getMinimumSamplingPeriod()); 
    dht.setup(DHT_DATA_PIN);
    }
    
    void loop() 
    { 
    sendTemperatureHumiditySensor(); 
    wait(UPDATE_INTERVAL);
    }
    
    /**************************************************/
    /**************** AUX. FUNCTIONS ******************/
    /**************************************************/
    
    void sendTemperatureHumiditySensor()
    {
    dht.readSensor(true);
    temperature = dht.getTemperature();
    humidity = dht.getHumidity();
    
    if (isnan(temperature)) 
    {
    Serial.println("Failed reading temperature from DHT!");
    } else if (temperature != lastTemp || nNoUpdatesTemp == FORCE_UPDATE_N_READS) 
    {
    lastTemp = temperature;
    nNoUpdatesTemp = 0;
    temperature += SENSOR_TEMP_OFFSET;
    send(msgTemp.set(temperature, 1));
    
    #ifdef MY_DEBUG
    Serial.print("T: ");
    Serial.println(temperature);
    #endif
    } else 
    {
    nNoUpdatesTemp++;
    }
    
    if (isnan(humidity)) 
    {
    Serial.println("Failed reading humidity from DHT");
    } else if (humidity != lastHum || nNoUpdatesHum == FORCE_UPDATE_N_READS)
    {
    lastHum = humidity;
    nNoUpdatesHum = 0;
    send(msgHum.set(humidity, 1));
    
    #ifdef MY_DEBUG
    Serial.print("H: ");
    Serial.println(humidity);
    #endif
    } else 
    {
    nNoUpdatesHum++;
    } 
    }
    

    I am able to see the debug output from the sensors



  • @haloway13 I mean, last suggestion is restarting your openhab instance. If that doesn't work, please post your openhab log.



  • @ncollins
    My sdcard corrupted, had to restart from scratch. Hopefully, I can get back to the same point tonight.

    Thanks!



  • @ncollins QQ: Did you install mosquitto through the openhabian-config utility?



  • @haloway13

    I assumed yes since the log was showing no connection to MQTT

    I am now getting this error:

    20:56:49.983 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.151' with clientid cc150d9b-7fcc-45d0-93d2-00ad80ddb9a9
    20:56:50.005 [ERROR] [protocol.mqtt.MySensorsMqttConnection] - MQTT connection offline - {}
    com.hivemq.client.mqtt.exceptions.ConnectionClosedException: java.io.IOException: Connection reset by peer
    Caused by: java.io.IOException: Connection reset by peer
    	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:?]
    	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[?:?]
    	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276) ~[?:?]
    	at sun.nio.ch.IOUtil.read(IOUtil.java:233) ~[?:?]
    	at sun.nio.ch.IOUtil.read(IOUtil.java:223) ~[?:?]
    	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358) ~[?:?]
    	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247) ~[bundleFile:4.1.42.Final]
    	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1147) ~[bundleFile:4.1.42.Final]
    	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347) ~[bundleFile:4.1.42.Final]
    	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148) [bundleFile:4.1.42.Final]
    	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) [bundleFile:4.1.42.Final]
    	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635) [bundleFile:4.1.42.Final]
    	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552) [bundleFile:4.1.42.Final]
    	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) [bundleFile:4.1.42.Final]
    	at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044) [bundleFile:4.1.42.Final]
    	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.42.Final]
    	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.42.Final]
    	at java.lang.Thread.run(Thread.java:834) [?:?]
    
    


  • @haloway13
    @ncollins
    Woot!!! massive success!!!

    in /srv/openhab-userdata/config/org/openhab/mqttbroker.config

    added at the end secure="false"

    as you suggested.

    21:42:04.192 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'HumiditySensor_Humidity' changed from 33.1 to 33.3
    21:42:54.224 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/1/1/1/0/1, Message: 33.2
    21:42:54.226 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Message topic part: 1/1/1/0/1
    21:42:54.228 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 1;1;1;0;1;33.2
    21:42:54.231 [DEBUG] [orsAbstractConnection$MySensorsReader] - Message from gateway received: 1;1;1;0;1;33.2
    21:42:54.234 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Node 1 found in gateway
    21:42:54.236 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Child 1 found in node 1
    21:42:54.238 [DEBUG] [sensors.handler.MySensorsThingHandler] - Updating channel: hum(V_HUM) value to: 33.2
    21:42:54.244 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'HumiditySensor_Humidity' changed from 33.3 to 33.2
    21:42:54.246 [DEBUG] [sensors.handler.MySensorsThingHandler] - Setting last update for node/child 1/1 to 2021-03-11T21:42:54.000-0700
    21:43:04.250 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/1/1/1/0/1, Message: 33.3
    21:43:04.252 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Message topic part: 1/1/1/0/1
    21:43:04.253 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 1;1;1;0;1;33.3
    21:43:04.260 [DEBUG] [orsAbstractConnection$MySensorsReader] - Message from gateway received: 1;1;1;0;1;33.3
    21:43:04.262 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Node 1 found in gateway
    21:43:04.263 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Child 1 found in node 1
    21:43:04.265 [DEBUG] [sensors.handler.MySensorsThingHandler] - Updating channel: hum(V_HUM) value to: 33.3
    21:43:04.270 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'HumiditySensor_Humidity' changed from 33.2 to 33.3
    21:43:04.271 [DEBUG] [sensors.handler.MySensorsThingHandler] - Setting last update for node/child 1/1 to 2021-03-11T21:43:04.000-0700
    21:43:14.266 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/1/1/1/0/1, Message: 33.2
    21:43:14.268 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Message topic part: 1/1/1/0/1
    21:43:14.271 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 1;1;1;0;1;33.2
    21:43:14.276 [DEBUG] [orsAbstractConnection$MySensorsReader] - Message from gateway received: 1;1;1;0;1;33.2
    21:43:14.278 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Node 1 found in gateway
    21:43:14.280 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Child 1 found in node 1
    21:43:14.281 [DEBUG] [sensors.handler.MySensorsThingHandler] - Updating channel: hum(V_HUM) value to: 33.2
    21:43:14.285 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'HumiditySensor_Humidity' changed from 33.3 to 33.2
    21:43:14.286 [DEBUG] [sensors.handler.MySensorsThingHandler] - Setting last update for node/child 1/1 to 2021-03-11T21:43:14.000-0700
    


  • @haloway13 Yes!! Impressive perseverance.

    Somehow I've become emotionally invested in your outcome, so this is extremely satisfying. Great work.



  • @ncollins

    I could not have done it without you! I really appreciate the feedback and continued support. I would not have continued without it.

    Now... to get the darn data to display both in C and F. I am missing something conceptually.

    I should probably do this in another thread after I completely document all the steps I have done for posterity.

    Thanks again!



  • @haloway13 oooof, I found that to be confusing too.

    If your platform settings Settings -> Regional Settings [advanced] -> Metric / Imperial are set,

    and you define your items as Number:Temperature, they should "magically" display in the correct format and auto converted, but I've had a lot of trouble with that.

    There are also settings to have the gateway confirm "isMetric" and have you node respond in the appropriate unit.

    Lastly, in your item definition, you can "Add Metadata" -> State Description, and set a display format that supposedly converts value, but I'm not sure I understand exactly when it's suppose to override platform settings.

    Screen Shot 2021-03-12 at 5.51.47 PM.png Screen Shot 2021-03-12 at 5.52.00 PM.png

    More info here: https://community.openhab.org/t/solved-the-right-place-to-do-temperature-conversion/91233



  • @ncollins

    You are correct about magic supposing to happen when adding an item with:

    Number:Temperature with the correct regional imperial vs metric chosen.

    I think the confusion is that the number gets converted but the units need to be overriden with metadata so that it makes sense.

    Does that jive with what you understand?

    Also, it is interesting that the metadata is defined at item/channel link time?



  • @haloway13 I really don't have an understanding of how it works. I'm not sure how OpenHAB knows when to convert a value from a sensor reading?

    • When you set the platform level metric/imperial setting, is that establishing the assumption that all sensor values are metric/imperial?
    • If the metadata override for a Number:Temperature doesn't match the platform setting, is openhab smart enough to do the conversion?
    • When updating the metadata, does that convert the current value or only updates after setting the metadata?

    In my limited experiments, changing the metadata just seems to change the label suffix to ˚C or ˚F



  • Hi,

    I just upgraded Linux Openhab version from "openHAB 3.1.0.M2" to "openHAB 3.1.0.M3". Since upgrade I cannot use / activate MySensors binding anymore (it worked in previous version - M2).
    I cleaned openhab cache, rebooted computer; feature:install openhab-transport-serial and feature:install openhab-core-io-transport-mqtt are properly installed and active. When I place Mysensors.jar to Addons folder the file gets recognized but it is listed only as Installed, not active.

    openhab> bundle:list | grep MySensors
    266 x Installed x  80 x 3.1.0.202012312203      x openHAB Add-ons :: Bundles :: MySensors Binding
    

    Log shows following error:

     [WARN ] [org.apache.felix.fileinstall         ] - Error while starting bundle: file:/usr/share/openhab/addons/org.openhab.binding.mysensors-3.1.0.jar
    org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.mysensors [266]
      Unresolved requirement: Import-Package: org.apache.commons.lang; version="[2.6.0,3.0.0)"
    
            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]
    
    

    Does anyone know how to resolve this issue / install missing requirement?



  • @niccodemi
    same problem here


  • Hero Member

    I've solved the dependency error and the package compiles fine, but I had no time for testing yet.
    If you're willing to test: Download



  • Hi,
    I have a problem with the binding. Sometimes it drops the connection to the broker without any error message.
    System: OH 3.0.1 → MySensensors MQTT Bridge → Mosquitto → MySensors MQTT Gateway

    Fresh OpenHab install on debian, system start without any error, running about 1 day, then cannot communicate via MQTT. Messages does not arrive from Mosquitto to OH, also no outgoing messages to the broker. Checked mosquitto with MQTT Explorer, thats seems working, there are messages from the MySensorsGW.
    There aren’t any clue in logs ( working untill ~2021-04-13 10:27:12:757) :

    2021-04-13 10:27:00.947 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/11/5/1/1/2, Message: 0
    2021-04-13 10:27:00.947 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Message topic part: 11/5/1/1/2
    2021-04-13 10:27:00.947 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 11;5;1;1;2;0
    2021-04-13 10:27:00.949 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 11;5;1;1;2;0
    2021-04-13 10:27:00.949 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:00.949 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 5 found in node 11
    2021-04-13 10:27:00.949 [DEBUG] [ensors.handler.MySensorsThingHandler] - Updating channel: status(V_STATUS) value to: OFF
    2021-04-13 10:27:00.950 [DEBUG] [ensors.handler.MySensorsThingHandler] - Setting last update for node/child 11/5 to 2021-04-13T10:27:00.000+0200
    2021-04-13 10:27:01.001 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;6;1;1;2;0
    2021-04-13 10:27:01.002 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;6;1;1;2;0
    2021-04-13 10:27:01.026 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/11/6/1/1/2, Message: 0
    2021-04-13 10:27:01.026 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Message topic part: 11/6/1/1/2
    2021-04-13 10:27:01.027 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 11;6;1;1;2;0
    2021-04-13 10:27:01.031 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 11;6;1;1;2;0
    2021-04-13 10:27:01.031 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:01.031 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 6 found in node 11
    2021-04-13 10:27:01.032 [DEBUG] [ensors.handler.MySensorsThingHandler] - Updating channel: status(V_STATUS) value to: OFF
    2021-04-13 10:27:01.032 [DEBUG] [ensors.handler.MySensorsThingHandler] - Setting last update for node/child 11/6 to 2021-04-13T10:27:01.000+0200
    2021-04-13 10:27:01.102 [INFO ] [rsAbstractConnection$MySensorsWriter] - ACK received for message: 11;5;1;1;2;0
    
    2021-04-13 10:27:01.103 [INFO ] [rsAbstractConnection$MySensorsWriter] - ACK received for message: 9;6;1;1;3;0
    
    2021-04-13 10:27:01.103 [INFO ] [rsAbstractConnection$MySensorsWriter] - ACK received for message: 11;6;1;1;2;0
    
    2021-04-13 10:27:02.727 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/11/13/1/0/24, Message: 0
    2021-04-13 10:27:02.728 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Message topic part: 11/13/1/0/24
    2021-04-13 10:27:02.728 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 11;13;1;0;24;0
    2021-04-13 10:27:02.732 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 11;13;1;0;24;0
    2021-04-13 10:27:02.733 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:02.733 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 13 found in node 11
    2021-04-13 10:27:02.734 [DEBUG] [ensors.handler.MySensorsThingHandler] - Updating channel: var1(V_VAR1) value to: 0
    2021-04-13 10:27:02.734 [DEBUG] [ensors.handler.MySensorsThingHandler] - Setting last update for node/child 11/13 to 2021-04-13T10:27:02.000+0200
    2021-04-13 10:27:02.826 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/11/14/1/0/2, Message: 0
    2021-04-13 10:27:02.826 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Message topic part: 11/14/1/0/2
    2021-04-13 10:27:02.827 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 11;14;1;0;2;0
    2021-04-13 10:27:02.836 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 11;14;1;0;2;0
    2021-04-13 10:27:02.836 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:02.837 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 14 found in node 11
    2021-04-13 10:27:02.837 [DEBUG] [ensors.handler.MySensorsThingHandler] - Updating channel: status(V_STATUS) value to: OFF
    2021-04-13 10:27:02.838 [DEBUG] [ensors.handler.MySensorsThingHandler] - Setting last update for node/child 11/14 to 2021-04-13T10:27:02.000+0200
    2021-04-13 10:27:04.050 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/7/255/3/0/22, Message: 1260498882
    2021-04-13 10:27:04.051 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Message topic part: 7/255/3/0/22
    2021-04-13 10:27:04.052 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 7;255;3;0;22;1260498882
    2021-04-13 10:27:04.052 [DEBUG] [rsAbstractConnection$MySensorsReader] - Message from gateway received: 7;255;3;0;22;1260498882
    2021-04-13 10:27:04.725 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - MQTT message received. Topic: mygateway1-out/9/255/3/0/22, Message: 568774403
    2021-04-13 10:27:04.726 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Message topic part: 9/255/3/0/22
    2021-04-13 10:27:04.726 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Converted MQTT message to MySensors Serial format. Sending on to bridge: 9;255;3;0;22;568774403
    2021-04-13 10:27:12.747 [INFO ] [org.openhab.core.model.script.Info  ] - Hot Water Heating: Off
    2021-04-13 10:27:12.755 [DEBUG] [ensors.handler.MySensorsThingHandler] - Adapter: class org.openhab.binding.mysensors.converter.MySensorsOnOffTypeConverter loaded
    2021-04-13 10:27:12.757 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:12.757 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 6 found in node 11
    2021-04-13 10:27:12.757 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;6;1;1;2;0
    2021-04-13 10:27:12.757 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;6;1;1;2;0
    2021-04-13 10:27:12.858 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;6;1;1;2;0
    2021-04-13 10:27:12.858 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;6;1;1;2;0
    2021-04-13 10:27:12.959 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;6;1;1;2;0
    2021-04-13 10:27:12.960 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;6;1;1;2;0
    2021-04-13 10:27:13.461 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;6;1;1;2;0
    2021-04-13 10:27:13.462 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;6;1;1;2;0
    2021-04-13 10:27:14.464 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;6;1;1;2;0
    2021-04-13 10:27:14.464 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;6;1;1;2;0
    2021-04-13 10:27:15.695 [INFO ] [org.openhab.core.model.script.Info  ] - Nappali Heating Demand : 0
    2021-04-13 10:27:15.697 [INFO ] [org.openhab.core.model.script.Info  ] - Gyerekszoba Heating Demand set to: 0
    2021-04-13 10:27:15.699 [INFO ] [org.openhab.core.model.script.Info  ] - Haloszoba Heating Demand set to: 0
    2021-04-13 10:27:15.703 [DEBUG] [ensors.handler.MySensorsThingHandler] - Adapter: class org.openhab.binding.mysensors.converter.MySensorsOnOffTypeConverter loaded
    2021-04-13 10:27:15.703 [DEBUG] [ensors.handler.MySensorsThingHandler] - Adapter: class org.openhab.binding.mysensors.converter.MySensorsPercentTypeConverter loaded
    2021-04-13 10:27:15.704 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 9 found in gateway
    2021-04-13 10:27:15.704 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:15.704 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 6 found in node 9
    2021-04-13 10:27:15.705 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 5 found in node 11
    2021-04-13 10:27:15.866 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 9;6;1;1;3;0
    2021-04-13 10:27:15.867 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 9;6;1;1;3;0
    2021-04-13 10:27:15.968 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;5;1;1;2;0
    2021-04-13 10:27:15.969 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;5;1;1;2;0
    2021-04-13 10:27:16.170 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 9;6;1;1;3;0
    2021-04-13 10:27:16.171 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 9;6;1;1;3;0
    2021-04-13 10:27:16.274 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;5;1;1;2;0
    2021-04-13 10:27:16.274 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;5;1;1;2;0
    2021-04-13 10:27:16.475 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 9;6;1;1;3;0
    2021-04-13 10:27:16.476 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 9;6;1;1;3;0
    2021-04-13 10:27:16.576 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;5;1;1;2;0
    2021-04-13 10:27:16.577 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;5;1;1;2;0
    2021-04-13 10:27:16.678 [WARN ] [rsAbstractConnection$MySensorsWriter] - NO ACK for message: 11;6;1;1;2;0
    
    2021-04-13 10:27:16.679 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Node 11 found in gateway
    2021-04-13 10:27:16.680 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Child 6 found in node 11
    2021-04-13 10:27:16.680 [DEBUG] [rs.internal.gateway.MySensorsGateway] - Variable MySensorsVariableVStatus found, it will be reverted to last know state
    2021-04-13 10:27:16.681 [DEBUG] [ensors.handler.MySensorsThingHandler] - Updating channel: status(V_STATUS) value to: OFF
    2021-04-13 10:27:16.683 [WARN ] [ensors.handler.MySensorsThingHandler] - Setting last update for node/child 11/6 BACK (due to revert) to 2021-04-13T10:27:02.000+0200
    2021-04-13 10:27:17.085 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 9;6;1;1;3;0
    2021-04-13 10:27:17.086 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 9;6;1;1;3;0
    2021-04-13 10:27:17.187 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;5;1;1;2;0
    2021-04-13 10:27:17.188 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;5;1;1;2;0
    2021-04-13 10:27:18.090 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 9;6;1;1;3;0
    2021-04-13 10:27:18.091 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 9;6;1;1;3;0
    2021-04-13 10:27:18.191 [DEBUG] [rsAbstractConnection$MySensorsWriter] - Sending to MySensors: 11;5;1;1;2;0
    2021-04-13 10:27:18.192 [DEBUG] [rotocol.mqtt.MySensorsMqttConnection] - Sending MQTT Message: Topic: mygateway1-in, Message: 11;5;1;1;2;0
    2021-04-13 10:27:20.095 [WARN ] [rsAbstractConnection$MySensorsWriter] - NO ACK for message: 9;6;1;1;3;0
    


  • @TimO thanks for your time, but I am sorry to say there is another one:

    Unresolved requirement: Import-Package: org.osgi.framework; version="[1.9.0,2.0.0)"
    
    
    


  • Hi guys!
    I have been using MySensors and openHAB for a couple of years and always found soultions on the forum for my questions But now I have com over a problem that I can't find out how to solve. So here goes my first post oon the forum and hope somone can guide mw in the right direction.

    My setup are openHAB 3.0.2 and MySensors Ethernet gateway installed and working. I need to install MySensors MQTT Gateway.

    So far i have openhab installed on a server with ip address 10.0.30.10. MySensors Ethermet Gateway (SensbenderGw) at ip address 10.0.30.20. MySensors MQTT gateway (SensbenderGw) at IP address 10.0.30.21 and a mósquitto broker at ip addess 10.0.30.22.

    Openhab, MySensors Ethernet Gateway works as they should.

    MySensors MQTT Gateway connects to Mosquitto broker. I get det folling in the Gateway logfile:

    [Starting] Opening the serial port - COM3
    [Info] Opened the serial port - COM3
    1747 MCO:BGN:STP
    1747 MCO:BGN:INIT OK,TSP=1
    1859 GWT:TPC:IP=10.0.30.21
    2859 GWT:RMQ:CONNECTING...
    2862 GWT:RMQ:OK
    2862 GWT:TPS:TOPIC=mygateway1-out/0/255/0/0/18,MSG SENT
    2863 TSM:READY:NWD REQ
    2867 ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    

    And the following respons in MQTT.fx looking at incoming topics:

    2021-05-08_11-30-26.png

    So from this I assume that the connection between MySensors MQTT Gateway and Mosituitt is OK.

    In openhab I have installed the MQTT Binding and configured a MQTT Broker and a MySensors MQTT Gateway

    2021-05-08_2png.png

    MQTT configuration in code format:

    UID: mqtt:broker:mosquitto
    label: MQTT Broker
    thingTypeUID: mqtt:broker
    configuration:
      lwtQos: 0
      publickeypin: true
      keepAlive: 60
      clientid: 905612ab-e42d-4703-b8e1-dec1f25230d4
      qos: 0
      reconnectTime: 60000
      port: 1883
      host: 10.0.30.22
      secure: false
      certificatepin: true
      lwtRetain: true
      enableDiscovery: false
    
    

    As can be seen in the picture above the MQTT Broker is online as weel as MySensors Ethernet Gateway. But MySensors MQTT Gateway will not go online.

    The configuration of the MQTT broker is as seen below:

    2021-05-08_4.png

    MySensors MQTT Gateway in code format:

    UID: mysensors:bridge-mqtt:mysmqttgw
    label: MySensors MQTT Gateway
    thingTypeUID: mysensors:bridge-mqtt
    configuration:
      networkSanCheckSendHeartbeat: false
      topicPublish: mygateway1-in
      networkSanCheckInterval: 3
      networkSanCheckSendHeartbeatFailAttempts: 10
      topicSubscribe: mygateway1-out
      networkSanCheckEnabled: false
      networkSanCheckConnectionFailAttempts: 3
      startupCheckEnabled: true
      brokerName: mosquitto
      imperial: false
      sendDelay: 100
    
    

    When MySensors MQTT Gateway is update/saved. I get the following in the OH log file:

    11:56:30.471 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'PergolaLedboxTemp13Temp_32_13' changed from 27.5 to 27.4
    11:57:00.621 [DEBUG] [ensors.handler.MySensorsBridgeHandler] - Configuation update for bridge: {networkSanCheckSendHeartbeat=true, topicPublish=mygateway1-in, networkSanCheckInterval=3, networkSanCheckSendHeartbeatFailAttempts=10, topicSubscribe=mygateway1-out, networkSanCheckEnabled=false, networkSanCheckConnectionFailAttempts=3, startupCheckEnabled=true, brokerName=mosquitto, imperial=false, sendDelay=100}
    11:57:00.622 [DEBUG] [ensors.handler.MySensorsBridgeHandler] - Disposing of the MySensors bridge
    11:57:00.623 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Destroying connection
    11:57:00.624 [DEBUG] [ensors.handler.MySensorsBridgeHandler] - Initialization of the MySensors bridge
    11:57:00.626 [DEBUG] [sensors.factory.MySensorsCacheFactory] - Cache file: given_ids.cached exist.
    11:57:00.627 [DEBUG] [sensors.factory.MySensorsCacheFactory] - Cache (given_ids) content: []
    11:57:00.628 [DEBUG] [protocol.mqtt.MySensorsMqttConnection] - Enabling connection watchdog
    11:57:00.628 [DEBUG] [ensors.handler.MySensorsBridgeHandler] - Initialization of the MySensors bridge DONE!
    11:57:00.628 [ERROR] [protocol.mqtt.MySensorsMqttConnection] - No connection to broker: mosquitto
    11:57:00.628 [DEBUG] [s.discovery.MySensorsDiscoveryService] - Starting MySensors discovery scan
    11:57:00.631 [DEBUG] [sensors.factory.MySensorsCacheFactory] - Writing on cache given_ids, content: []
    11:57:00.632 [ERROR] [protocol.mqtt.MySensorsMqttConnection] - Failed connecting to bridge...next retry in 10 seconds (Retry No.:0)
    
    

    From my point of view it seems that MySensors Bridge is configured right but something is wrong that prevents it from connect.

    I obviously missing something basic I assume, but I cannot fugure out what. If somone can help me to understand and solve this I am greateful.

    Thanks for helping!



  • Hi.

    Her comes a short update in my struggle to get MQTT to work with MySensors and Openhab 3.
    In the last couple of days I have read a lot of information and tried different configuration alternatives but not been able to sort it out to get a overall understanding
    I have come a bit further but I am still confused but on a higher level.

    Got MySensors MQTT Gateway up and running but can not get my test node to update the item in openHAB with my own defined configuration.

    My basic setup looks like this:

    MysNode (motion sensor) -> Mosquitto broker -> MySensors MQTT Gw -> openHAB (MQTT binding installed and online)
    (nodeId=41, chileId=1)

    In this setup I can see in MQTT.fx that the node is sending and the message received in the Mosuitto (mygateway1-out/41/1/1/0/16. payload 1 and 0)

    Earlier in this tread I found the setup below, (Reduced to just handle my motion sensor)

    Bridge and Thing configuration

    Bridge mqtt:broker:MqttOpenHAB75 "MQTT Broker Pandora" @ "MQTT Pandora" [ 
                                                                            host="10.0.30.22",
                                                                            port=1883,
                                                                            secure="AUTO",
                                                                            qos=0,
                                                                            retain=false,
                                                                            clientid="Oh2Mqtt2Thing",
                                                                            keep_alive_time=30000,
                                                                            reconnect_time=60000
                                                                          ] {
    Thing mqtt:topic:MySBabylon_LED_1_th  "MQTT-MyS Thing: Babylon LED" (mqtt:broker:MqttOpenHAB75) @ "MQTT OpenHAB"
        {
        Channels:
            Type number : uptime    "LED Stripe uptime" [ stateTopic="MyS-Node/5/255/3/0/22" ]
            Type switch : lamp      "LED Stripe power"  [ stateTopic="mygateway1-out/41/1/1/0/16" ]
            Type number : dim       "LED Stripe dim"    [ stateTopic="MyS-Node/5/1/1/0/3",       commandTopic="MyS-2Node/5/1/2/0/3" ]
            Type number : fade      "LED Stripe fade"   [ stateTopic="MyS-Node/5/1/1/0/24",      commandTopic="MyS-2Node/5/1/2/0/24" ] 
        } 
     }
    

    Items configuration::

    Switch 	Babylon_LED_SWITCH  "Babylon LED Switch"                              (gMYSensors) { channel="mqtt:topic:MySBabylon_LED_1_th:lamp" }
    

    With this setup the status of the motion node is reflected in openHAB.

    If I switch to my own defined setup it will not work.

    Bridge and Thing configuration:

     Bridge mysensors:bridge-mqtt:mysmqttgw [ brokerName="mosquitto", 
                                              topicPublish="mygateway1-in", 
                                              topicSubscribe="mygateway1-out", 
                                              startupCheckEnabled=false, 
                                              networkSanCheckSendHeartbeat=false, 
                                              networkSanCheckInterval=3, 
                                              networkSanCheckSendHeartbeatFailAttempt=10, 
                                              networkSanCheckEnabled=false,
                                              networkSanCheckConnectionFailAttempts=3, 
                                              imperial=false, 
                                              sendDelay=100 ] {
    
     
     Thing mqtt:topic:MySBabylon_LED_1_th  "MQTT-MyS Thing: Babylon LED" (mqtt:broker:MqttOpenHAB75) @ "MQTT OpenHAB"
        {
        Channels:
            Type switch : lamp      "LED Stripe power1"  [ stateTopic="mygateway1-out/41/1/1/0/16" ]
        }
    }
    

    Items configuration:

    Switch 	Babylon_LED_SWITCH  "Babylon LED Switch"                              (gMYSensors) { channel="mysensors:topic:MySBabylon_LED_1_th:lamp" }
    

    MySensors MQTT Gw configuration (same as described in my first post):

    UID: mysensors:bridge-mqtt:002418003f
    label: MySensors MQTT Gateway
    thingTypeUID: mysensors:bridge-mqtt
    configuration:
      networkSanCheckSendHeartbeat: false
      topicPublish: mygateway1-in
      networkSanCheckInterval: 3
      networkSanCheckSendHeartbeatFailAttempts: 10
      topicSubscribe: mygateway1-out
      networkSanCheckEnabled: false
      networkSanCheckConnectionFailAttempts: 3
      startupCheckEnabled: false
      brokerName: mosquitto
      imperial: false
      sendDelay: 100
    

    When saving the Thing file In both configuration alternatives I get the information below that there is Validating issues in the Thing file.
    It don't seem to affect either of the configuration alternatives for the moment, but can this b a problem further on?
    I have seen this message described earlier in the post but I hav not seen any explanation as I can recall.

    
    12:06:53.529 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'mysensorsmqtt.things'
    12:06:53.532 [INFO ] [del.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'mysensorsmqtt.things', using it anyway:
    Provide a thing type ID and a thing ID in this format:
     <thingTypeId> <thingId>
    12:06:53.537 [DEBUG] [orsAbstractConnection$MySensorsReader] - Message from gateway received: 32;11;1;0;0;26.0
    12:06:53.538 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Node 32 found in gateway
    12:06:53.539 [DEBUG] [ors.internal.gateway.MySensorsGateway] - Child 11 found in node 32
    12:06:53.540 [DEBUG] [sensors.handler.MySensorsThingHandler] - Updating channel: temp(V_TEMP) value to: 26.0
    12:06:53.541 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:MqttOpenHAB75' changed from ONLINE to OFFLINE
    12:06:53.542 [DEBUG] [sensors.handler.MySensorsThingHandler] - Setting last update for node/child 32/11 to 2021-05-10T12:06:53.000+0200
    12:06:53.544 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:MySBabylon_LED_1_th' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
    12:06:53.544 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:MySBabylon_LED_1_th' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
    12:06:53.551 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:MqttOpenHAB75' changed from ONLINE to OFFLINE
    12:06:53.551 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:MySBabylon_LED_1_th' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
    12:06:53.565 [INFO ] [o.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '10.0.30.22' with clientid 7e4fcf00-ab5d-4a0a-9e45-3694c0963846
    12:06:53.576 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:MqttOpenHAB75' changed from OFFLINE to ONLINE
    12:06:53.583 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:MySBabylon_LED_1_th' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
    
    

    so, to conclude:

    • What am I doing wrong in my own configuration vs the copied?
    • In the copied setup, am I using MySensors MQTT Gw or something else?
    • MySensors MQTT Gw points to the brokerName and in the copied version it points to the broker with the IP adress. Is this my problem?
    • Is the information in the log file something I should bother me about,?

    Hope someone can give me a hint to get a better understanding of this.



  • @oljo Taking a step back and reread all the information i could find in thos forum and in openHAB Community got a good understanding how the MQTT configuration and setup shall be.
    I have a working confifuration of MySensors -> MQTT -> openHAB.

    The main problem was the thing configuration file.

    The Documentation shows a Thing file with the syntax below:

    Bridge mqtt:broker:MqttOpenHAB75 "MQTT Broker Pandora" @ "MQTT Pandora" [ 
                                                                            host="10.0.30.22",
                                                                            port=1883,
                                                                            secure="AUTO",
                                                                            qos=0,
                                                                            retain=false,
                                                                            clientid="Oh2Mqtt2Thing",
                                                                            keep_alive_time=30000,
                                                                            reconnect_time=60000
                                                                          ] {
    Thing mqtt:topic:MySBabylon_LED_1_th  "MQTT-MyS Thing: Babylon LED" (mqtt:broker:MqttOpenHAB75) @ "MQTT OpenHAB"
        {
        Channels:
            Type number : uptime    "LED Stripe uptime" [ stateTopic="MyS-Node/5/255/3/0/22" ]
            Type switch : lamp      "LED Stripe power"  [ stateTopic="mygateway1-out/41/1/1/0/16" ]
            Type number : dim       "LED Stripe dim"    [ stateTopic="MyS-Node/5/1/1/0/3",       commandTopic="MyS-2Node/5/1/2/0/3" ]
            Type number : fade      "LED Stripe fade"   [ stateTopic="MyS-Node/5/1/1/0/24",      commandTopic="MyS-2Node/5/1/2/0/24" ] 
        } 
     }
    

    This is correct if the thing file is created in the openHAB UI.

    Creating the Thing file with this syntax in a Thing text definition file shows this message in the log file:

    12:06:53.529 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'mysensorsmqtt.things'
    12:06:53.532 [INFO ] [del.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'mysensorsmqtt.things', using it anyway:
    Provide a thing type ID and a thing ID in this format:
     <thingTypeId> <thingId>
    

    When using Thing definitions in text file the syntax shall be:

    Bridge mqtt:broker:mysmqttgw "MQTT MySensors" @ "MQTT MySensors" [ 
      host="10.0.30.22",
      port=1883,
      secure="AUTO",
      qos=0,
      retain=false,
      clientid="Oh2Mqtt2Thing",
      keep_alive_time=30000,
      reconnect_time=60000
     ] 
         Thing topic MyMotion_41  "MQTT-MyS Thing: Motion_41" (mqtt:broker:mysmqttgw) @ "MQTT OpenHAB" 
           {
             Channels:
               Type switch : lamp        "Motion detect"  [ stateTopic="mygateway1-out/41/1/1/0/16" ]
           }
    

    note the difference between openHAB UI definition:

    Thing mqtt:topic:MySBabylon_LED_1_th
    

    and textual Thing definition:

    Thing topic MyMotion_41
    


  • @oljo I am very sorry to ask, but how does your post connect to the topic of this thread?
    ....you are not using the mysensors-binding....



  • This post is deleted!


  • This post is deleted!


  • @Peter-Loeffler
    Sorry for my late reply I completely missed your question.
    I do use MySensors binding. I have a MySensors ethernet gateway and about 50+ different nodes connected to it and working with openHAB.
    The MysSensors jar file is installed and all configuration is done in textual files in openHAB. It all works well.
    A while ago I identified the need to use MQTT and as I described in my earlier post I got confused when trying to set things up for MQTT.

    Reading posts in both MySensors forum and openHAB community gave me no clear answer how to set up MQTT with MySensors, so I had to try my way forward.
    And, as shown in my earlier posts i have tried to set up MySensors-MQTT gateway in a textual file based on some posts here and in openHAB community.

    I may have done it in a wrong way and missed something completely and if so I am glad if I could get som hints how to set it up or a hint where I can read about it from the perspective of MySensors and openHAB 3.x

    From my judgement my question connects to this thread as I want to use MySensors MQTT with MySensors binding.
    If you think my question belongs to another thread feel free to move it.



  • @Peter-Loeffler
    Addition to my earlier answer. I have set up a MySensors MQTT gateway in parallel with my ordinary MySensors ethernet Gateway.



  • @Peter-Loeffler
    Thank you for enlightening me. I get your point.
    You are absolutely right. In the configuration files I have not been using MySensors Binding.
    I can only explain this by being completely confused by reading various posts.
    So, taking a step back and reconfigure with MySensors binding for MQTT I am back to square one.
    I am not able to get the MySensors MQTT to go online.



  • @Peter-Loeffler By telling me that I'm not using MySensors binding you lead me in the right direction.
    I now have working setup with MySensors binding for MQTT.
    Seeing the final setup shows that it was much simpler than I could imagine.
    Tank you for helping out.



  • @oljo as I already mentioned: your posts are 100% off topic, because ypu do not use the OH3-binding for mysensors. you did some text-file thing-definitions with the MQTT-binding... apples and not plums


Log in to reply
 

Suggested Topics

  • 2
  • 3
  • 16
  • 132
  • 3
  • 22
  • 6
  • 1

225
Online

10.1k
Users

10.6k
Topics

109.0k
Posts