Can't connect IRIS Garage Door Controller to openHABianpi

Then you still have two zwave bindings installed. When you drop the jar into the addons folder, it does not show in the PaperUI. Go ahead and uninstall it through the PaperUI.

This is the correct location for it…

You should not need to manually install this. OH should install it as a dependency. This used to be an issue, but looks to have been corrected.

No… not if both are installed. That’s where the singleton=true errors come from, because OH is trying to startup the other binding. Remove the old one through PaperUI (you won’t see the new one in there). Don’t bother trying to reinclude it until you only have the one binding.

O good! It’s such a pain to reinclude these once they’re mounted.

You are very welcome… I’m happy to help! Hopefully, you’ll get your garage opener working and can help the next person who’s having trouble with them!

Thanks Scott,
Here we go again.

  1. I went to HABmin and uninstall (or something, I forget now) the garage door nodes.
  2. I went to PaperUI > Addons > Bindings and uninstalled the ZWave binding and it worked this time.
    The problem I see is that the binding in PaperUI > Addons > Bindings still lists as 2.20.
    I did a system restart.
    Checked the PaperUI Binding again. Still lists as 2.2.0.

I ran “feature:uninstall org.openhab.binding.zwave” in the karaf console.
got this error massage:
Error executing command: Feature named ‘org.openhab.binding.zwave/0.0.0’ is not installed

Rebooted again

PaperUI binding still lists as 2.2.0

So what do I do know?

Thanks Marc

Oh and don’t forget the screenshots:

You’re all good. The older binding is uninstalled, so the newer binding can now start. You wil not see the newer binding in PaperUI.

Exclude the garage door opener, then run inclusion again and press the button on the opener.

OK, OK, I think I now see where I was confused (maybe). What I believe you are saying is that I leave the ZWave binding (version 2.2.0) in PaperUI > Addons > Bindings uninstalled because just by placing the binding.snapshot.jar in the /usr/share/openhab2/addons directory openHAB has seen it, installed it and it is up and running. So now I can go on my marry way and Exclude then include the garage device.

What had me is that I thought that I HAD to start the new binding file somehow after putting it in the directory. That there was no way it would start on it’s own. I was sure that the binding label in the PaperUI was just missed-labeled and that by starting this binding I was actually starting the new 2.3.0 binding.

Well, I went to Habmin >Configuration> Things> Z-Wave Serial Controler> Tools (over on the top right)> Advanced Options> Exclude

Then I think I re included it or something. Reset the Garage door thing, pressed the magnifying glass, pressed the button on the garage door thing again. I got a notification of a new device and I added it.

But I still don’t see anything in PaperUI>Control

I feel thoroughly lost again.


Nope. After copying a binding jar to the addons folder, OH will install it and start it up.

Did you then press the button once on the garage door? Basically, the same procedure as inclusion. After exclusion, the garage door will do a harsh sounding beep.

That doesn’t sound good. :roll_eyes:

If the node numbers of the devices are the same, then you didn’t exclude/include properly. How does this line up with what you have been doing?

Inclusion cycle for secure devices (starting from brand-new OOTB state):

  1. Start zwave inclusion through OH, with device as close as possible to the controller. The SECURITY Command Class requires this. I’ve had success <10ft.

  2. Once inclusion has started, the default setting is for it to run for 30s. During this time, you need to press the button on the opener. I will usually monitor my logs, grepping on the next available nodes so that I see when the node was added and any issues during initialization. I have my zwave log separated out, so you will likely need to change to the openhab.log. Here is an example where I am expecting the next node to be 121. I usually give it a range of available nodes though, in case it takes a few tries.

     tail -F -n3000 /opt/openhab2/userdata/logs/zwave/zwave.log | egrep "NODE 12[1-9]:"
  3. When the device has been successfully included, it will beep three times. You should now see a new Thing in the Inbox. Add the Thing from the Inbox.

  4. In Habmin> Configuration> Things> newly added Thing> Attributes> Using Security, if this is a grey question mark, then wait. If it is a red X, then continue (it was not securely included). If it was a green check mark, you are done.

  5. In Habmin> Configuration> Things> your controller> Tools (top right)> Show Advanced Settings> Tools> Exclude Devices. Same as Inclusion, you now need to press the button on the device to let the controller know which device to exclude. The opener will beep three times and then a long harsh sounding beep.

  6. Some devices also need a reset at this point. You can reset the device by pushing the button five times.

  7. Delete the old Thing from OH. Exclusion will remove the device from the zwave network, but it won’t remove it from OH.

  8. Go to step 1.

I’m not sure what this means. Same as what? Beside the Z-Wave serial contoller there were 3 nodes od different numbers.

Anyways, I tried again.

  1. I excluded through the Z-Wave Controller. Then went to the garage door device and presses the button. I think I got a short then a long beep. Note: Up until this point I had been looking to exclude each device through their own nodes. I didn’t think you would issue an exclude command from the Z-Wave controller it’s self.
  2. I forgot to to reset the garage door device by pressing the button 5 times. Oops
  3. I deleted the 3 devices listed under HABmin>Configuration>Things. Because I was thinking that these are all copies of the same device or something since I have only one device besides the Z-Wave Serial Controller.
  4. I Pressed the magnifying glass search thing then pessed the button on the garage door thing and got tome beeps.
  5. Got 3 new discovered things and added them.
  6. Looked In Habmin> Configuration> Things> newly added Thing> Attributes> Using Security to see if thing look right. New nodes 006 and 004 look good but new node 003 still has security x-ed out.

So am I looking good yet? Or should I do it again and this time remember to press the garage door device button 5 times to rest the device?

Also I still don’t see anything in the PaperUI>Control section.

I’m going off to work now. I’ll be back kind of late.

Thanks Scott


Screen Shots attached:

When assigning node IDs, the zstick (all controllers?) will find the next available node id that is not in use on the network. At 232, it starts back at 1. After a discovery and adding the devices from the Inbox, you should see a node with a new node ID. If the node IDs of your devices didn’t change, then no new node was added. When a device is successfully excluded, it will show in red (Habmin). Delete the Thing so that it does not display any more. If you reset the device without excluding it first, it will still show up in OH because when the binding queries the controller for devices, it will still be reported. Habmin has the option to remove a device from the controller, but I haven’t used it. It looks like Node 6 is your garage door opener, and it was securely included, so you should be good now. Cleaning up the old devices may be a pain, so let’s leave that for now.

That is displaying Items. You will need to create Items that link to the channels available from the garage opener Thing. You can create them through PaperUI, Habmin, or an items file.

Here is an example of the items and rule that I have setup…

Thanks Scott, I read the “Items” page in the documentation page you linked to. Is there a walk through that I can refer to to get this done? Should I go with PaperUI, HABmin or nano text bases stuff?

Also if the extra nodes showing in my Things section from not properly excluding devices is going to be a problem maybe it would be easier to format the OS again now that I have a better understanding on including devices?


The documentation looks to be complete on this, but creating items is second nature to me at this point! What information do you need? I personally use item files, since I was familiar with them from OH1. The thread I linked to has examples of my items, so you can just copy them into a text file that uses Unix EOLs and save it to the right location. OH will immediately pick up the new items, but I prefer to have OH shutdown when saving items files to avoid issues.

No, there’s no need to format the OS or to reinstall OH, because that would still not remove the ghost nodes. The easiest way would be to exclude the devices and then reset the zstick (turn off OH, unplug the zstick, hold the button for 20s). Another option is to use Zensys Tools, which Aeon Labs looks to have stripped down as their OTA firmware installer app.

It is also distributed with the InControl software by Axial, but they have a link to download it too.

Using Zensys Tools, you’d send a NOP to the dead node (you have to type the nodeID into the text box). This should fail, but sometimes it takes more than once. Select the dead node. Click the IsFailed button to check it. This will mark the node as failed. Then you can click the Remove Failed Node button. It sounds daunting, but is a good thing to learn for maintaining the network in the future. The worst thing that could happen to you at this point is that you’d have to do a reset. Better to learn how to do it now than when you have more devices on the network. There may be some more detailed write-ups on the forum.

Thanks Scott,
About that LAMBDA File:
OpenHab2 and Linear NGD00Z-4 Garage Door Controller

  1. where does the “MAP” File go?:

I put the “ITEMS” in /etc/openhab2/items/home.items

and the LAMBDA in /etc/openhab2/rules/home.rules

I made a sitemaps file:

sitemap home label="MK-SmartHouse"
    Frame label="Demo"
        Switch item=DEMOSW
    Frame label=“Garage Door”
        Switch item=Garage_Door
        Text item=Garage_Door_Position

But where does the “MAP” File go?

  1. Also on the “ITEMS” File:
    You have:

Do I need to change the node number to match my device node number from HABmin? Which is 004.
And does the zwave:device:55555 stay the same?


I use Habmin for almost everything, but you can also use PaperUI for this. Go to Habmin> Extensions> Transformations and install the Map transformation service. Then put the file in /etc/openhab2/transform.

This next part is the only time I prefer PaperUI, but it can be done in Habmin too. Go to PaparUI> Configuration> Things> your garage door opener. Under Channels, you will see the channel UIDs that you need to use in the items file to link the item to the channel. There’s a control to Copy to Clipboard. Copy it and paste this into your item’s binding configuration in the items file.

Sitemaps are a pain… and ugly. Check out Habpanel.

Thanks again Scott,
I haven’t had a chance do do your recent suggestions yet but I have been trying to figure out how to shut down openHAB when it’s running inside Linux. I installed it from the openhabianpi distro.

I’m not sure if it’s a service or a process and I’m not sure how to tell or what to do when I find out.

I read your recommendation to turn off openHAB when doing major changes and that sounds like sound advice if I knew how.


I’ve never used openHabian, but if you ssh into a Karaf console, system:shutdown has worked for me in docker.

systemctl stop openhab2

1 Like

Does anyone know what could be causing this?
Sorry to be so brief. I just have been very busy and have been squeezing in what little time I have to troubleshoot this.
I will get some screen shots, file contents and locations in the next couple of days. I’ve just been reading a lot in these threads:

Thanks again

OK, whenever I try to go into the the Classic UI interface I get this error in the openhab-cli console:

openhab> log:tail
04:48:38.788 [WARN ] [ig.dispatch.internal.ConfigDispatcher] - Could not parse line 'Define your MQTT broker connections here for use in the MQTT Binding or MQTT'
04:48:40.599 [INFO ] [i.dashboard.internal.DashboardService] - Started dashboard at
04:48:40.605 [INFO ] [i.dashboard.internal.DashboardService] - Started dashboard at
04:48:43.861 [INFO ] [.io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = 4a44c372-3ca2-4348-a2b6-42fd2d2deccf, base URL = http://localhost:8080)
04:48:48.426 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'garagedoor.items'
04:48:55.021 [INFO ] [del.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'garagedoor.rules', using it anyway:
There is no context to infer the closure's argument types from. Consider typing the arguments or put the closures into a typed context.
04:48:55.031 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'garagedoor.rules'
04:48:55.358 [INFO ] [rthome.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
04:48:55.962 [WARN ] [del.core.internal.ModelRepositoryImpl] - Configuration model 'home.sitemap' has errors, therefore ignoring it: [7,17]: no viable alternative at input '“'

04:48:56.301 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'home.things'
04:48:56.306 [WARN ] [del.core.internal.ModelRepositoryImpl] - Configuration model 'home.things' is either empty or cannot be parsed correctly!
04:48:56.399 [INFO ] [thome.event.ItemChannelLinkAddedEvent] - Link 'GarageAttached_Door_Position-zwave:device:3c4a2c62:node4:barrier_state' has been added.
04:48:59.606 [INFO ] [] - MQTT Service initialization completed.
04:48:59.609 [INFO ] [rt.mqtt.internal.MqttBrokerConnection] - Starting MQTT broker connection 'broker'
04:49:00.618 [INFO ] [.basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
04:49:01.150 [INFO ] [lassic.internal.servlet.WebAppServlet] - Started Classic UI at /classicui/app
04:49:01.276 [INFO ] [marthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
04:49:01.430 [INFO ] [.ui.habmin.internal.servlet.HABminApp] - Started HABmin servlet at /habmin
04:49:01.628 [INFO ] [bpanel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
04:49:05.411 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node4' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
04:49:05.418 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node3' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
04:49:05.599 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:3c4a2c62' changed from UNINITIALIZED to INITIALIZING
04:49:05.641 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:3c4a2c62' changed from INITIALIZING to OFFLINE (BRIDGE_OFFLINE): Controller is offline
04:49:05.646 [INFO ] [ding.zwave.handler.ZWaveSerialHandler] - Connecting to serial port '/dev/ttyACM0'
04:49:05.810 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node3' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
04:49:05.815 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node4' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
04:49:05.831 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node3' changed from INITIALIZING to OFFLINE (BRIDGE_OFFLINE): Controller is offline
04:49:05.849 [INFO ] [ding.zwave.handler.ZWaveSerialHandler] - Serial port is initialized
04:49:05.852 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node4' changed from INITIALIZING to OFFLINE (BRIDGE_OFFLINE): Controller is offline
04:49:05.889 [INFO ] [ave.internal.protocol.ZWaveController] - Starting ZWave controller
04:49:05.891 [INFO ] [ave.internal.protocol.ZWaveController] - ZWave timeout is set to 5000ms. Soft reset is false.
04:49:09.222 [INFO ] [sage.SerialApiGetInitDataMessageClass] - NODE 1: Node found
04:49:09.226 [INFO ] [sage.SerialApiGetInitDataMessageClass] - NODE 3: Node found
04:49:09.228 [INFO ] [sage.SerialApiGetInitDataMessageClass] - NODE 4: Node found
04:49:09.231 [INFO ] [sage.SerialApiGetInitDataMessageClass] - ZWave Controller using Controller API
04:49:09.233 [INFO ] [sage.SerialApiGetInitDataMessageClass] - ZWave Controller is Primary Controller
04:49:09.236 [INFO ] [sage.SerialApiGetInitDataMessageClass] - ------------Number of Nodes Found Registered to ZWave Controller------------
04:49:09.238 [INFO ] [sage.SerialApiGetInitDataMessageClass] - # Nodes = 3
04:49:09.241 [INFO ] [sage.SerialApiGetInitDataMessageClass] - ----------------------------------------------------------------------------
04:49:09.650 [WARN ] [ave.internal.protocol.ZWaveController] - NODE 3: Restore from config: Error. Data invalid, ignoring config.
04:49:12.903 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:serial_zstick:3c4a2c62' changed from OFFLINE (BRIDGE_OFFLINE): Controller is offline to ONLINE
04:49:12.912 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node4' changed from OFFLINE (BRIDGE_OFFLINE): Controller is offline to ONLINE
04:49:12.918 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node3' changed from OFFLINE (BRIDGE_OFFLINE): Controller is offline to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
04:49:12.953 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'zwave:serial_zstick:3c4a2c62' has been updated.
04:49:12.958 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node4' changed from ONLINE to ONLINE: Node initialising: FAILED_CHECK
04:49:12.968 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:3c4a2c62:node4' changed from ONLINE: Node initialising: FAILED_CHECK to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
04:53:43.588 [WARN ] [.eclipse.jetty.servlet.ServletHandler] -
javax.servlet.ServletException: Sitemap 'home' could not be found
        at org.eclipse.smarthome.ui.classic.internal.servlet.WebAppServlet.service( [219:org.eclipse.smarthome.ui.classic:0.10.0.b1]
        at org.eclipse.jetty.servlet.ServletHolder.handle( [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
        at org.eclipse.jetty.servlet.ServletHandler.doHandle( [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
        at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle( [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at []
        at org.eclipse.jetty.server.session.SessionHandler.doHandle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle( [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
        at org.eclipse.jetty.servlet.ServletHandler.doScope( [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
        at org.eclipse.jetty.server.session.SessionHandler.doScope( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.eclipse.jetty.server.handler.ContextHandler.doScope( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle( [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.eclipse.jetty.server.Server.handle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.eclipse.jetty.server.HttpChannel.handle( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at org.eclipse.jetty.server.HttpConnection.onFillable( [87:org.eclipse.jetty.server:9.3.22.v20171030]
        at$ReadCallback.succeeded( []
        at []
        at$ []
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume( [90:org.eclipse.jetty.util:9.3.22.v20171030]
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume( [90:org.eclipse.jetty.util:9.3.22.v20171030]
        at [90:org.eclipse.jetty.util:9.3.22.v20171030]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob( [90:org.eclipse.jetty.util:9.3.22.v20171030]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$ [90:org.eclipse.jetty.util:9.3.22.v20171030]
        at [?:?]
Caused by: org.eclipse.smarthome.ui.classic.render.RenderException: Sitemap 'home' could not be found
        at org.eclipse.smarthome.ui.classic.internal.servlet.WebAppServlet.service( ~[219:org.eclipse.smarthome.ui.classic:0.10.0.b1]
        ... 26 more

Here are the contents of my /etc/openhab2/sitemaps/home.sitemap File:

sitemap home label="MK-SmartHouse"
    Frame label="Demo"
        Switch item=DEMOSW
    Frame label=“Garage Door”
        Switch item=GarageAttached_Door
        Text item=GarageAttached_Door_Position

Screenshot of ls -l in /sitemaps:

screenshot of ls -l /items:

Here is the contents of /etc/openhab2/items/garagedoor.items:

// This is the Items File

// Demo items
Switch DEMOSW "Demo Switch"

// Garage Door from 5iver (Scott Rushworth)03-29-2018 :

Switch      GarageAttached_Door             "Garage Door (Attached) [MAP(]"           <garagedoor>    (gGarageAttached,gLock$
Number      GarageAttached_Door_Position        "Garage Door (Attached) [MAP(]"           <garagedoor>        (gGarageAttach$

screenshot of ls -l /rules:

File contents of /etc/openhab2/rules/garagedoor.rules:

[05:21:29] openhabian@openHABianPi:/etc/openhab2/rules$ sudo nano garagedoor.rules
  GNU nano 2.2.6                                 File: garagedoor.rules

                logDebug("Rules", "Lock: Garage door events: update switch after barrier_state change [{}]=OFF",
        case "0" : {//closed
            if (actionItem.state != ON) {
                logDebug("Rules", "Lock: Garage door events: update switch after barrier_state change [{}]=ON",
        case "ON" : {
            logDebug("Rules", "Lock: Garage door events: update barrier_state after switch state change [{}]=0",
        case "OFF" : {
            logDebug("Rules", "Lock: Garage door events: update barrier_state after switch state change [{}]=255",

rule "Lock: Update garage door item states"
    Item GarageAttached_Door received command
    Item GarageDetached_Door received command
    Item GarageAttached_Door_Position changed
    Item GarageDetached_Door_Position changed
    barrierStateParser.apply(triggeringItem as GenericItem,(if ("Position")) triggeringItem.state.toString else r$

Screenshot of /etc/openhab2/transform:

File contents of /etc/openhab2/transform/

// Garage Door Map 03-31-2018


Also I’m using nano from Windows through a putty terminal into a openHABianpi install. Do I need to install the syntax file and installation instructions on openhabnano from:
To get the proper file formatting? Or is it already installed with openHABianpi?

Thanks again

I strongly suggest using VS Code with the openHAB extension, which is the official editor. I’m not familiar with mcedit.

I think your sitemap issue might be caused by smart quotes (if you look at what you pasted in your post, the double quotes in line 7 look slightly different that in line 1 and 3). Retype the quotes on line 7. The validation warning addresses this line too. The permissions on your files also look odd, unless your running OH as root.

Thanks Scott,
That was very helpful. I can see buttons now but I still have some things to work out.

I see what you mean about using VS Code over Nano or VI. It will warn me when my scripting is wrong.

So this is only for Windows right? So once I install VS Code on my Windows machine how do I access my files on my Raspberry Pi? Do I terminal remotely through VS Code or use Samba to host the files locally on my Windows box or something else?

And I see what you mean about owner and permissions for those files. The tutorial I was following told me to “sudo nano” to create the files. I can easily change them to openhab openhabian if that makes a difference.

It will be a few days before I have time to sit down and work these things out.

Thanks again

No, there is a version that runs on Linux and another that runs on Mac. It is open source, not an MS product, though MS is the first and probably primary contributor.

If you used openHABian you will already have a samba share set up. Just mount the network drive to Windows and point VSCode to that folder. If you didn’t, you will need to install and configure samba on the OH server to share the /etc/openhab2 folder. Then you can mount that shared folder to Windows.

Alternative approaches include winscp to copy those files bac and fort, git or some other configuration control service to commit and checkout changes, and more. But the samba share is the most commonly used.

I’m sure it will. OH expectes openhab to be the owners of those files.

1 Like