Skip to content
  • MySensors
  • 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

openHAB 2.0 binding

Scheduled Pinned Locked Moved OpenHAB
534 Posts 88 Posters 479.6k 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.
  • 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
          • K Offline
            K Offline
            kolaf
            Hero Member
            wrote on last edited by
            #141

            It is my post: https://community.openhab.org/t/rfxcom-2-0-binding/4427/28?u=frankose

            1 Reply Last reply
            0
            • T TimO

              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 Offline
              G Offline
              gonzalonal
              wrote on last edited by gonzalonal
              #142

              Hello @TimO .

              Just tested the last build of the binding. Works great.
              I see you manage to answer the nodes requests without having to trigger a rule to respond.

              I though that wasn't possible due to the limitation of the API. Did they manage to solve this from the OH side?

              Does the binding itself keeps track of the items values, or does it querys OH (or its persistence service) for getting the right value?

              Thanks!
              Gonzalo

              T 1 Reply Last reply
              0
              • G gonzalonal

                Hello @TimO .

                Just tested the last build of the binding. Works great.
                I see you manage to answer the nodes requests without having to trigger a rule to respond.

                I though that wasn't possible due to the limitation of the API. Did they manage to solve this from the OH side?

                Does the binding itself keeps track of the items values, or does it querys OH (or its persistence service) for getting the right value?

                Thanks!
                Gonzalo

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

                Hi @gonzalonal !

                I'm glad it works, thanks for testing!
                Sadly the limitation of the API is still there, but for the implementation of the requestAck feature I needed to implement a memory and now reused this memory to answer requests.

                There is a really big BUT coming with this implementation: we currently can't use persistence out of the box. For this a rule is needed. After startup of OH we need to use "sendCommand(ITEMNAME, VALUE)", where VALUE Is the value stored in persistance. With that the memory of the binding is filled initially.
                Hopefully I will find an easier way in the future .

                G 1 Reply Last reply
                0
                • T TimO

                  Hi @gonzalonal !

                  I'm glad it works, thanks for testing!
                  Sadly the limitation of the API is still there, but for the implementation of the requestAck feature I needed to implement a memory and now reused this memory to answer requests.

                  There is a really big BUT coming with this implementation: we currently can't use persistence out of the box. For this a rule is needed. After startup of OH we need to use "sendCommand(ITEMNAME, VALUE)", where VALUE Is the value stored in persistance. With that the memory of the binding is filled initially.
                  Hopefully I will find an easier way in the future .

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

                  I get what you mean @TimO .

                  Unfortunatelly, using the rule method you suggest would create a lot of traffic (depending on how many sensors you have) at boot up time. Maybe there are some sensors that wouldn't behave the intended way if receiving the "last value" repeteadly.

                  An example. Lets supose I have an automatic gate, that everytime it receives a command, wether its a "1" or "0" it toggles its moving direction. Like the most common automatic gates remotes.

                  Gate is closed.

                  Press button > Gate opens
                  Press button > (if gate moving) Gate stops
                  Press button > (if gate open) Gate closes

                  Now, suppose last command send to the gate made it close. Suddenly, OH restarts itself because of power failure or whatever. It runs the rule to load the memory of the binding, while at the same time it sends to the sensors the last status taken from the persistance service. This would make the gate to open without your notice.

                  This may create dangerous escenarios.
                  I hope you can understand what I mean.

                  Maybe it would be a better idea to handle requests with rules in the way I suggested in the github issue, that is the same way as the OH-1 mysensors serial binding works.

                  Let me know if I can help in any way.
                  Regards.

                  Gonzalo.

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

                    @gonzalonal Good point! :worried:

                    If a request (or a message in general) is received there is no "commandReceived" in OH, so you can't trigger a rule based on a message received. So doing it with a rule is not possible.

                    A workaround would be to use "postUpdate()" to update the value after restart. This isn't implemented yet, but is no big deal. This would be a workaround for the workaround, because we still need the rule. :confused:

                    In the OH1 binding the request is answered with the state of the item, as I would like to to do too.
                    Line 277: https://github.com/bloft/openhab/blob/master/bundles/binding/org.openhab.binding.mysensors/src/main/java/org/openhab/binding/mysensors/internal/MySensorsBinding.java

                    G 2 Replies Last reply
                    0
                    • T TimO

                      @gonzalonal Good point! :worried:

                      If a request (or a message in general) is received there is no "commandReceived" in OH, so you can't trigger a rule based on a message received. So doing it with a rule is not possible.

                      A workaround would be to use "postUpdate()" to update the value after restart. This isn't implemented yet, but is no big deal. This would be a workaround for the workaround, because we still need the rule. :confused:

                      In the OH1 binding the request is answered with the state of the item, as I would like to to do too.
                      Line 277: https://github.com/bloft/openhab/blob/master/bundles/binding/org.openhab.binding.mysensors/src/main/java/org/openhab/binding/mysensors/internal/MySensorsBinding.java

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

                      Hi @TimO . Good we got in the same page.

                      I think this topic needs some more thinking.

                      I was reading OH wiki and found this about receivedCommand.

                      
                       Implicit Variables inside the Execution Block
                      
                      Besides the implicitly available variables for items and commands/states (see the script documentation), rules can have additional pre-defined variables, depending on their triggers:
                      
                      
                      * Every rule that has at least one command event trigger, will have the variable 
                      receivedCommand available, which can be used inside the execution block.
                      
                      * Every rule that has at least one status change event trigger, will have the variable
                      previousState available, which can be used inside the execution block.
                      

                      https://github.com/openhab/openhab/wiki/Rules

                      Maybe this is not available anymore, or at least on OH2.

                      For now, I think it would be a better approach to use postUpdate at systemStart to populate the binding memory. With this, we'll avoid sending commands to the nodes.

                      Regards!

                      1 Reply Last reply
                      0
                      • T TimO

                        @gonzalonal Good point! :worried:

                        If a request (or a message in general) is received there is no "commandReceived" in OH, so you can't trigger a rule based on a message received. So doing it with a rule is not possible.

                        A workaround would be to use "postUpdate()" to update the value after restart. This isn't implemented yet, but is no big deal. This would be a workaround for the workaround, because we still need the rule. :confused:

                        In the OH1 binding the request is answered with the state of the item, as I would like to to do too.
                        Line 277: https://github.com/bloft/openhab/blob/master/bundles/binding/org.openhab.binding.mysensors/src/main/java/org/openhab/binding/mysensors/internal/MySensorsBinding.java

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

                        Hi again @TimO .

                        Just an idea.

                        What do you think about solving this problematic in this way:

                        We create a group whose members are all those items that later will populate the binding's memory. I have a group named mysqlpersisted where I put all the items whose data will be stored in my SQL DB. So I could use that group. For this example, let's call it "MemoryGroup"

                        Then, we can create the following rule:

                        rule "Populate MySensors binding memory"
                        
                        when 
                        System started
                        then
                        
                        (maybe add a delay to allow persistance services to load)
                        
                        MemoryGroup?.members.forEach[i |
                                postUpdate(i.name, i.previousState(true))
                        ]
                        

                        Using this method, memory would get populated everytime OH boots up, with data belonging to the persistance service that we use. And we use postUpdate, so no command is sent to the nodes.

                        With this I think we solve both problems as data in the binding will be concurrent with the persistance service data.

                        Let me know what you think about this.

                        Regards!

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

                          Hi @gonzalonal !

                          I was thinking in the same direction and I have played a litte bit with different rules. I had no success in finding a rule that worked. Additionally I don't like the workaround. ;-)

                          A good solution would be, to trigger a rule, if a request is received, but there too I had no success till now.

                          I'm still struggling with it ...

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            tomkxy
                            wrote on last edited by
                            #149

                            @TimO Do you think it would be hard to add MQTT support to the binding? I had a brief look to your code and it looks like the protocols are nicely isolated.

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

                              I'm currently trying to migrate my production environment from OH1 to OH2. I'm now using two serial gateways.

                              @kolaf : The problem you described occured to me too. In my case I use two serial gateways. I've added a little method that ensures that a connection to more than two serial ports via nrjavaserial is possible. It works within the OH2 binding. Could you test if it works with the RFXCOM binding you are using? A new jar is available on github. OH2 is currently using an old version of nrserialjava that has a bug. I don't know how to switch the version yet.

                              @tomkxy : I will integrate MQTT in my OH2 Installation soon and will come back to your request after that.

                              K 1 Reply Last reply
                              0
                              • undeeU Offline
                                undeeU Offline
                                undee
                                wrote on last edited by
                                #151

                                The binding doesn't seem to handle the "requestTime" function yet. Time-aware sensors would be able to handle temporary OpenHAB outages by executing some scheduled actions autonomously, which I could use in the window cover controllers I'm developing.

                                1 Reply Last reply
                                0
                                • T TimO

                                  I'm currently trying to migrate my production environment from OH1 to OH2. I'm now using two serial gateways.

                                  @kolaf : The problem you described occured to me too. In my case I use two serial gateways. I've added a little method that ensures that a connection to more than two serial ports via nrjavaserial is possible. It works within the OH2 binding. Could you test if it works with the RFXCOM binding you are using? A new jar is available on github. OH2 is currently using an old version of nrserialjava that has a bug. I don't know how to switch the version yet.

                                  @tomkxy : I will integrate MQTT in my OH2 Installation soon and will come back to your request after that.

                                  K Offline
                                  K Offline
                                  kolaf
                                  Hero Member
                                  wrote on last edited by
                                  #152

                                  @TimO Thanks for the update. Unfortunately it did not seem to change anything for me, rfxcom still fails trying to use the wrong lock file. If it is helpful I can send you the log. Appreciate your input and effort.

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

                                    The weird thing is that it seems to work with an older version of OH2 (and an old version of your binding), but not with the more recent beta releases.

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

                                      @kolaf : My guess is, the implementation in the could be the problem. Please do a litte test: remove the mysensors.jar file from the addons folder. Start OH2. RFXCOM should start fine now. Copy the mysensors.jar in the addons folder. OH2 will try to load the binding. What is the result?

                                      I suppose this way both binding work fine together?!

                                      K 1 Reply Last reply
                                      0
                                      • T TimO

                                        @kolaf : My guess is, the implementation in the could be the problem. Please do a litte test: remove the mysensors.jar file from the addons folder. Start OH2. RFXCOM should start fine now. Copy the mysensors.jar in the addons folder. OH2 will try to load the binding. What is the result?

                                        I suppose this way both binding work fine together?!

                                        K Offline
                                        K Offline
                                        kolaf
                                        Hero Member
                                        wrote on last edited by
                                        #155

                                        @TimO I tried this before, and removing the MySensors binding made the rfxcom binding work. However, this was not the case this time. I will try a bit later to also remove the zwave binding.

                                        20:56:34.098 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:43b9314d' changed from UNINITIALIZED to INITIALIZING
                                        20:56:34.115 [INFO ] [ing.zwave.handler.ZWaveSerialHandler] - Connecting to serial port '/dev/ttyACM0'
                                        20:56:34.115 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:43b9314d' changed from INITIALIZING to ONLINE
                                        RXTX Warning:  Removing stale lock file. /var/lock/LCK..ttyACM0
                                        20:56:34.361 [INFO ] [ing.zwave.handler.ZWaveSerialHandler] - Serial port is     initialized
                                        20:56:34.384 [INFO ] [ve.internal.protocol.ZWaveController] - Starting ZWave     controller
                                        20:56:34.385 [INFO ] [ve.internal.protocol.ZWaveController] - ZWave timeout is set to     5000ms. Soft reset is false.
                                        20:56:34.419 [INFO ] [me.event.ThingStatusInfoChangedEvent] -     'zwave:serial_zstick:43b9314d' changed from ONLINE to     INITIALIZING
                                        20:56:34.444 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result     with UID     'sonos:zoneplayer:RINCON_5CAAFD2BB4D801400' has been updated.
                                        20:56:34.578 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result     with UID     'sonos:zoneplayer:RINCON_5CAAFD21C16201400' has been updated.
                                        20:56:34.756 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result     with UID     'sonos:zoneplayer:RINCON_5CAAFD2BB4FE01400' has been updated.
                                        20:56:34.852 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
                                        20:56:34.866 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result with UID 'hue:bridge:0017881c7280' has been     updated.
                                        20:56:34.869 [INFO ] [assic.internal.servlet.WebAppServlet] - Started Classic UI at /classicui/app
                                        20:56:34.998 [INFO ] [.openhab.core.internal.CoreActivator] - openHAB runtime has been started (v2.0.0, build 201602200203).
                                        20:56:35.015 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.sitemap'
                                        20:56:35.444 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'mysensors.things'
                                        20:56:35.491 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'mysensors:bridge-ser:gateway' has been added.
                                        20:56:35.500 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-ser:gateway' changed from UNINITIALIZED to     INITIALIZING
                                        RXTX fhs_lock() Error: opening lock file: /var/lock/LCK..ttyACM0: File exists. It is mine
                                        
                                        �a�� testRead() Lock file failed
                                        RXTX Warning:  Removing stale lock file. /var/lock/LCK..mysensorsUSB
                                        20:56:37.420 [WARN ] [ssage.ApplicationCommandMessageClass] - NODE 37: Not initialized yet, ignoring message.
                                        20:56:37.426 [ERROR] [WaveSerialHandler$ZWaveReceiveThread] - Protocol error (CAN), resending
                                        20:56:37.427 [WARN ] [ssage.ApplicationCommandMessageClass] - NODE 37: Not initialized yet, ignoring message.
                                        20:56:37.429 [WARN ] [ssage.ApplicationCommandMessageClass] - NODE 37: Not initialized yet, ignoring message.
                                        20:56:38.773 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-ser:gateway' changed from INITIALIZING to ONLINE
                                        20:56:38.774 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'rfxcom.things'
                                        20:56:38.780 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'rfxcom:bridge:rfxtrx' has been added.
                                        20:56:38.790 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'rfxcom:bridge:rfxtrx' changed from UNINITIALIZED to INITIALIZING
                                        20:56:38.792 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'rfxcom:bridge:rfxtrx' changed from INITIALIZING to OFFLINE
                                        RXTX fhs_lock() Error: opening lock file: /var/lock/LCK..mysensorsUSB: File exists. It is mine
                                        
                                        �`�� testRead() Lock file failed
                                        20:56:38.805 [ERROR] [g.rfxcom.handler.RFXComBridgeHandler] - Connection to RFXCOM transceiver failed: null
                                        
                                        K 1 Reply Last reply
                                        0
                                        • K kolaf

                                          @TimO I tried this before, and removing the MySensors binding made the rfxcom binding work. However, this was not the case this time. I will try a bit later to also remove the zwave binding.

                                          20:56:34.098 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:43b9314d' changed from UNINITIALIZED to INITIALIZING
                                          20:56:34.115 [INFO ] [ing.zwave.handler.ZWaveSerialHandler] - Connecting to serial port '/dev/ttyACM0'
                                          20:56:34.115 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:43b9314d' changed from INITIALIZING to ONLINE
                                          RXTX Warning:  Removing stale lock file. /var/lock/LCK..ttyACM0
                                          20:56:34.361 [INFO ] [ing.zwave.handler.ZWaveSerialHandler] - Serial port is     initialized
                                          20:56:34.384 [INFO ] [ve.internal.protocol.ZWaveController] - Starting ZWave     controller
                                          20:56:34.385 [INFO ] [ve.internal.protocol.ZWaveController] - ZWave timeout is set to     5000ms. Soft reset is false.
                                          20:56:34.419 [INFO ] [me.event.ThingStatusInfoChangedEvent] -     'zwave:serial_zstick:43b9314d' changed from ONLINE to     INITIALIZING
                                          20:56:34.444 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result     with UID     'sonos:zoneplayer:RINCON_5CAAFD2BB4D801400' has been updated.
                                          20:56:34.578 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result     with UID     'sonos:zoneplayer:RINCON_5CAAFD21C16201400' has been updated.
                                          20:56:34.756 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result     with UID     'sonos:zoneplayer:RINCON_5CAAFD2BB4FE01400' has been updated.
                                          20:56:34.852 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
                                          20:56:34.866 [INFO ] [smarthome.event.InboxUpdatedEvent   ] - Discovery Result with UID 'hue:bridge:0017881c7280' has been     updated.
                                          20:56:34.869 [INFO ] [assic.internal.servlet.WebAppServlet] - Started Classic UI at /classicui/app
                                          20:56:34.998 [INFO ] [.openhab.core.internal.CoreActivator] - openHAB runtime has been started (v2.0.0, build 201602200203).
                                          20:56:35.015 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.sitemap'
                                          20:56:35.444 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'mysensors.things'
                                          20:56:35.491 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'mysensors:bridge-ser:gateway' has been added.
                                          20:56:35.500 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-ser:gateway' changed from UNINITIALIZED to     INITIALIZING
                                          RXTX fhs_lock() Error: opening lock file: /var/lock/LCK..ttyACM0: File exists. It is mine
                                          
                                          �a�� testRead() Lock file failed
                                          RXTX Warning:  Removing stale lock file. /var/lock/LCK..mysensorsUSB
                                          20:56:37.420 [WARN ] [ssage.ApplicationCommandMessageClass] - NODE 37: Not initialized yet, ignoring message.
                                          20:56:37.426 [ERROR] [WaveSerialHandler$ZWaveReceiveThread] - Protocol error (CAN), resending
                                          20:56:37.427 [WARN ] [ssage.ApplicationCommandMessageClass] - NODE 37: Not initialized yet, ignoring message.
                                          20:56:37.429 [WARN ] [ssage.ApplicationCommandMessageClass] - NODE 37: Not initialized yet, ignoring message.
                                          20:56:38.773 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'mysensors:bridge-ser:gateway' changed from INITIALIZING to ONLINE
                                          20:56:38.774 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'rfxcom.things'
                                          20:56:38.780 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'rfxcom:bridge:rfxtrx' has been added.
                                          20:56:38.790 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'rfxcom:bridge:rfxtrx' changed from UNINITIALIZED to INITIALIZING
                                          20:56:38.792 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'rfxcom:bridge:rfxtrx' changed from INITIALIZING to OFFLINE
                                          RXTX fhs_lock() Error: opening lock file: /var/lock/LCK..mysensorsUSB: File exists. It is mine
                                          
                                          �`�� testRead() Lock file failed
                                          20:56:38.805 [ERROR] [g.rfxcom.handler.RFXComBridgeHandler] - Connection to RFXCOM transceiver failed: null
                                          
                                          K Offline
                                          K Offline
                                          kolaf
                                          Hero Member
                                          wrote on last edited by
                                          #156

                                          It appears that I get these errors even if I remove all the offending bindings. I think I need to start with a completely clean installation and see how it goes. I will let you know.

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


                                          16

                                          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
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular