Comfoair binding (1.9) for Zehnder in openHAB2

Hello Thomas,

I have both .script files in the right path /etc/openhab2/scripts with the correct permissions.

Greetings Martin

You need to know about sitemap Message:

  1. Message shows the errors (Comfoair errors, Filter errors, Inlet error, Freeze error) but also some more messages when you control Comfoair (eg. when the control is on CC Ease side and you want to change ventilation level, it shows “PC control is not active”)

  2. for Freeze message:

  • it checks: comfoairIncomingFan, comfoairOutgoingFan, weatherN_Temperature, so their values can not be null. Overwise Message shows “Exchanger: communication failed”.
  • if weatherN_Temperature_ is less than 0 and one of fans has stopped, Message shows “Exchanger: FROZEN”.
  1. for Inlet message:
  • it comperes the outside temperature and the inlet temperature in comfoair, so weatherN_Temperature item and comfoairOutdoorIncomingTemperature item values can not be null. Overwise Message shows “Inlet: communication failed”. If difference between outside temperature and inlet temperature is bigger than 10 degrees, it shows “Inlet: PLUGGED”.
  • it needs to know what state of comfoairFrozenError is, so it can’t be null too.

So please, check what state of weatherN_Temperature is. If this state is null, try to change it for some value (current outside temperature) by RestAPI.
If you don’t want to have Inlet and Freeze messages, you have to rebuild the rules.

And about sitemap Filter time (I like it, because it shows how much time has been passed and how much has remained).
The items: comfoairFilterRuntime, comfoairFilterPeriod are needed for the rule to work properly. So check the value of them.
If they have right value, please wait about one hour (when the comfoairFilterRuntime has changed), or change it by yourself by RestAPI.

One more question because your Freeze and Fire programme values are “unknown”.
Do you not be able to read them, or you didn’t put this items to your openHAB yet ?

Hello Grzegorz,

thanks for your explanation. Indeed the value of weatherN_Temperature was NULL. I’ve set it to 0 and as you can see, the status of ‘Main Message’ ist now ok :slight_smile:

Now only the missing status of the filter runtime remains - I’m curious what I did wrong here :slight_smile:

Greetings,

Martin

Hello Grzegorz,

I put the items *comfoairFilterRuntime and **comfoairFilterPeriod into the sitemap. As you can see I don’t have any value on this site. *

In the log I can find this:

2019-01-24 09:55:30.063 [vent.ItemStateChangedEvent] - comfoairFilterRuntime changed from 1884 to 1885

In my IO-Broker I can find the following values for these items:

openhab.0.items.comfoairFilterPeriod = “”

openhab.0.items.comfoairFilterRuntime = “1885”

openhab.0.items.comfoairFilterRuntime_Message = “NULL”

At the moment I didn’t use the Freeze and *Fire program - this is something I will check after the rest ist running. *I probably do not need it.


 the value of comfoairFilterPeriod was " " - after setting the value to 0 or 3 or 12 I found this error message in the log:

2019-01-24 11:14:17.970 [vent.ItemStateChangedEvent] - comfoairFilterRuntime changed from 1885 to 1886

2019-01-24 11:14:18.000 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule ‘showFilterTime’: The name ‘filterPeriodWeeks’ cannot be resolved to an item or type; line 146, column 34, length 17

I modify my example rules a little, so you can download comfoair.rules file from my repository and try with it.

As I wrote, comfoairFilterPeriod can’t be null or “”. So question is why is it ?
Please check by CC Ease, what filter period in menu 24 do you have.
What type of ComfoAir do you have ? Is it Zehnder ComfoAir 350 or other type of device ?

Hello Grzegorz,

the CC Ease setting should be 16 weeks - i’ll check this this evening.

With your ‘new’ rules and the manual set of ‘comfoairFilterPeriod’ to 15 it seams to run.

Strange thing is that the value of comfoairFilterPeriod is probably not read from the Comfoair 350.
I don’t have any error in the log file (DEBUG Mode) except in this moment I set the value manually (only one warn message).

Here by setting the value from 16 to 15:

2019-01-24 16:34:51.992 [vent.ItemStateChangedEvent] - comfoairFilterPeriod changed from 16 to 15

2019-01-24 16:34:51.979 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/comfoairFilterPeriod] {item=comfoairFilterPeriod, bridgemarker=true, command=15, timestamp=1548344091974} | {org.osgi.service.cm.ManagedService, org.osgi.service.event.EventHandler}={service.id=367, service.bundleid=227, service.scope=bundle, event.topics=openhab/*, service.pid=org.openhab.comfoair, component.name=org.openhab.binding.comfoair, component.id=224} | Bundle(org.openhab.binding.comfoair_1.13.0 [227])]

java.lang.NullPointerException: null

	at org.openhab.binding.comfoair.handling.ComfoAirCommandType.getChangeCommand(ComfoAirCommandType.java:393) ~[?:?]

	at org.openhab.binding.comfoair.internal.ComfoAirBinding.internalReceiveCommand(ComfoAirBinding.java:118) ~[?:?]

	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) ~[?:?]

	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) ~[?:?]

	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.2.1]

	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.2.1]

	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.2.1]

	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.2.1]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

	at java.lang.Thread.run(Thread.java:748) [?:?]

2019-01-24 16:34:52.096 [vent.ItemStateChangedEvent] - comfoairFilterRuntime_Message changed from Passed: 11 weeks 1 day, Remained: 4 weeks 5 days to Passed: 11 weeks 1 day, Remained: 3 weeks 5 days

BTW: Now I’ve linked the ‘weatherN_Temperature’ to one of my external sensors.

Please write, when and how you get this warning. How you change comfoairFilterPeriod item ? By RestAPI, by comfoair.binding, or by other way ?
I understand you have Zehnder Comfoair 350, right ?

Because I don’t get the value of comfoairFilterPeriod over the interface, I set the value in my IOBroker. IOBroker and Opnehab are connected so openhab gets this value. Exactly in this moment of the value transfer the above error message appears in the openhab log.

I have a Comfoair 350 Luxe. Yesterday evening I checked the P24. The Value was ‘NULL’, I set it to 16 but this doesn’t take any effect. I can live with the fact of having to set this rather static value by IOBroker but for me it is interesting why this is not transferred over the interface.

In fact I find this binding really great. Thank you very much for making so much effort and for making this great work available to us.


 I found another warn message in der openHAB Log:

2019-01-25 08:35:35.032 [WARN ] [.comfoair.handling.ComfoAirConnector] - Unable to handle data. Data size not valid

2019-01-25 08:35:35.035 [WARN ] [.comfoair.handling.ComfoAirConnector] - skip CMD: ce DATA:  00 ce 0e 14 2d 41 14 2d 41 32 2d 00 02 01 55 55 00 00 99

2019-01-25 08:35:36.042 [WARN ] [.comfoair.handling.ComfoAirConnector] - Retry cmd. Last call was not successful. Request:  07 f0 00 cd 00 7a 07 0f Response:  07 f3 07 f0 00 ce 0e 14 2d 41 14 2d 41 32 2d 00 02 01 55 55 00 00 99 07 0f

Can this be the comfoairFilterPeriod query that is not answered by the interface?

It is normall. Sometimes Comfoair send wrong message. Binding warn about it and read for data once again. Don’t worry about this warning - everybody get it :slightly_smiling_face:

Please review the coding guidelines on logging. These messages should not be WARNs.

@Martin_Raiser I got these kind of warnings with the out of the box Comfoair Binding also. Reason was an issue with the serial connectivity. I use a Pi Zero to read Comfoair information. If data size is not valid this could also be caused by a connectivity issue.