Hello @csowada
template file for vaillant and configuration file for VRC700 are done. There is more work to do, but here is what have been done so far:
https://drive.google.com/open?id=1_26-NMtESby3t8sFwKz6KVU5bY6r45Ia
Now I need you to help me finish it.
Configuration file is very large .There is 180 command blocks, and it loads more than 10 seconds on my Pi. That’s why I had a problem with the update tool.
Rarely who will use all the commands, so it would not be bad to make one more file for the most commonly used setup (one heating circuit, one zone, hot water and circulation) or split the configuration into multiple files, so can be used in bundle only as needed.If a large file is to be used, maybe it can be better arranged because it has a lot of repetition (9 groups for 7 days of timer, 2 zones, 2 heating circuits).
Which would be the best choice? And is bundle limited by number of files?
My Vaillant template file contains only the templates that were needed to complete the vrc700 configuration. When everything is done, I will be happy to add the rest.
Around this things I need help:
For channels that use templates b5.hfrom and b5.hto the telegram is resolved and the method is found, but an error occurred. The example below is an error when the date is 30.04.17
12:05:28.970 [INFO ] [nhab.binding.ebus.handler.EBusHandler] - Poll command "ebus:vrc700:8e673baf:vrc700_gen_holiday-start#value" with "FF 15 B5 24 06 02 00 00 00 71 00 58" ...
12:05:29.027 [DEBUG] [de.csdev.ebus.core.EBusController ] - Send: FF 15 B5 24 06 02 00 00 00 71 00 58 @ 0. attempt
12:05:29.168 [DEBUG] [de.csdev.ebus.core.EBusController ] - Succesful send: FF 15 B5 24 06 02 00 00 00 71 00 58 00 07 03 00 71 00 1E 04 11 41 00
12:05:29.172 [ERROR] [de.csdev.ebus.core.EBusControllerBase] - Error while firing onTelegramReceived events!
java.lang.ArrayIndexOutOfBoundsException: 3
at de.csdev.ebus.command.datatypes.ext.EBusTypeDate.decodeInt(EBusTypeDate.java:110) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.datatypes.ext.EBusTypeDate.decodeInt(EBusTypeDate.java:1) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.datatypes.EBusAbstractType.decode(EBusAbstractType.java:100) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.EBusCommandUtils.decodeValueList(EBusCommandUtils.java:374) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.EBusCommandUtils.decodeTelegram(EBusCommandUtils.java:426) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.service.parser.EBusParserService.onTelegramReceived(EBusParserService.java:94) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.core.EBusControllerBase$2.run(EBusControllerBase.java:102) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
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) [?:?]
And telegram for 01.05.17. also fires same error:
FF 15 B5 24 06 02 00 00 00 71 00 58 00 07 03 00 71 00 01 05 11 F3 00
Next error I get using b5.from and to (TTM). In case the time slot for timer is not set, vrc700 sends a value of 90 90 90 90 representing the next midnight. Binding does not want to use this value or I am missing something. Here is example:
12:49:17.299 [INFO ] [nhab.binding.ebus.handler.EBusHandler] - Poll command "ebus:vrc700:8e673baf:vrc700_hwc_timer-mon#from2" with "FF 15 B5 24 05 03 01 00 01 00 4E" ...
12:49:17.370 [DEBUG] [de.csdev.ebus.core.EBusController ] - Send: FF 15 B5 24 05 03 01 00 01 00 4E @ 0. attempt
12:49:17.526 [DEBUG] [de.csdev.ebus.core.EBusController ] - Succesful send: FF 15 B5 24 05 03 01 00 01 00 4E 00 07 01 21 8A 90 90 90 90 13 00
12:49:17.532 [ERROR] [ebus.service.parser.EBusParserService] - error!
de.csdev.ebus.command.datatypes.EBusTypeException: Value 'minutes since midnight' to large!
at de.csdev.ebus.command.datatypes.ext.EBusTypeTime.decodeInt(EBusTypeTime.java:111) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.datatypes.ext.EBusTypeTime.decodeInt(EBusTypeTime.java:1) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.datatypes.EBusAbstractType.decode(EBusAbstractType.java:100) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.EBusCommandUtils.decodeValueList(EBusCommandUtils.java:374) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.command.EBusCommandUtils.decodeTelegram(EBusCommandUtils.java:426) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.service.parser.EBusParserService.onTelegramReceived(EBusParserService.java:94) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
at de.csdev.ebus.core.EBusControllerBase$2.run(EBusControllerBase.java:102) [213:de.csdev.ebus.ebus-core:0.9.16.SNAPSHOT]
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) [?:?]
The next thing to look at is that the binding always do polling of all the channels, regardless of whether they are linked or not and so clog the bus. Channels used for “dummy” values are being polled also. Can “_unknown” poll and unlinked poll be omitted? Here is example: two identical telegrams to retrieve one value
00:45:45.795 [INFO ] [nhab.binding.ebus.handler.EBusHandler] - Poll command "ebus:vrc700:8e673baf:vrc700_gen_time#-unknown" with "FF 15 B5 24 06 02 00 00 00 35 00 51" ...
00:45:45.801 [INFO ] [nhab.binding.ebus.handler.EBusHandler] - Poll command "ebus:vrc700:8e673baf:vrc700_gen_time#value" with "FF 15 B5 24 06 02 00 00 00 35 00 51" ...
Next, please look at hwc.timer_mon for example. Currently, the command creates 6 channels with the same label. Is it possible for each of the channels to get a value name from the template in their label ?
It’s all for now. I will continue after the response. Thank you.