From Hentschel
Jump to: navigation, search

Things, Items etc ..

Openhab hacks

  • log files are at ohab: log files
  • karaf console login: By default disabled from anywhere but localhost. Thus ssh into ohab, then ssh from there to
    ssh -p 8101 openhab@localhost
    default pwd is habopen.
  • timeout exception prevents any further updates. This is evidently a eclipse smarthome framework bug
    2017-11-21 16:59:30.517 [WARN ] [] - EventAdmin: Blacklisting ServiceReference [{org.osgi.service.event.EventHandler,}={event.topics=smarthome,,,, service.bundleid=109, service.scope=bundle} | Bundle(org.eclipse.smarthome.core_0.9.0.201711202142 [109])] due to timeout!
  • on Mac OSX: at some point, the Eclipse Devel setup quit launching the OpenHAB launch - it just hang, when accessing the web gui at port 8080 the browser was just spinning and not moving forward. Reason is that Mac OSX cannot load a graphics library and just blocks in the ClassLoader. Details here:
    • to fix, add
      -XstartOnFirstThread -Djava.awt.headless=true
      to the VM arguments of the launch
  • to show "configuration->items" in PaperUI, you need to switch from "simple" to "advanced" mode. Go to Configuration->System->Item Linking and deactivate the "Simple Mode". You will then have a new entry Configuration->Items which will show you all your items (also the ones from the files, but note that these are read-only).

Homekit setup

  • there is a issue with the homekit addon overwriting the generated mac address on exit (I think). See
    • for now, after successful pairing, set /var/lib/openhab2/jsondb/homekit.json read only after successful pairing. May have to undo to re-create a new pairing
  • after a reset of the openhab server, it may take quite some time for homekit to attempt a reconnect to the server. You can force a reconnect by putting the iPhone etc temporarily into and out of airplane mode. This forces homekit to reconnect

Alexa setup

  • Install the openhab cloud connector in add-ons -> misc. This will create a UUID and secret that we need for hitching up to the openhab cloud. In the background, it already attempted to log on with the created credentials, but fails (since there is no account on myopenhab yet), and will not attempt to go any further. As we'll see, this creates a bit of a problem later.
  • get the UUID and secret from
    and create/sign on at
  • myopenhab needs to verify email address, do so...
  • Tricky: myopenhab will still say that your openhab instance is not connected. This is b/c a earlier attempt by the openhab server failed, and now it has given up. Go back to paper ui, configuration -> services -> openHAB cloud and hit configure. Just hitting "Save" will retrigger the log-on process, which should now be ok.The log files will tell you.
  • Once we have the myopenhab cloud setup working, go to, and search for the openhab skill. Install that skill to your amazon alexa skill set. This will ask you to permit the myopenhab cloud to get credentials and permissions from the alexa cloud. Use the defaults, eventually there is a web page that says "close this window" (you'll need pop-ups enabled in your browser, otherwise you'll miss that window).
  • Once the connection between Alexa and Myopenhab is made via the openhab skill. ask alexa to "discover devices". It should announce all devices that have HomeKit tags (both the homekit plugin and the alexa skill use the same tagging system)


  • needed to use node-red as flow editor....
  • topics and stuff

create Fireplace binding

  • follow this -> , look at Creating a Skeleton
  • once the skeleton is in place, we need mqtt
    • add the actual library reference ('') to META-INF/MANIFEST.MF
    • add reference to OSGI Declarative Service (DS)
      • in OSGI-INF/org.openhab.binding.marlinfireplace.internal.MarlinFireplaceHandlerFactory.xml add
          <<reference bind="setMqttService" cardinality="1..1" interface="" name="MqttService" policy="static" unbind="unsetMqttService"/>> 
      • implement the methods in the named class (this case org.openhab.binding.marlinfireplace.internal.MarlinFireplaceHandlerFactory)
        public void setMqttService(MqttService mqttService) {}; public void unsetMqttService(MqttService mqttService)