Nikobus compatibility OH2

Hi Stefaan,

So, with the line

// schakelmodule…

you read the status of the channels

And with the BP (wall buttons/busdrukknoppen) you put your lights on and of?

I don’t have that much time to work all day on my configuration. Job/family/social etc take some time too!

My Openhab1 installation works stable for 6 months now. Try to get my Openhab2 installation stable now using Basic UI. Later want to go for an more fancy HABpanel userinterface and also think about try to use a Calender (Synology Caldav) to program/schedule rules. Or maybe use sunrise and sundown rules. Plans enough but time…

Hi Stefaan,

I do see some differences between your Nikobus items and mine. My code is:

Switch hobby_tl “verlichting hobbyruimte TL”(bg_hobby, Lights) {nikobus=“18D4:1”}
for switching the “schakelmodule” directly.
and

Switch BP2_A {nikobus="#N8D4526[18D4-1]"}
for feedback of button A of a “busdrukknop” of four buttons
Switch BP2_B {nikobus="#NCD4526[18D4-2]"}
for feedback of button B of the same “busdrukknop”

So I do switch in openhab directly on a “schakelmodule”. How can i switch the same port in openhab on a busdrukknop (wall-pushbutton)?

In your example above the code of your schakelmodule seems “ABCD”. Is that in real and free to choose or just an example?

I also have a “rolluikmodule”. Witch HABpanel item should i choose to control these items? Is it also possible to see on HABpanel how far a sunscreen is up or down?

Kind regards

Willem

Job/family/social etc take some time too!

Same problem here, but we still have the nights to work for personal things :slight_smile:

Indeed, ABCD is just a fake address

The rolluikmodule (and dimmer module) should behave the same, but I have none to test.

you can give commands to schakelmodule channels immediately for switching on and off the lights, but I’ve noticed when doing this through rules feedback gets out of sync after some time. The feedback behaves better when giving light on/off commands to a physical button which has been configured in Nikobus to switch on/off the lights.
In my OH config, each schakelmodule channel and each button of a drukknop module is separatly defined in my items file. though job the first time, but stable and no changes needed afterwards.

The same feedback issues did also apply with OH1.8.3 in my setup when using rules to switch Nikobus lights. Much more stable to command drukknoppen through rules and the effect is the same: light goes on/off.

I use caldav presence simulation through the google binding. i tried with caldav and Synology, but couldn’t get it to work properly. Works fine with Google calendar.
Habpanel is great, I created a cheap tablet interface and in the coming week, I’ll nail my tablet against the wall (still have to convince the wife :wink:) to control in a nice manner my lights, alarm panel, audio AV receiver and consult my weather station (all through Openhab)

Openhab is a wonderful and powerful system, but it is not easy for starters with no IT-experiences/skills and that’s a pity. In an ideal world, all should be configurable through a point and click web GUI without the need to define text files, but this is far from true today. Although a first step has been set with PaperUI and Habpanel.

Hi Stefaan,

Thx again.

Do you expect someone will develop a new Nikobus binding for OH2 soon (or sometime)?

What brands you use for your devices, and what bindings:

  • Alarm/security panel
  • AV receiver
  • weather station
    and which tablet are you gonna nail on the wall? And wich powersolution are you gonna use for your tablet?

Willem

I am afraid not. @davy indicated in the past on the old forum he won’t probably do this. He’s the creator of the initial binding. The problem is that the users of Nikobus are mainly located in Belgium (and The Netherlands maybe)

I would hope for a OH2 Nikobus binding with a Nikobus system as bridge, a schakelmodule, dimmer module, rolluikmodule and bedieningspunt as things and the Nikobus channels and bedieningspunten push buttons as channels of a thing.
This would make a lot of things easier.

I use a Caddx Alarm Panel. There is a native binding for Openhab somewhere, but I connect to it through a MIOS Vera device which has a binding for Openhab.

My AV Receiver is Yamaha and my weather station is Netatmo.

Hi everybody!
I am having similar problems with the feedback not working. The scheduled update runs perfectly but it gets not reflected in the status of the items. I am currently running SNAPSHOT 2.1.0 build #813.
What I haven’t done is declaring all the physical buttons in the .items file. I thought the scheduled update was enough or am I wrong? I use the Nikobus binding in combination with Homekit integration. This is the output of the log file:

2017-02-27 14:58:58.719 [TRACE] [ding.nikobus.internal.NikobusBinding] - Requesting scheduled status update for DD05
2017-02-27 14:58:58.720 [TRACE] [ding.nikobus.internal.NikobusBinding] - Sending command with ack $1017DD0539B1C4
2017-02-27 14:58:58.722 [TRACE] [s.internal.core.NikobusCommandSender] - Sending command $1017DD0539B1C4
2017-02-27 14:58:58.728 [DEBUG] [kobus.internal.core.NikobusInterface] - Sending : $1017DD0539B1C4
2017-02-27 14:58:58.750 [TRACE] [kobus.internal.core.NikobusInterface] - Received: $
2017-02-27 14:58:58.772 [TRACE] [kobus.internal.core.NikobusInterface] - Received: 0517
2017-02-27 14:58:58.772 [DEBUG] [internal.core.NikobusCommandReceiver] - Received NikobusCommand [command=$0517, repeats=1]
2017-02-27 14:58:58.773 [TRACE] [obus.internal.core.NikobusAckMonitor] - Processing nikobus command $0517
2017-02-27 14:58:58.946 [TRACE] [kobus.internal.core.NikobusInterface] - Received: $
2017-02-27 14:58:58.970 [TRACE] [kobus.internal.core.NikobusInterface] - Received: 1CDD0500000000000000BD6
2017-02-27 14:58:58.993 [DEBUG] [internal.core.NikobusCommandReceiver] - Received NikobusCommand [command=$1CDD0500000000000000BD6A0A, repeats=1]
2017-02-27 14:58:58.994 [TRACE] [obus.internal.core.NikobusAckMonitor] - Processing nikobus command $1CDD0500000000000000BD6A0A
2017-02-27 14:58:58.995 [TRACE] [obus.internal.core.NikobusAckMonitor] - Received expected ack '$1CDD0500000000000000BD6A0A'
2017-02-27 14:58:58.996 [TRACE] [kobus.internal.core.NikobusInterface] - Received: A0A```

Is there anything I can try?

Thanks in advance!
Ben

In fact, everything works fine for now. Except when I try to turn everything off at once with Siri, it fails. But overall it works perfect!

I’ve also got most things to work (this is really great), but I still struggle with the status updates that should occur every 10 minutes. In the logs I can see the following:

Anyone else stumbled on this?

Hi,
I’m a new to the openHAb system and installed the OH2 on an raspberry. I have the “old” nikobus with a pc link (serial). The serial is connected to the RP.

Things i figured out,
It’s not possible to install the niko binding by using paperUI. It has to be by hand. ?

Can somebody help me what is my next step(s) are ?.

you should be perfectly able to install it using paper UI, I do it all the time and it works fine

Ben, this is probably because you’re flooding the Nikobus bus. Siri will just send individual “turn off commands for each and every item”. If you have lots of lights it’s just too much for the serial bus. If you have properly installed each update (light turned off) will also generate an update for the controller section (another query to the bus).

The best way to do this is to configure a “all off” function in NIkobus and link it to a virtual button and have openhab (and Siri) call this virtual button. This way it will be only 1 command on the nikobus instead of dozens.

Another issue I ran into and haven’t found a proper solution for is status update for dimcontrollers. When changing the slider in openhab it sends the command to the dimcontroller but since dimcontrollers have a dim delay (for example 1sec) the status is not properly updated. After the command is sent the biding is polling the module for an update as with a “schakelmodule” but the dim controller has not finished the change yet (imagine you go from 100% to 0% and delay is 1 sec). When the module is polled it’s at 40% for example. The only way I managed to solve for it is by adding the same module several times a switch in the config file, so it polls it five times for example and by the fifth 5th time the status will have reached 0%

Oke, i started a new attempt from scratch.
installing openhab 2 on a rasp - check
usb to serial on the pi is working - check
install nikobus binding - check

in the inbox - no nikobus binding.
install networkbinding to test, networkbinding is in inbox.

Why isn’t the nikobusbinding not in the inbox or in the configuration ?

Do i miss an essential step or ??. Google does not provide an easy step by step so i will make one for further beginners

Peter,

I’m not at home so can’t see how it exactly looks but let’s make sure we’re talking about the same.

The Nikobus binding is an OH1 binding. You can install it through the Paper UI like the first image on this page http://docs.openhab.org/configuration/paperui.html
under extensions bindings.

The configuration however happens through config files you put in the services directory as explained here. http://docs.openhab.org/addons/bindings/nikobus1/readme.html

If by inbox you mean the Paper UI inbox where autodiscovered things show up then you’re right nikobus does not autogenerate anything. That is only the case for the newer OH2 bindings.

So when you see Nikobus in the list of bindings under extensions bindings then you can move on to configuring it through text files.

oke, here we again.

I have made some buttons according to the example in http://docs.openhab.org/addons/bindings/nikobus1/readme.html. They are not my adreses but just to see what happens

then i looked into the logging story and i can see that the button is pushed but nothing nikobus is happening.

it looks that i skipped an essentials step somewhere.

install openhab2 on raspberry
check of serialport is there (yes)
install nikobus binding
change in nikobus.cfg the serial port

make a switch in /srv/openhab2-conf/items/default.items

Switch Presence_Mobile_KK "Johns Mobile" <network> { channel="network:device:192_168_1_43:online" }
Dimmer NotificationVolume "Notification Volume [%d %%]"     {channel="squeezebox:squeezeboxplayer:9f9c26be:0004201221ad:notificationSoundVolume"}
Switch Office_Top_Left_S "Office Light On/Off Short Press" { nikobus="#N003334:SHORT" }
Switch Office_Top_Left "Office and Kitchen Light On/Off" { nikobus="#N006884[C964-1,C964-2]" }

and in /srv/openhab2-conf/sitemaps/default.sitemap

sitemap default label="My first sitemap"
{
Switch item=Presence_Mobile_KK label="KK Mobile"
Slider item=NotificationVolume label="Notification Volume"
Switch item=Office_Top_Left_S label="test nikobus"	
Switch item=Office_Top_ label="test nikobu2"

}`Preformatted text`

I see the buttons, i click the buttons and in the log it says

 11:37:22.547 [INFO ] [kobus.internal.core.NikobusInterface] - Connected to serial port '/dev/ttyUSB0'
 11:37:23.007 [INFO ] [kobus.internal.core.NikobusInterface] - Connected to Nikobus :-)

But when i push the yellow button on the nikobus module, nothing seems to happen.

complete log here

thanks

can’t open log file from where I am currently but the Connected to Nikobus is good news !!

My guess is you haven’t turned on debug level for Nikobus yet,
I don’t use the console but the documentation mentions how to do it through the console


This binding’s root logger is org.openhab.binding.nikobus. Enable DEBUG logging to discover module addresses and channels that will be logged. In openHAB 2, this can be performed from the console at the openhab> prompt:

log:set DEBUG otg.openhab.binding.nikobus
log:tail


You can also do this through editing the org.ops4j.pax.logging.cfg file. I’ll try to send you the lines to add tonight but if you’re familiar with the console method above, that looks the easiest way

add this to the mentioned logging cfg file and you should see anikobus.log file where you will find things happening when pushing the yellow button or any wall switch

remove the > in front of all lines

> # nikobus logger
> log4j.logger.org.openhab.binding.nikobus = TRACE, nikobus, osgi:*
> log4j.additivity.org.openhab.binding.nikobus = false
> 
> 
> # File appender - nikobus.log
> log4j.appender.nikobus=org.apache.log4j.RollingFileAppender
> log4j.appender.nikobus.layout=org.apache.log4j.PatternLayout
> log4j.appender.nikobus.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-26.26c{1}] - %m%n
> log4j.appender.nikobus.file=${openhab.logdir}/nikobus.log
> log4j.appender.nikobus.append=true
> log4j.appender.nikobus.maxFileSize=10MB
> log4j.appender.nikobus.maxBackupIndex=10

not sure what happend but i tried your log solution and now i have input from the nikobus.
i have two 05-000-02 (186A & 1836) and one 05-008-02 (180B).

It’s hard to find the differents between OH1 and 2 configs.

so on to the next question.

I made these items in default items:

 Switch test1 "test1" { nikobus="#N000001[186A-1]" }
 Switch test2 "test2" { nikobus="#N000002[186A-2]" }

Button is non existing , i have ‘old’ buttons with no statusleds

to switch on/of de first two channels of the 186A 05-000-02

and this in the sitemap:

Switch item=test1 label="test nikobus"
Switch item=test2 label="test nikobu2"

When i press the switch this happens according the log:

  2017-10-06 20:41:24.621 [NikobusBinding            ] - Received command ON for item test1
  2017-10-06 20:41:24.638 [Button                    ] - Processing command ON
  2017-10-06 20:41:24.642 [NikobusBinding            ] - Sending command without waiting for ack #N000001
  2017-10-06 20:41:24.674 [NikobusCommandSender      ] - Sending command #N000001
  2017-10-06 20:41:24.679 [NikobusBinding            ] - Sending command without waiting for ack #E1
  2017-10-06 20:41:24.684 [NikobusBinding            ] - Error processing commmand ON for item test1 : null
  2017-10-06 20:41:24.691 [NikobusInterface          ] - Sending : #N000001
  2017-10-06 20:41:24.768 [NikobusCommandSender      ] - Sending command #E1
  2017-10-06 20:41:24.778 [NikobusInterface          ] - Sending : #E1

So again, where to i go wrong.

Oh and thanks a lot for helping my out

Oke edit- I just pushed a button and changed the virtual button into the real button.

This works, so happy. But whats the function of the moduleAddress>:<channel ?

I have old buttons as well that’s fine. The address you made up N00001 needs to be replaced by the real wall switch address.

Watch the log file, then push the real wall switch. You should see in the log file what the address of that button is. Use that instead of your made up N00001 address and the openhab switch will turn lights on and off just like the real switch.

you’re really close, it’s a matter of getting familiar with the right syntax

so i did,

this works, again thanks for the help.

Is it not possible to make virtual buttons and create something for that. ?

And why is it importand to know what the module adress is ?

more and carefull reading says i can use the virtualbutton in the programming of my nikobusconfig. That’s make sense.

The module adress is optional, and is used to include detail on which channel groups the button press affects

Makes also sense.

Now is to discover the real button adresses and play. and how to make nice buttons in the sitemap.

Thanks, made giant steps today

Well there are 3 different ways to control outputs on nikobus.

The first one you now have working, capturing real button addresses and having oh send the same commands on the bus, so faking to be a real wall switch.

The second one is creating virtual buttons in your nikobus software and using the same principle, you configure buttons in oh with the address of those virtual buttons just like above.

The last one is to forget about nikobus buttons and just configure a switch that controls directly the output of the nikobus module, for,this you need the module address.

In the documentation it’s below example. Use this and replace the address with your module address (the one you get when pushing the yellow button) 186A in your case

Switch light_hallway {nikobus=“C964:2”}
Switch light_living {nikobus=“C964:3”}
Switch light_kitchen {nikobus=“C964:4”}
Switch light_diningroom {nikobus=“C964:5”}
Switch light_toilet {nikobus=“C964:6”}

The benefit of the last one is that you see the output status in the switch.