Skip to content
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. OpenHAB
  4. openHAB 2.0 binding
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

openHAB 2.0 binding

Scheduled Pinned Locked Moved OpenHAB
534 Posts 88 Posters 479.5k Views 99 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AndrewZA Offline
    AndrewZA Offline
    AndrewZ
    wrote on last edited by
    #121

    Hello everyone

    I'm testing MySensor Ethernet gateway with a relay code on it. My understanding that Gateway stores the current state of the relay (or GPIO port) in it's EPROM. Can the binding periodically check the state of the port or should I rely on OH persistence functionality? Please advise what is the right way to keep the states synced between the Gateway and OH.

    Thanks
    Andrew

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TimO
      Hero Member
      wrote on last edited by
      #122

      Hi Andrew!

      Good question. Polling is currently not supported by the binding itself, but what you could do is: send a message from the node to the gateway, when the node restarts (the moment after you read the EEPROM and set the output of the pin).

      Greetings
      Tim

      AndrewZA 1 Reply Last reply
      0
      • T TimO

        Hi Andrew!

        Good question. Polling is currently not supported by the binding itself, but what you could do is: send a message from the node to the gateway, when the node restarts (the moment after you read the EEPROM and set the output of the pin).

        Greetings
        Tim

        AndrewZA Offline
        AndrewZA Offline
        AndrewZ
        wrote on last edited by
        #123

        @TimO , thanks for the idea.
        So I can probably take some code used for reporting button presses in the examples and use it in the 'message'.

        Thanks again
        Andrew

        1 Reply Last reply
        0
        • G Offline
          G Offline
          gonzalonal
          wrote on last edited by
          #124

          Hi Tim0.

          I have read all your instructions in the GitHub Repo.
          Is there any special reason why you suggest to add things in manual, text way, rather than with the PaperUI?

          I have done it with the PaperUI and manually restarting my nodes and everything works just fine.

          Let me know what you think.
          Regards

          Q T 2 Replies Last reply
          0
          • G gonzalonal

            Hi Tim0.

            I have read all your instructions in the GitHub Repo.
            Is there any special reason why you suggest to add things in manual, text way, rather than with the PaperUI?

            I have done it with the PaperUI and manually restarting my nodes and everything works just fine.

            Let me know what you think.
            Regards

            Q Offline
            Q Offline
            Qu3Uk
            wrote on last edited by
            #125

            I wondered that but I'm quite new to OpenHab so did some looking in to how various things work..

            PaperUi uses something called MapDB which is basically a non-human readable configuration file. If you add "things" via PaperUi as far as I can tell you've still got to link the thing to an item for OpenHab to work with as far as I can tell..

            I opted to do everything manually like in the wiki, seems much simpler

            I get the impression PaperUi is still very new and not for production yet... its not compatible with sitemaps as they are waiting to implement a version of sitemaps in PaperUI or something.. I think it all boils down to the fact they want to keep V2 100% compatible with V1 configs and bindings etc so all the new stuff in V2 isn't quite ready yet...

            Anyway might have totally got the wrong impression but that's what I see as a new OpenHab user going straight to v2.

            On another note the work your doing TimO is awesome!

            1 Reply Last reply
            0
            • G gonzalonal

              Hi Tim0.

              I have read all your instructions in the GitHub Repo.
              Is there any special reason why you suggest to add things in manual, text way, rather than with the PaperUI?

              I have done it with the PaperUI and manually restarting my nodes and everything works just fine.

              Let me know what you think.
              Regards

              T Offline
              T Offline
              TimO
              Hero Member
              wrote on last edited by
              #126

              @gonzalonal

              I totally agree with @Qu3Uk ! :-)
              Both ways work and currently I like the configuration with the .items file more.

              In an early version of the PaperUI it was possible to change the status of items (switch lights on and off). Maybe something like this will return or habmin2 will fill the gap.

              1 Reply Last reply
              0
              • D Offline
                D Offline
                Denke
                Hardware Contributor
                wrote on last edited by
                #127

                I need support for HVAC device, how much work is there to be done to get that included.

                I have made a thermostat controller for my Wirsbo floor project can be found under myprojects wirsbo uponor thermostat replacement

                RaspberryPi-Openhab

                T 1 Reply Last reply
                0
                • D Denke

                  I need support for HVAC device, how much work is there to be done to get that included.

                  I have made a thermostat controller for my Wirsbo floor project can be found under myprojects wirsbo uponor thermostat replacement

                  T Offline
                  T Offline
                  TimO
                  Hero Member
                  wrote on last edited by
                  #128

                  @Denke What is it exactly what you need? Which types?
                  How is the setpoint set (request/send)?

                  Greetings
                  Tim

                  D 1 Reply Last reply
                  1
                  • T TimO

                    @Denke What is it exactly what you need? Which types?
                    How is the setpoint set (request/send)?

                    Greetings
                    Tim

                    D Offline
                    D Offline
                    Denke
                    Hardware Contributor
                    wrote on last edited by Denke
                    #129

                    @TimO
                    Hi Tim
                    I use gw.present(0, S_HVAC); to present the sensor to the controller

                    I use the following messages to send information
                    MyMessage msgTemp(0,V_TEMP); //temperature of thermostat
                    MyMessage msgFlowState(0,V_HVAC_FLOW_STATE); //tells if the thermostat is active HeatOn or off
                    MyMessage msgSetpointHeat(0,V_HVAC_SETPOINT_HEAT); //used for setting wanted temperature
                    MyMessage msgKnobTemp(0,V_VAR1); //gives the wanted manual temperature set on the thermostat knob (used for fallback when home automation dont work
                    MyMessage msgRunningMode(0,V_VAR2); //running mode internal or external internal = knob value used, external set by home automation
                    MyMessage msgHystLow(0,V_VAR3); //used if hysteresis needs to be changed (low value)
                    MyMessage msgHystHigh(0,V_VAR4); //used if hysteresis needs to be changed (high value)
                    MyMessage msgUpdateTime(0,V_VAR5); //used to set system sampling/update time

                    All of the above values are sent out from the thermostat at update sampling time interval.

                    V_HVAC_SETPOINT_HEAT(msgSetpointHeat), V_VAR3(msgHystLow), V_VAR4(msgHystHigh), V_VAR5(msgUpdateTime) can be set from the controller to update the thermostat parameters

                    RaspberryPi-Openhab

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      gonzalonal
                      wrote on last edited by gonzalonal
                      #130

                      Hi TimO.

                      I am trying to do a gw.request from one of my nodes that requires the value of a numeric item from OpenHAB.

                      Have you tested this? I am unable to make it work.

                      I have created a rule:

                      rule "Heart Rate request"
                      when
                      	Item Heart_Rate received command
                      then
                      if (receivedCommand == "REQUEST")
                      {
                      	logInfo( "Heart Rate", "Heart rate request")
                      	sendCommand(Heart_Rate, Heart_Rate.state);
                      }
                      end
                      

                      Please, let me know if I am doing it the wrong way.
                      Regards.

                      1 Reply Last reply
                      0
                      • Q Offline
                        Q Offline
                        Qu3Uk
                        wrote on last edited by Qu3Uk
                        #131

                        I seem to be having some issues with the dimmer function and I'm not entirely sure if its OpenHab, the binding or MySensors... but I seem to be able to crash the gateway once OpenHab boots up... The node is basically running DimmerLED stretch

                        20:31:13.030 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 7;1;1;0;0;33.8
                        ...
                        20:31:13.596 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'Light_APT_Lounge_TV' received command ON
                        20:31:13.598 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Sending to MySensors: 8;0;1;0;2;1
                        20:31:13.602 [INFO ] [marthome.event.ItemStateChangedEvent] - Light_APT_Lounge_TV changed from NULL to 100
                        20:31:14.599 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;14;Gateway startup complete.
                        20:31:27.963 [WARN ] [g.mysensors.protocol.MySensorsReader] - Connection to Gateway lost!
                        20:31:27.964 [DEBUG] [g.mysensors.protocol.MySensorsReader] - Stopping Reader thread
                        20:31:27.965 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-eth:gateway' changed from ONLINE to OFFLINE
                        

                        I notice the ItemState is null and that sort of makes sense why if OpenHab has been restarted but surely if it is null it shouldn't cause the gateway to go offline? Also it doesn't reconnect which is probably more of an issue.

                        
                        Bridge mysensors:bridge-eth:gateway [ ipAddress="192.168.1.150", tcpPort=5003, sendDelay=200 ] {
                                	dimmer			light08	[ nodeId="8", childId="0" ]	
                        }
                        
                        

                        Items

                        Dimmer	Light_APT_Lounge_TV	"TV Lights"	<light>	(Lights, APT_Lounge)	{ channel="mysensors:dimmer:gateway:light08:dimmer" }
                        
                        
                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          TimO
                          Hero Member
                          wrote on last edited by
                          #132

                          I finally found some time to develop on the binding.

                          A new version is available with the following changes:

                          • On startup the binding will request I_VERSION from gateway to ensure its proper startup. Thanks @andreacioni for the PR!!

                          • HVAC (V_VAR1, V_VAR2 ...) are now available. Thanks @Denke for the PR!!

                          • The request for ACK feature is now available for testing. It works for light/status for me. If a message is NOT acknowledged by a node the binding retries to send the message five times. If no ACK is received after that the binding will try to revert the item to its old state. This only works, if a state is known (not NULL, for example at startup).

                          Additionally I've tested the binding with multiple gateways (one EthernetGW, one SerialGW), works fine.

                          G 1 Reply Last reply
                          3
                          • T TimO

                            I finally found some time to develop on the binding.

                            A new version is available with the following changes:

                            • On startup the binding will request I_VERSION from gateway to ensure its proper startup. Thanks @andreacioni for the PR!!

                            • HVAC (V_VAR1, V_VAR2 ...) are now available. Thanks @Denke for the PR!!

                            • The request for ACK feature is now available for testing. It works for light/status for me. If a message is NOT acknowledged by a node the binding retries to send the message five times. If no ACK is received after that the binding will try to revert the item to its old state. This only works, if a state is known (not NULL, for example at startup).

                            Additionally I've tested the binding with multiple gateways (one EthernetGW, one SerialGW), works fine.

                            G Offline
                            G Offline
                            gonzalonal
                            wrote on last edited by gonzalonal
                            #133

                            Hi @TimO.
                            I have just installed the new release and I believe I've found a little bug. I am using Serial Gateway with version 1.5.3

                            At boot up time, I am getting the followinf error:

                            03:07:52.644 [ERROR] [s.internal.MySensorsBridgeConnection] - Cannot start reading/writing thread, probably sync message (I_VERSION) not received
                            

                            I have read that this new release, request the gateway for its version so as to prove proper start up.

                            What I have found is that the binding might be asking for the Gateway version al little too soon.

                            03:07:50.895 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Sending to MySensors: 0;0;3;0;2;
                            03:07:50.912 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;14;Gateway startup complete.
                            03:07:52.644 [ERROR] [s.internal.MySensorsBridgeConnection] - Cannot start reading/writing thread, probably sync message (I_VERSION) not received
                            03:07:52.647 [DEBUG] [col.serial.MySensorsSerialConnection] - Shutting down serial connection!
                            03:07:52.659 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Stopping Writer thread
                            03:07:52.661 [WARN ] [g.mysensors.protocol.MySensorsWriter] - Writer thread interrupted
                            03:07:52.666 [DEBUG] [g.mysensors.protocol.MySensorsReader] - Stopping Reader thread
                            

                            I have tested this manually and found that the gateway ONLY answers its version after its startup is finished and the message "0;0;3;0;14;Gateway startup complete." is sent.

                            When the binding starts, It makes (somehow) the gateway to reboot. So, the gateway runs its setup() method and when it's done, it send the message "0;0;3;0;14;Gateway startup complete"

                            Let me know if you can reproduce this error. Maybe it's just some problem with my setup, but with the previus version I was having no issues.

                            Regards!

                            andreacioniA 1 Reply Last reply
                            0
                            • G gonzalonal

                              Hi @TimO.
                              I have just installed the new release and I believe I've found a little bug. I am using Serial Gateway with version 1.5.3

                              At boot up time, I am getting the followinf error:

                              03:07:52.644 [ERROR] [s.internal.MySensorsBridgeConnection] - Cannot start reading/writing thread, probably sync message (I_VERSION) not received
                              

                              I have read that this new release, request the gateway for its version so as to prove proper start up.

                              What I have found is that the binding might be asking for the Gateway version al little too soon.

                              03:07:50.895 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Sending to MySensors: 0;0;3;0;2;
                              03:07:50.912 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;14;Gateway startup complete.
                              03:07:52.644 [ERROR] [s.internal.MySensorsBridgeConnection] - Cannot start reading/writing thread, probably sync message (I_VERSION) not received
                              03:07:52.647 [DEBUG] [col.serial.MySensorsSerialConnection] - Shutting down serial connection!
                              03:07:52.659 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Stopping Writer thread
                              03:07:52.661 [WARN ] [g.mysensors.protocol.MySensorsWriter] - Writer thread interrupted
                              03:07:52.666 [DEBUG] [g.mysensors.protocol.MySensorsReader] - Stopping Reader thread
                              

                              I have tested this manually and found that the gateway ONLY answers its version after its startup is finished and the message "0;0;3;0;14;Gateway startup complete." is sent.

                              When the binding starts, It makes (somehow) the gateway to reboot. So, the gateway runs its setup() method and when it's done, it send the message "0;0;3;0;14;Gateway startup complete"

                              Let me know if you can reproduce this error. Maybe it's just some problem with my setup, but with the previus version I was having no issues.

                              Regards!

                              andreacioniA Offline
                              andreacioniA Offline
                              andreacioni
                              wrote on last edited by andreacioni
                              #134

                              @gonzalonal I've implemented the check on startup. On serial gateway with the last version I'm not having any issue, so I would like to know: what hardware are you using? I think that probably is only a timing issue because, for exaple, Arduino UNO reset itself on opening connection and the message for request I_VERSION is sent immediately after connection is opened. I'll suggest you to try adding something like this:

                              Thread.sleep(3000)
                              

                              After line 49 on MySensorsSerialConnection.java. Should become:

                              serialConnection = new NRSerialPort(serialPort, baudRate);
                                      if (serialConnection.connect()) {
                                          logger.debug("Successfully connected to serial port.");
                                          Thread.sleep(3000); 
                                          mysConReader = new MySensorsSerialReader(serialConnection.getInputStream(), this);
                                          mysConWriter = new MySensorsSerialWriter(serialConnection.getOutputStream(), this, sendDelay);
                              
                                          connected = startReaderWriterThread(mysConReader, mysConWriter);
                                      } else {
                                          logger.error("Can't connect to serial port. Wrong port?");
                                      }
                              

                              I can't do this test because I do not have an appropriate hardware, can you try the suggested code modification?

                              Thanks!

                              UPDATE: I've upload a temp build here: https://drive.google.com/file/d/0B11IarucpGdUdFJ2ZjVtZENsb2c/view?usp=sharing if you can't do the modification you can use this. Let me know!

                              G 1 Reply Last reply
                              0
                              • andreacioniA andreacioni

                                @gonzalonal I've implemented the check on startup. On serial gateway with the last version I'm not having any issue, so I would like to know: what hardware are you using? I think that probably is only a timing issue because, for exaple, Arduino UNO reset itself on opening connection and the message for request I_VERSION is sent immediately after connection is opened. I'll suggest you to try adding something like this:

                                Thread.sleep(3000)
                                

                                After line 49 on MySensorsSerialConnection.java. Should become:

                                serialConnection = new NRSerialPort(serialPort, baudRate);
                                        if (serialConnection.connect()) {
                                            logger.debug("Successfully connected to serial port.");
                                            Thread.sleep(3000); 
                                            mysConReader = new MySensorsSerialReader(serialConnection.getInputStream(), this);
                                            mysConWriter = new MySensorsSerialWriter(serialConnection.getOutputStream(), this, sendDelay);
                                
                                            connected = startReaderWriterThread(mysConReader, mysConWriter);
                                        } else {
                                            logger.error("Can't connect to serial port. Wrong port?");
                                        }
                                

                                I can't do this test because I do not have an appropriate hardware, can you try the suggested code modification?

                                Thanks!

                                UPDATE: I've upload a temp build here: https://drive.google.com/file/d/0B11IarucpGdUdFJ2ZjVtZENsb2c/view?usp=sharing if you can't do the modification you can use this. Let me know!

                                G Offline
                                G Offline
                                gonzalonal
                                wrote on last edited by
                                #135

                                Hi @andreacioni. Thanks for your answer.
                                I have tested your custom build and it's working flawlessly.

                                09:10:36.913 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;14;Gateway startup complete.
                                09:10:37.161 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Sending to MySensors: 0;0;3;0;2;
                                
                                09:10:37.172 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;2;1.5.3
                                09:10:37.177 [DEBUG] [s.internal.MySensorsBridgeConnection] - Good,Gateway is up and running! (Ver:1.5.3)
                                

                                Let me tell you about my hardware configuration. I am running OH2 Beta2 in a Raspberry Pi 2 Model B with an Arduino Nano V3 working as Serial Gateway directly connected to one of Rpi USB ports.

                                Please, let me know if you need me to some tests or maybe is just my config.
                                Thanks, regards.

                                andreacioniA 1 Reply Last reply
                                0
                                • G gonzalonal

                                  Hi @andreacioni. Thanks for your answer.
                                  I have tested your custom build and it's working flawlessly.

                                  09:10:36.913 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;14;Gateway startup complete.
                                  09:10:37.161 [DEBUG] [g.mysensors.protocol.MySensorsWriter] - Sending to MySensors: 0;0;3;0;2;
                                  
                                  09:10:37.172 [DEBUG] [g.mysensors.protocol.MySensorsReader] - 0;0;3;0;2;1.5.3
                                  09:10:37.177 [DEBUG] [s.internal.MySensorsBridgeConnection] - Good,Gateway is up and running! (Ver:1.5.3)
                                  

                                  Let me tell you about my hardware configuration. I am running OH2 Beta2 in a Raspberry Pi 2 Model B with an Arduino Nano V3 working as Serial Gateway directly connected to one of Rpi USB ports.

                                  Please, let me know if you need me to some tests or maybe is just my config.
                                  Thanks, regards.

                                  andreacioniA Offline
                                  andreacioniA Offline
                                  andreacioni
                                  wrote on last edited by
                                  #136

                                  @gonzalonal I've done all of my test on a custom ATMEGA328p shield for BeagleBone Black, running OH2 (beta) so the environment is the same but I've not the reset circuit that gives the issue above. So now I'll push this little fix on the github repo, I think there's nothing to to in this sense. Thank for your time :) !

                                  If you find some other strange behaviour also remember that github repo has it's own issue tracker available here: https://github.com/tobof/openhab2-addons/issues, it works very well and is the best place to keep track of every software-releated bug :+1:

                                  Greetings!

                                  1 Reply Last reply
                                  1
                                  • T Offline
                                    T Offline
                                    TimO
                                    Hero Member
                                    wrote on last edited by TimO
                                    #137

                                    There is a new build of the jar available!

                                    Changes:

                                    • Added delay before checking the SerialGW (@andreacioni )
                                    • Requests are answered by the binding (The binding returns "0" if no value was set before)

                                    https://github.com/tobof/openhab2-addons/issues/8

                                    G 1 Reply Last reply
                                    0
                                    • K Offline
                                      K Offline
                                      kolaf
                                      Hero Member
                                      wrote on last edited by
                                      #138

                                      Are any of you having trouble with this binding together with other bindings that use serial ports? It looks as if the different bindings try to use the same serial port lock, so I get a conflict where things fail til initialize. Think it had something to do with the serial port library...

                                      T 1 Reply Last reply
                                      0
                                      • K kolaf

                                        Are any of you having trouble with this binding together with other bindings that use serial ports? It looks as if the different bindings try to use the same serial port lock, so I get a conflict where things fail til initialize. Think it had something to do with the serial port library...

                                        T Offline
                                        T Offline
                                        TimO
                                        Hero Member
                                        wrote on last edited by
                                        #139

                                        @kolaf Is it zwave again? Last time I tried to fix the conflict I needed to change the zwave binding.

                                        1 Reply Last reply
                                        0
                                        • K Offline
                                          K Offline
                                          kolaf
                                          Hero Member
                                          wrote on last edited by
                                          #140

                                          It is both zwave and rfxcom. I played about it in the oh2 community some time ago, let me see if I can find a link.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          2

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular