binding errors: for changing the binding code I need some time - I will try to do it in weekend.
supply / exhaust mode: you need to know:
my supply/exhaust mode doesn’t work in absent state (level A). Comfoair should be on level 1, 2 or 3. This mode uses level A to modify fan speed. That’s why there is no switch for level A in my site map.
Change the supply/exhaust mode not faster then 2 s - comfoair need some time for reaction.
If supply/exhaust mode still doesn’t work on level 1 - 3 for you, try to change rules listed below in comfoair.rules file (I have simplify them):
rule "changeSupply-Exhaust"
when
Item comfoairFanMode_Message changed
then
var Number newFanMode = comfoairFanMode_Message.state as DecimalType
if( comfoairControl.state == 1 ) {
if( comfoairFanMode_Message.state != comfoairFanMode.state ) {
comfoairFanMode.sendCommand( newFanMode )
logInfo( "ComfoAir", "Try to change supply/exhaust mode" )
}
}
end
rule "changeSupply-ExhaustMode"
when
Item comfoairFanMode changed
then
if( comfoairControl.state instanceof Number ) {
if( comfoairFanMode.state instanceof Number ) {
if( comfoairFanLevel.state > 1 ) {
logInfo( "ComfoAir", "Fan level is OK" )
comfoairFanLevelLastValue = comfoairFanLevel.state
Thread::sleep( 100 )
comfoairFanIn0LastValue = comfoairIncomingFan.state
comfoairFanOut0LastValue = comfoairOutgoingFan.state
}
// Supply + Exhaust
if( comfoairFanMode.state == 0 ) {
logInfo( "ComfoAir", "Supply/Exhaust mode was changed to both" )
if( comfoairIncomingFan.state == 0 || comfoairOutgoingFan.state == 0 ) {
comfoairFanIn0.sendCommand( comfoairFanIn0BaseValue )
createTimer(now.plusSeconds( 1 ), [ |
comfoairFanOut0.sendCommand( comfoairFanOut0BaseValue )
])
if (comfoairFanLevel.state < 2) {
logInfo( "ComfoAir", "Comfoair level was returned to last state" )
comfoairFanLevel.sendCommand( comfoairFanLevelLastValue.toString )
}
}
} else {
comfoairFanLevel.sendCommand( "1" )
logInfo( "ComfoAir", "Comfoair level was changed to level A" )
// Supply
if( comfoairFanMode.state == 1 ) {
logInfo( "ComfoAir", "Supply/Exhaust mode was changed to supply" )
if( comfoairIncomingFan.state == 0 ) {
comfoairFanIn0.sendCommand( comfoairFanIn0LastValue )
logInfo( "ComfoAir", "Incomming fan has returned to last value" )
} else {
comfoairFanIn0.sendCommand( comfoairIncomingFan.state )
logInfo( "ComfoAir", "Incomming fan has changed to new value" )
}
createTimer( now.plusSeconds( 1 ), [ | comfoairFanOut0.sendCommand( 0 ) ])
logInfo( "ComfoAir", "Incomming fan has changed to 0" )
}
// Exhaust
if( comfoairFanMode.state == 2 ) {
logInfo( "ComfoAir", "Supply/Exhaust mode was changed to exhaust" )
comfoairFanIn0.sendCommand( 0 )
logInfo( "ComfoAir", "Incomming fan has changed to 0" )
createTimer(now.plusSeconds( 1 ), [ |
if( comfoairOutgoingFan.state == 0 ) {
comfoairFanOut0.sendCommand( comfoairFanOut0LastValue )
logInfo( "ComfoAir", "Outgoing fan has returned to last value" )
} else {
comfoairFanOut0.sendCommand( comfoairOutgoingFan.state )
logInfo( "ComfoAir", "Outgoing fan has changed to new value" )
}
])
}
}
}
}
end
If you use "Fire program", you need to switch it off. And don’t use chimney (if you have) when you use supply/exhaust mode - it is dangerous. In this new rules I have removed the blockade for “Fire program”.
I hope you will be successfull. If not, please send me your log.
I tried the new rules and comment out chimney items.
It is still not working i have this log there seems to be something wrong with the rule’s i hope you can see something
2019-01-18 18:03:00.024 [INFO ] [ipse.smarthome.model.script.comfoair] - ComfoAir - MANUAL Mode
2019-01-18 18:03:05.811 [ome.event.ItemCommandEvent] - Item 'comfoairFanMode_Message' received command 2
2019-01-18 18:03:05.819 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Try to change supply/exhaust mode
2019-01-18 18:03:05.823 [vent.ItemStateChangedEvent] - comfoairFanMode_Message changed from 0 to 2
2019-01-18 18:03:05.824 [ome.event.ItemCommandEvent] - Item 'comfoairFanMode' received command 2
2019-01-18 18:03:05.829 [vent.ItemStateChangedEvent] - comfoairFanMode changed from 0 to 2
2019-01-18 18:03:05.831 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Fan level is OK
2019-01-18 18:03:05.938 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel' received command 1
2019-01-18 18:03:05.937 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Comfoair level was changed to level A
2019-01-18 18:03:05.945 [vent.ItemStateChangedEvent] - comfoairFanLevel changed from 2 to 1
2019-01-18 18:03:05.946 [vent.ItemStateChangedEvent] - comfoairFanLevel_Message changed from 2 to 1
2019-01-18 18:03:05.944 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Supply/Exhaust mode was changed to exhaust
2019-01-18 18:03:05.951 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'changeSupply-ExhaustMode': The name 'comfoairFanIn0' cannot be resolved to an item or type; line 324, column 6, length 14
2019-01-18 18:03:09.357 [vent.ItemStateChangedEvent] - comfoairIncomingFan changed from 20 to 15
2019-01-18 18:03:09.359 [vent.ItemStateChangedEvent] - comfoairOutgoingFan changed from 20 to 15
2019-01-18 18:03:11.391 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel_Message' received command 3
2019-01-18 18:03:11.396 [vent.ItemStateChangedEvent] - comfoairFanLevel_Message changed from 1 to 3
2019-01-18 18:03:11.399 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel' received command 3
2019-01-18 18:03:11.401 [vent.ItemStateChangedEvent] - comfoairFanLevel changed from 1 to 3
2019-01-18 18:03:11.406 [vent.ItemStateChangedEvent] - comfoairFanMode changed from 2 to 0
2019-01-18 18:03:11.411 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Fan level is OK
2019-01-18 18:03:11.515 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Supply/Exhaust mode was changed to both
2019-01-18 18:03:14.814 [vent.ItemStateChangedEvent] - comfoairIncomingFan changed from 15 to 40
2019-01-18 18:03:14.815 [vent.ItemStateChangedEvent] - comfoairOutgoingFan changed from 15 to 40
2019-01-18 18:03:51.736 [vent.ItemStateChangedEvent] - comfoairOutdoorOutgoingTemperature changed from 9.0 to 9.5
2019-01-18 18:04:00.027 [INFO ] [ipse.smarthome.model.script.comfoair] - ComfoAir - MANUAL Mode
2019-01-18 18:04:34.044 [ome.event.ItemCommandEvent] - Item 'comfoairFanMode_Message' received command 1
2019-01-18 18:04:34.046 [vent.ItemStateChangedEvent] - comfoairFanMode_Message changed from 2 to 1
2019-01-18 18:04:34.051 [ome.event.ItemCommandEvent] - Item 'comfoairFanMode' received command 1
2019-01-18 18:04:34.058 [vent.ItemStateChangedEvent] - comfoairFanMode changed from 0 to 1
2019-01-18 18:04:34.059 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Try to change supply/exhaust mode
2019-01-18 18:04:34.063 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Fan level is OK
2019-01-18 18:04:34.168 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel' received command 1
2019-01-18 18:04:34.168 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Comfoair level was changed to level A
2019-01-18 18:04:34.173 [vent.ItemStateChangedEvent] - comfoairFanLevel changed from 3 to 1
2019-01-18 18:04:34.175 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Supply/Exhaust mode was changed to supply
2019-01-18 18:04:34.176 [vent.ItemStateChangedEvent] - comfoairFanLevel_Message changed from 3 to 1
2019-01-18 18:04:34.179 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'changeSupply-ExhaustMode': The name 'comfoairFanIn0' cannot be resolved to an item or type; line 315, column 7, length 14
2019-01-18 18:04:37.579 [vent.ItemStateChangedEvent] - comfoairIncomingFan changed from 40 to 15
2019-01-18 18:04:37.580 [vent.ItemStateChangedEvent] - comfoairOutgoingFan changed from 40 to 15
2019-01-18 18:04:52.968 [vent.ItemStateChangedEvent] - comfoairOutdoorIncomingTemperature changed from 4.0 to 3.5
2019-01-18 18:04:53.952 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel_Message' received command 3
2019-01-18 18:04:53.962 [vent.ItemStateChangedEvent] - comfoairFanLevel_Message changed from 1 to 3
2019-01-18 18:04:53.963 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel' received command 3
2019-01-18 18:04:53.969 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Supply/Exhaust mode was changed to both
2019-01-18 18:04:54.171 [vent.ItemStateChangedEvent] - comfoairFanMode changed from 1 to 0
2019-01-18 18:04:54.174 [vent.ItemStateChangedEvent] - comfoairFanLevel changed from 1 to 3
2019-01-18 18:04:57.377 [vent.ItemStateChangedEvent] - comfoairIncomingFan changed from 15 to 40
2019-01-18 18:04:57.380 [vent.ItemStateChangedEvent] - comfoairOutgoingFan changed from 15 to 40
2019-01-18 18:05:00.013 [INFO ] [ipse.smarthome.model.script.comfoair] - ComfoAir - MANUAL Mode
2019-01-18 18:05:09.163 [ome.event.ItemCommandEvent] - Item 'comfoairFanMode_Message' received command 2
2019-01-18 18:05:09.171 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Try to change supply/exhaust mode
2019-01-18 18:05:09.173 [vent.ItemStateChangedEvent] - comfoairFanMode_Message changed from 1 to 2
2019-01-18 18:05:09.175 [ome.event.ItemCommandEvent] - Item 'comfoairFanMode' received command 2
2019-01-18 18:05:09.180 [vent.ItemStateChangedEvent] - comfoairFanMode changed from 0 to 2
2019-01-18 18:05:09.182 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Fan level is OK
2019-01-18 18:05:09.287 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Comfoair level was changed to level A
2019-01-18 18:05:09.288 [ome.event.ItemCommandEvent] - Item 'comfoairFanLevel' received command 1
2019-01-18 18:05:09.290 [INFO ] [ipse.smarthome.model.script.ComfoAir] - Supply/Exhaust mode was changed to exhaust
2019-01-18 18:05:09.291 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'changeSupply-ExhaustMode': The name 'comfoairFanIn0' cannot be resolved to an item or type; line 324, column 6, length 14
2019-01-18 18:05:09.492 [vent.ItemStateChangedEvent] - comfoairFanLevel changed from 3 to 1
2019-01-18 18:05:09.501 [vent.ItemStateChangedEvent] - comfoairFanLevel_Message changed from 3 to 1
2019-01-18 18:05:12.705 [vent.ItemStateChangedEvent] - comfoairIncomingFan changed from 40 to 15
2019-01-18 18:05:12.707 [vent.ItemStateChangedEvent] - comfoairOutgoingFan changed from 40 to 15
2019-01-18 18:05:54.179 [vent.ItemStateChangedEvent] - comfoairOutdoorIncomingTemperature changed from 3.5 to 4.0
2019-01-18 18:06:00.025 [INFO ] [ipse.smarthome.model.script.comfoair] - ComfoAir - MANUAL Mode
I blocked an error in binding.comfoair code and chaged the .jar file in my repository: https://github.com/gieemek/ComfoAir_Binding_modified - you can download it and reinstall comfoair binding in openHAB.
You will still get the warning “Unexpected value for DATA:” according to the different data block from comfoair 550. And you will not get value for is_ewt command, so comfoairEWT item will have value null.
But binding should work without errors.
Regards,
Everything is working now also the supply and exhaust mode.
Is there a way that you can merge the jar file with the binding from Holger Hees?
Nice work.
2019-01-20 19:42:32.177 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/usr/share/openhab2/addons/org.openhab.binding.comfoair-1.13.0.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.comfoair [241]
Unresolved requirement: Import-Package: gnu.io
at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
I don’t use changes yet (except Setting the Comfoair to Mode 1 while in Holiday or changing set temperature higher for winter and lower for summer. Playing around with some smart indicator to Show we’re cooking or we’re in the shower to automatically trigger the high volume modes (2).
PS: It’s a Comfoair 350 (without the Q and the TR I guess - it’s 6 years old)
(this is my first post) - I’m currently testing this binding. First of all thank you for that. I used the example files from gieemek version of today (https://github.com/gieemek/ComfoAir_Binding_modified/tree/master/examples) and have two issues with this. I can see all values except comfoairError_Message (here I’ve got the message: Inlet: communication failed, Exchanger: communication failed - but the real status is OK) and comfoairFilterRuntime_Message (the value of comfoairFilterRuntime comes with the interface).
The file comfoair_enthalpy.map is missing in your example files
@gieemek: Pls be so kind and check your example files. Thanks in advance.
Btw. the item ‘weatherN_Temperature’ (in rules) is the outside temperature of some external sensor from you?
Yes, the item is supposed to measure the outside temparture (for us guys Living on the North of the globe it’s usually placed on the North wall). You should have already one for your heating, which could be used…?
as for your error-message, there’s error_mesage from the ComfoAir (350 in my case) read by the binding and it’s written in the example into the item comfoairError. The item comfoairError_Message is filled by rules as they parse the error_message into pieces. Be sure, you have copied the two .scripts files in the scripts directory.
So it means the rules are problem.
Check in CC Ease what state of menu30 - menu37 you have (capacity of supply and exhaust fans for all levels). If some are incorect change its state to required value.
Then you can try to use my supply/exhaust mode on different levels, and check menu30 - menu37 again. These menu should not change. If yes, it means the supply/exhaust rule working improperly.
Then you will have the state of each fan in every levels in your sitemap, and you can control and change them by setpoints (of course if protocol for comfoair 550 is the same as for 350 - you can test it)
You can chart these value if you wish - by charting you will know when the problems happened.
Yes, weatherN_Temperature item should be measure by other sensor, not by Comfoair.
I added comfoair_enthalpy.map file to my repository, you can dowload it.
Error message and Filter message are controlled by rules. If they don’t work I need to modify them. I will try to do it in weekend.