This is the forum archive of Homey. For more information about Homey, visit the Official Homey website.

The Homey Community has been moved to https://community.athom.com.

This forum is now read-only for archive purposes.
Closed Official Z-Wave SDK2

[APP] MCOHome app - Main discussion topic (v1.1.2)

2

Comments

  • Mariuss said:
    Hi,
    it connects now but only get readings for temp / humidity. No data on PM2.5
    Hi @Mariuss, when did you install it?
    Did the value on the display change by more than 1.0 ug/m3?
    This is the device default (unchangeable) threshold for sending the PM2.5 measurements to the controller....

    Could you send me (or attach) the Z-wave log (Settings > Z-wave > Stuff for geeks > Log) filtered on the Node ID number of your PM2.5 sensor? Preferably while triggering the sensor...

    Thanks, Ted
  • Here you go....while triggering the PM2.5

    [2017-10-06T21:54:43.749Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a071c
    [2017-10-06T21:54:49.758Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1af4
    [2017-10-06T21:54:53.759Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1f7c
    [2017-10-06T21:54:59.749Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a21e8
    [2017-10-06T21:55:03.750Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05050125
    [2017-10-06T21:55:03.768Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1c70
    [2017-10-06T21:55:09.734Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1a54
    [2017-10-06T21:55:13.736Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1900
    [2017-10-06T21:55:19.743Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1432
    [2017-10-06T21:55:23.744Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0dfc
    [2017-10-06T21:55:29.753Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0c08
    [2017-10-06T21:55:33.755Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0974
    [2017-10-06T21:55:39.737Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0744
    [2017-10-06T21:55:43.739Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0636
    [2017-10-06T21:55:49.888Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a056e
    [2017-10-06T21:55:53.744Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a03c0
    [2017-10-06T21:55:59.754Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0302
    [2017-10-06T21:56:03.748Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0276
    [2017-10-06T21:56:09.730Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a01cc
    [2017-10-06T21:56:13.725Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0190
    [2017-10-06T21:56:19.734Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a015e
    [2017-10-06T21:56:23.730Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0118
    [2017-10-06T21:56:29.712Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a00d2
    [2017-10-06T21:56:39.716Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a00a0
    [2017-10-06T21:56:49.694Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0082
    [2017-10-06T21:56:53.708Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a006e
    [2017-10-06T21:56:59.695Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0050
    [2017-10-06T21:57:03.708Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a003c
    [2017-10-06T21:57:23.704Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a001e
    [2017-10-06T21:57:39.696Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1356
    [2017-10-06T21:57:43.715Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a2166
    [2017-10-06T21:57:43.733Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05050127
    [2017-10-06T21:57:49.711Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a2224
    [2017-10-06T21:57:53.728Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a20a8
    [2017-10-06T21:57:59.696Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a1446
    [2017-10-06T21:58:03.687Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05050125
    [2017-10-06T21:58:03.711Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0e24
    [2017-10-06T21:58:09.680Z] Node[44]: Received application command for COMMAND_CLASS_SENSOR_MULTILEVEL, data: 0x05232a0a6e

  • Here is how it looks in the GUI while / after triggering


  • @Mariuss I see the right reports being send to the controller:
    COMMAND_CLASS_SENSOR_MULTILEVEL, 0x0523 = SENSOR_MULTILEVEL_REPORT for Particulate Matter 2.5 (v7)
    and an occasional COMMAND_CLASS_SENSOR_MULTILEVEL, 0x0505 = SENSOR_MULTILEVEL_REPORT for Relative humidity (version 2)

    so there could be something wrong with the report parser(s).
    Would you be able to run the MCOHome app in debug mode (any experience with that) and post the debug log from the command line here; it will show the parsed reports which I can check with the report parsers.
  • Hi,
    I have no experience with debug mode, but with instructions I can do it right away.

    Marius
  • Mariuss said:
    Hi,
    I have no experience with debug mode, but with instructions I can do it right away.

    Marius
    Great!

    You'll need to download the MCOHome app from my repository: 
    https://github.com/TedTolboom/com.mcohome

    And follow the instructions to install the app in debug mode (athom project --debug) as described at: https://forum.athom.com/discussion/1448/how-to-cli-install-method
    Note: current Node.js version is 8.4.0

    The debug log will show in the terminal / command prompt.
    Once finished, terminate the debug session with CTRL-C and re-install the app from the app store
  • MariussMariuss Member
    edited October 2017
    Here we go :)

    C:\com.mcohome-master\com.mcohome-master>athom project --run
    Hey developer, we're hiring! View our open position at https://go.athom.com/jobs
    ? Select active Homey: Homey @ 192.xx
    1/4 - Archiving...
    2/4 - Uploading to Homey @ 192.xx
    3/4 - Running `com.mcohome`, press CTRL+C to abort...
    4/4 - Debugging...

    -------------------------------------------------
    2017-10-07 01:34:47 [log] [MCOhomeApp] MCOhomeApp is running...
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] ZwaveDevice has been inited
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] ------------------------------------------
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] Node: 6a52188f-0566-4aa4-9276-323112587d40
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - Battery: false
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - CommandClass: COMMAND_CLASS_SENSOR_MULTILEVEL
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Version: 5
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Commands:
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- SENSOR_MULTILEVEL_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- SENSOR_MULTILEVEL_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- SENSOR_MULTILEVEL_SUPPORTED_GET_SENSOR
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- SENSOR_MULTILEVEL_SUPPORTED_SENSOR_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- SENSOR_MULTILEVEL_SUPPORTED_GET_SCALE
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- SENSOR_MULTILEVEL_SUPPORTED_SCALE_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - CommandClass: COMMAND_CLASS_ASSOCIATION
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Version: 1
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Commands:
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- ASSOCIATION_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- ASSOCIATION_GROUPINGS_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- ASSOCIATION_GROUPINGS_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- ASSOCIATION_REMOVE
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- ASSOCIATION_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- ASSOCIATION_SET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - CommandClass: COMMAND_CLASS_MANUFACTURER_SPECIFIC
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Version: 1
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Commands:
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- MANUFACTURER_SPECIFIC_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- MANUFACTURER_SPECIFIC_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - CommandClass: COMMAND_CLASS_VERSION
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Version: 1
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Commands:
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- VERSION_COMMAND_CLASS_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- VERSION_COMMAND_CLASS_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- VERSION_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- VERSION_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - CommandClass: COMMAND_CLASS_BASIC
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Version: 1
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Commands:
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- BASIC_GET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- BASIC_REPORT
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] --- BASIC_SET
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] ------------------------------------------
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0]
    2017-10-07 01:36:36 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 25>,
         'Sensor Value (Parsed)': 37 },
      '2': null }
    2017-10-07 01:37:14 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 04 42>,
         'Sensor Value (Parsed)': 109 },
      '2': null }
    2017-10-07 01:37:20 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 29>,
         'Sensor Value (Parsed)': 41 },
      '2': null }
    2017-10-07 01:37:20 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 0f c8>,
         'Sensor Value (Parsed)': 404 },
      '2': null }
    2017-10-07 01:37:24 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 18 f6>,
         'Sensor Value (Parsed)': 639 },
      '2': null }
    2017-10-07 01:37:30 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 20 c6>,
         'Sensor Value (Parsed)': 839 },
      '2': null }
    2017-10-07 01:37:34 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 20 26>,
         'Sensor Value (Parsed)': 823 },
      '2': null }
    2017-10-07 01:37:36 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 27>,
         'Sensor Value (Parsed)': 39 },
      '2': null }
    2017-10-07 01:37:40 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 1f 36>,
         'Sensor Value (Parsed)': 799 },
      '2': null }
    2017-10-07 01:37:44 [log] [ManagerDrivers] [MH10-PM2.5] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 23>,
         'Level (Raw)': <Buffer 2a>,
         Level: { Size: 2, Scale: 1, Precision: 1 },
         'Sensor Value': <Buffer 1d f6>,
         'Sensor Value (Parsed)': 767 },
      '2': null }
    -------------------------------------------------

    Stopping...

    --- INFO: com.mcohome has been killed ---
    App uninstalled
  • @Mariuss Thanx for the log!

    Issue found:
    The command received by Homey (in HEX) is not parsed (correctly); the 'Sensor Type (RAW)' is not parsed into readable form whereas the report parsed (which I added for PM2.5 to the meshdriver) is checking the following condition: 
    report['Sensor Type'] === 'Particulate Matter 2.5 (v7)'
    Looking a bit further into the issue, the version of the Sensor Multilevel CC that the sensor is providing is wrong:
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] - CommandClass: COMMAND_CLASS_SENSOR_MULTILEVEL
    2017-10-07 01:36:04 [log] [ManagerDrivers] [MH10-PM2.5] [0] -- Version: 5
    According to the Z-wave specifications, the 'Sensor Type' 'Particulate Matter 2.5 (v7)' is only introduced as of version 7 (hence the v7); in other words an error in the device firmware (will inform MCOHome development).

    This is not something possible to solve / contain in Homey, since Athom is following the Z-wave specifications.

    To contain (no need to wait for a device firmware update), I've added a containment to the device driver that will parse the report based on 'Sensor Type (RAW)'.

    The GitHub repo has been updated (to version 1.0.3), if you could verify that this one is working correctly.
    After confirmation I will push this version to the app store.
  • Thanks!
    Will soon be home and will test right away and report back to you.
  • Working like a charm!
    All values now working without a flaw.

    Marius
  • Mariuss said:
    Working like a charm!
    All values now working without a flaw.

    Marius
    Good to hear... Next (and working) @Mariuss release will be pushed to the app store..
  • Great! Thanks and have a good weekend!
  • Changelog to v1.0.3:
    v1.0.3
    Add containment for issue with report handling MH10-PM2 for measure_PM2.5 capability
    Update meshdriver to 1.2.3
  • @TedTolboom, I have a question regarding the MH9 CO2 sensor.

    In the Netherlands most sellers sell this sensor together with the optional VOC sensor. On tweakers I found this message regarding this sensor:

    "2. For VOC(optional), actually we have been selling MH9 to our dealers with VOC sensor, but you can only read VOC level from MH9 screen, since by now Z-Wave protocol do not have command to read VOC level. If you do not need VOC sensor, you can ask for this special requirement from your supplier."

    Is this really a missing part in the Z-Wave protocol itself? It seems like just another value. Do you have any ideas regarding this? Reading this value on the Homey should be a very positive thing for this product!
  • TedTolboomTedTolboom Member
    edited November 2017
    Caros said:
    @TedTolboom, I have a question regarding the MH9 CO2 sensor.

    In the Netherlands most sellers sell this sensor together with the optional VOC sensor. On tweakers I found this message regarding this sensor:

    "2. For VOC(optional), actually we have been selling MH9 to our dealers with VOC sensor, but you can only read VOC level from MH9 screen, since by now Z-Wave protocol do not have command to read VOC level. If you do not need VOC sensor, you can ask for this special requirement from your supplier."

    Is this really a missing part in the Z-Wave protocol itself? It seems like just another value. Do you have any ideas regarding this? Reading this value on the Homey should be a very positive thing for this product!
    @Caros I think it used to be an optional sensor, although still mentioned in the MH9 CO2 sensor manual:
    1. VOC detection (optional)

      Device has built-in a VOC sensor, and four levels can be detected and shown on the display: Excellent, Good, Average & Poor. (VOC toxic gases include carbon monoxide, alcohol, hydrogen, methane, isobutene, ammonia and benzene, etc.) 

    But with the current versions of this sensor, the VOC sensor standardly available. It is also not mentioned (anymore) on the MCOHome website as an option. Whereas this is typically mentioned as option (example is the MH7 thermostat with or without humidity sensor).

    The Z-wave protocol is a quite formal protocol (for good reasons); it is not possible to add as manufacturer an own data type. This has to be done through an update of the specification of the Z-wave Alliance.

    The info from Tweakers is a bit outdated.
    The CO2 sensor's firmware uses the V5 version of the Multilevel Sensor command class, in which the VOC (Volatile Organic Compound) is not present. Only as of V7 has this data type been added to the specifications; likely introduced after the release of this sensor...

    As far as I'm aware (I can check with my contact at MCOHome), it is not possible to update the firmware of this device... So luckily enough, no option to add a trigger to check if too much alcohol is consumed.... ;-P
  • CarosCaros Member
    edited November 2017
    @TedTolboom, together with your information and contact with MCO Home I have this puzzle solved! :)

    Your link to V7 specifications are telling that PPM values are supported. The MH9 only gives 4 levels of values which are not supported. This was my answer from MCO Home:
    "If so, by now the VOC sensor we are using can just support 4 VOC Level: Poor, Average, Good, Excellent, and there is no Z-Wave standard protocol can read VOC level but PPM value. Additionally, because CO2 is the key feature for this product, regret that we do not have roadmap to replace VOC sensor which can display PPM value, unless there is a big order request, and for PPM VOC sensor, the cost will be much higher than our current one. "

    Thanks again for your explanation. Wasn't aware of these values been build in the protocol itself!
  • Minor change: @caros release
    v1.0.4
    Add additional productID for MH9-CO2
    Update meshdriver to 1.2.4
  • Thanks guys; this helps! It does however not correspond to the product ID's I got from the manufacturer, clarifying right now.

    I'll finalize the MCOhome app this weekend and will release it to the app store with support for:
    • Touch panel switches (1 - 4 button), e.g. MH-S314
    • MH9 CO2 sensor
    • MH10 PM2.5 sensor
    Supported languages: English & Dutch
    Supported regions: all available

    Support for the following devices will be added in a later release:
    • MH7(H)-EH Thermostat for electrical (floor) heating
    • Touch panel dimmer, e.g. MH-P411
    • micro dimmer module,  MH-P220

    Hi.
    Any status when support for MH-P220 will be added?
  • Minor change: @caros release
    v1.0.4
    Add additional productID for MH9-CO2
    Update meshdriver to 1.2.4
    @TedTolboom
    Great update, and thanks for the fast service, it works great now! :)
    Any Idea when the CO2 alarm will be triggered? Doesn't seem to do anything (yet).

  • @TedTolboom
    Can I make a (small) request for an improvement of the app? Today my Wife was Cooking for serveral hours in the kitchen. According to the documentation the maximum value of the Co2 Sensor on the screen is 2000PPM. Today this value has been reached because of the cooking (and the placement of the sensor near the kitchen). In the monitoring I than see the values bouncing between 2.000PPM and 10.000 PPM, which really 'screws' the graph.
    Do you know wether this value has been send from MCOHome or this is an bug in the app? If it's been send by MCO, are you able to intercept this value and revalue this to 2.000?
  • Caros said:
    @TedTolboom
    Can I make a (small) request for an improvement of the app? Today my Wife was Cooking for serveral hours in the kitchen. According to the documentation the maximum value of the Co2 Sensor on the screen is 2000PPM. Today this value has been reached because of the cooking (and the placement of the sensor near the kitchen). In the monitoring I than see the values bouncing between 2.000PPM and 10.000 PPM, which really 'screws' the graph.
    Do you know wether this value has been send from MCOHome or this is an bug in the app? If it's been send by MCO, are you able to intercept this value and revalue this to 2.000?
    Hi @Caros, there is no manipulation of the data reported by the device in the driver.
    Could you run the app in debug mode 'athom project --run' ? It will show the reports being received by Homey.

    Can you post the debug logging of the 2000 and 10000 reports? You might need to ask your wife to do some additional cooking...  :D
  • Hi @TedTolboom
    As soon as my wife was in the kitchen, I've turned down the ventilation so it went really fast.. :D

    As far as I can see there are two things which I noticed:
    1: The Values received from the MCO Home bounce between 2.000 and 10.000 once this limit is reached. Is there anything in this app you maybe can do to 'catch' this 10.000 value and don't show it in the statistics?
    2: Still I haven't received an CO2 alarm. Is this function working? Shouldn't the 10.000 value maybe trigger the alarm?

    Hereby the log:
    2017-11-13 17:56:34 [log] [MCOhomeApp] MCOhomeApp is running...
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] ZwaveDevice has been inited
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] ------------------------------------------
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] Node: 3f6406cd-4a88-433a-ba10-45bbb0aee94f
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] - Battery: false
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_SENSOR_MULTILEVEL
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 5
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_MULTILEVEL_GET
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_MULTILEVEL_REPORT
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_MULTILEVEL_SUPPORTED_GET_SENSOR
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_MULTILEVEL_SUPPORTED_SENSOR_REPORT
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_MULTILEVEL_SUPPORTED_GET_SCALE
    2017-11-13 17:56:34 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_MULTILEVEL_SUPPORTED_SCALE_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_SENSOR_CONFIGURATION
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 1
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_TRIGGER_LEVEL_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_TRIGGER_LEVEL_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- SENSOR_TRIGGER_LEVEL_SET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_CONFIGURATION
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 1
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- CONFIGURATION_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- CONFIGURATION_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- CONFIGURATION_SET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_NOTIFICATION
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 4
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- NOTIFICATION_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- NOTIFICATION_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- NOTIFICATION_SET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- NOTIFICATION_SUPPORTED_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- NOTIFICATION_SUPPORTED_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- EVENT_SUPPORTED_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- EVENT_SUPPORTED_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_ASSOCIATION
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 1
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- ASSOCIATION_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- ASSOCIATION_GROUPINGS_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- ASSOCIATION_GROUPINGS_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- ASSOCIATION_REMOVE
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- ASSOCIATION_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- ASSOCIATION_SET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_MANUFACTURER_SPECIFIC
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 1
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- MANUFACTURER_SPECIFIC_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- MANUFACTURER_SPECIFIC_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_VERSION
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 1
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- VERSION_COMMAND_CLASS_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- VERSION_COMMAND_CLASS_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- VERSION_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- VERSION_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] - CommandClass: COMMAND_CLASS_BASIC
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Version: 1
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] -- Commands:
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- BASIC_GET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- BASIC_REPORT
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] --- BASIC_SET
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0] ------------------------------------------
    2017-11-13 17:56:35 [log] [ManagerDrivers] [MH9-CO2] [0]
    2017-11-13 17:56:37 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 11>,
         'Sensor Type': 'CO2-level (version 3)',
         'Level (Raw)': <Buffer 02>,
         Level: { Size: 2, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 27 10>,
         'Sensor Value (Parsed)': 10000 },
      '2': null }
    2017-11-13 17:56:41 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 11>,
         'Sensor Type': 'CO2-level (version 3)',
         'Level (Raw)': <Buffer 02>,
         Level: { Size: 2, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 07 d0>,
         'Sensor Value (Parsed)': 2000 },
      '2': null }
    2017-11-13 17:56:45 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 3d>,
         'Sensor Value (Parsed)': 61 },
      '2': null }
    2017-11-13 17:57:35 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 3f>,
         'Sensor Value (Parsed)': 63 },
      '2': null }
    2017-11-13 17:57:41 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 41>,
         'Sensor Value (Parsed)': 65 },
      '2': null }
    2017-11-13 17:57:51 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 43>,
         'Sensor Value (Parsed)': 67 },
      '2': null }
    2017-11-13 17:58:05 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 05>,
         'Sensor Type': 'Relative humidity (version 2)',
         'Level (Raw)': <Buffer 01>,
         Level: { Size: 1, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 45>,
         'Sensor Value (Parsed)': 69 },
      '2': null }
    2017-11-13 17:58:36 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 11>,
         'Sensor Type': 'CO2-level (version 3)',
         'Level (Raw)': <Buffer 02>,
         Level: { Size: 2, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 27 10>,
         'Sensor Value (Parsed)': 10000 },
      '2': null }
    2017-11-13 17:58:42 [log] [ManagerDrivers] [MH9-CO2] [0] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: { '0': { value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
      '1':
       { 'Sensor Type (Raw)': <Buffer 11>,
         'Sensor Type': 'CO2-level (version 3)',
         'Level (Raw)': <Buffer 02>,
         Level: { Size: 2, Scale: 0, Precision: 0 },
         'Sensor Value': <Buffer 07 d0>,
         'Sensor Value (Parsed)': 2000 },
      '2': null }
    -------------------------------------------------
    Stopping...
  • Just noticed a small thing, which could be an lead.
    The display is also bouncing now between the value '2000' and '----'

  • viixviix Member
    edited November 2017
    Can this app add association among the switch gang's switch? Say button 4 activate button 1 on another switch via the command class or I have to go through a homey flow? Still new to this so pardon my ignorance~
  • viix said:
    Can this app add association among the switch gang's switch? Say button 4 activate button 1 on another switch via the command class or I have to go through a homey flow? Still new to this so pardon my ignorance~
    @viix yes this is possible. By adding the Node ID of the second switch to the association group corresponding to the switch. See below screenshot: 


    if you like to switch the 4th switch of switch-2 (Node ID 14) with the second switch of switch-1, you should add 14.4 (subnode 4 of node 14) to association group 2 of switch-1
  • Hi Ted,

    thank you for amazing work you are doing. Do you have any news regarding timeline for MH7 Electrical Heating thermostat support?
  • radoslav said:
    Hi Ted,

    thank you for amazing work you are doing. Do you have any news regarding timeline for MH7 Electrical Heating thermostat support?
    Hi Radoslav,

    Thanks for your feedback!.
    Realistic estimation? I hope to be able work on the MH7 and MH8 thermostats in the second half of December...
  • Hi @TedTolboom ,

    I've finally received a new MCO Home CO2 Sensor from China, it took a while... :/ 
    Anyway, the bouncing between 2000 and 10000 PPM seems to be gone after a first test! :)

    The only thing that doesn't seem to work is the CO2 Alarm. I've tried a lot of tests, but I can't trigger it anyway. Is it possible that within the app something therefor is missing?
  • I got a single and double gang high current switch that got added as a generic zwave device.. how do I get u the id your need to add it as MCO switch
  • viix said:
    I got a single and double gang high current switch that got added as a generic zwave device.. how do I get u the id your need to add it as MCO switch
    Hi @viix,
    the ID’s are mentioned in the device information...
    go to Devices tab, select device, wrench symbol, take a screenshot of the device information and post it here along with the MCOHOME type number.

    thanx
This discussion has been closed.