Bonjour à tous,
j’ai pu avancé sur le sujet en créant les xml de config et le json pour les commandes mais j’ai des phénomènes bizarres :
-
Seuls 2 paramètres de config sur les 3 créés apparaissent dans Jeedom (réglages seuil PM2.5 et seuil humidité mais il maque le seuil de température…) et j’ai l’impression que ceux qui apparaissent ne fonctionnent pas.
-
Le json et l’image ne sont apparemment pas pris en compte (les commandes sont celles par défaut qu’il y avait quand le capteur n’était pas reconnu et l’image par défaut du zwave)
D’ailleurs à force de faire des exclusions/inclusions, mon contrôleur n’est plus associé au module…
J’ai du interrompre mes tests et débrancher le module car je devais partir (le capteur n’est pas chez moi)…
Quelqu’un aurait une piste pour me débloquer ? Merci
Voici mon arbre zwave actuel :
{
"state" : "ok",
"code" : 0,
"result" : {
"associations" : [
],
"instances" : {
"1" : {
"updateTime" : 1,
"commandClasses" : {
"49" : {
"data" : {
"1" : {
"updateTime" : 1,
"help" : "",
"typeZW" : "Decimal",
"genre" : "User",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Temperature",
"val" : 0,
"pendingState" : null,
"type" : "float",
"data_items" : "Read only",
"value_id" : 72057594143588370,
"units" : "",
"write_only" : false
},
"5" : {
"updateTime" : 1,
"help" : "",
"typeZW" : "Decimal",
"genre" : "User",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Relative Humidity",
"val" : 0,
"pendingState" : null,
"type" : "float",
"data_items" : "Read only",
"value_id" : 72057594143588430,
"units" : "",
"write_only" : false
},
"updateTime" : 1
},
"name" : "COMMAND_CLASS_SENSOR_MULTILEVEL"
},
"112" : {
"data" : {
"2" : {
"updateTime" : 1,
"help" : "=0 report disabled. =10 report when change =n*0.1ug/m3",
"typeZW" : "Byte",
"genre" : "Config",
"read_only" : false,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "PM2.5 report interval",
"val" : 10,
"pendingState" : null,
"type" : "int",
"data_items" : "A byte between 0 and 100",
"value_id" : 72057594148814880,
"units" : "0.1ug/m3",
"write_only" : false
},
"4" : {
"updateTime" : 1,
"help" : "=0 report disabled. =2 report when change =n%",
"typeZW" : "Byte",
"genre" : "Config",
"read_only" : false,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Humidity report interval",
"val" : 2,
"pendingState" : null,
"type" : "int",
"data_items" : "A byte between 0 and 50",
"value_id" : 72057594148814910,
"units" : "%",
"write_only" : false
},
"updateTime" : 1
},
"name" : "COMMAND_CLASS_CONFIGURATION"
},
"134" : {
"data" : {
"0" : {
"updateTime" : 1583336488,
"help" : "",
"typeZW" : "String",
"genre" : "System",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Library Version",
"val" : "5",
"pendingState" : null,
"type" : "String",
"data_items" : "Read only",
"value_id" : 72057594153369600,
"units" : "",
"write_only" : false
},
"1" : {
"updateTime" : 1583336488,
"help" : "",
"typeZW" : "String",
"genre" : "System",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Protocol Version",
"val" : "3.67",
"pendingState" : null,
"type" : "String",
"data_items" : "Read only",
"value_id" : 72057594153369620,
"units" : "",
"write_only" : false
},
"2" : {
"updateTime" : 1583336488,
"help" : "",
"typeZW" : "String",
"genre" : "System",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Application Version",
"val" : "1.03",
"pendingState" : null,
"type" : "String",
"data_items" : "Read only",
"value_id" : 72057594153369630,
"units" : "",
"write_only" : false
},
"updateTime" : 1583336488
},
"name" : "COMMAND_CLASS_VERSION"
},
"updateTime" : 1,
"data" : {
"updateTime" : 1
}
}
},
"updateTime" : 1583402408
},
"groups" : {
"1" : {
"associations" : [
],
"maximumAssociations" : 1,
"pending" : 1,
"label" : "Notification"
},
"updateTime" : 1583402408
},
"command_classes" : {
"0" : {
"hex" : "0x00",
"name" : "COMMAND_CLASS_NO_OPERATION"
},
"32" : {
"hex" : "0x20",
"name" : "COMMAND_CLASS_BASIC"
},
"49" : {
"hex" : "0x31",
"name" : "COMMAND_CLASS_SENSOR_MULTILEVEL"
},
"112" : {
"hex" : "0x70",
"name" : "COMMAND_CLASS_CONFIGURATION"
},
"114" : {
"hex" : "0x72",
"name" : "COMMAND_CLASS_MANUFACTURER_SPECIFIC"
},
"133" : {
"hex" : "0x85",
"name" : "COMMAND_CLASS_ASSOCIATION"
},
"134" : {
"hex" : "0x86",
"name" : "COMMAND_CLASS_VERSION"
}
},
"last_notification" : {
"code" : 1,
"help" : "Messages that timeout will send a Notification with this code",
"description" : "Timeout",
"next_wakeup" : null,
"receiveTime" : 1583402408
},
"data" : {
"isReady" : {
"updateTime" : 1583402408,
"value" : true
},
"isRouting" : {
"value" : true
},
"isZwavePlus" : {
"value" : false
},
"basicType" : {
"value" : 4
},
"isListening" : {
"value" : true
},
"is_enable" : {
"value" : true
},
"is_manufacturer_specific_ok" : {
"enabled" : true,
"value" : true
},
"genericType" : {
"value" : 33
},
"isAwake" : {
"updateTime" : 1583402408,
"value" : true
},
"manufacturerProductId" : {
"hex" : "0x3102",
"value" : 12546
},
"statistics" : {
"delivered" : 86,
"total" : 23,
"deliveryTime" : 35
},
"isEnable" : {
"value" : true
},
"specificType" : {
"value" : 1
},
"neighbours" : {
"value" : [
1
]
},
"maxBaudRate" : {
"value" : 40000
},
"isSecurity" : {
"value" : false
},
"state" : {
"value" : "Complete"
},
"version" : {
"value" : 4
},
"location" : {
"value" : "aucun"
},
"manufacturerId" : {
"hex" : "0x015f",
"value" : 351
},
"type" : {
"value" : "Routing Multilevel Sensor"
},
"product_name" : {
"value" : "MH10-PM2.5-WD PM2.5 Monitor"
},
"pending_changes" : {
"count" : 0
},
"battery_level" : {
"value" : null
},
"description" : {
"product_name" : "MH10-PM2.5-WD PM2.5 Monitor",
"name" : "6 MH10-PM2.5-WD PM2.5 Monitor",
"location" : "aucun"
},
"isVirtual" : {
"value" : ""
},
"isFrequentListening" : {
"value" : false
},
"wakeup_interval" : {
"next_wakeup" : null,
"value" : null
},
"is_neighbours_ok" : {
"neighbors" : 1,
"enabled" : true,
"value" : true
},
"can_wake_up" : {
"value" : false
},
"lastReceived" : {
"updateTime" : 1583402408
},
"isBeaming" : {
"value" : true
},
"name" : {
"value" : "6 MH10-PM2.5-WD PM2.5 Monitor"
},
"manufacturerProductType" : {
"hex" : "0x0a01",
"value" : 2561
},
"is_groups_ok" : {
"enabled" : true,
"value" : false
},
"isSecured" : {
"enabled" : false,
"value" : false
},
"vendorString" : {
"value" : "Mcohome"
},
"isInfoReceived" : {
"value" : true
},
"isFailed" : {
"value" : true
},
"security" : {
"value" : 0
}
},
"multi_instance" : {
"instances" : 1,
"support" : false
}
}
}
Voici dans le détail de ce que j’ai fait :
- Création du fichier « mh10.xml » dans le dossier « plugins/openzwave/resources/openzwaved/config/mcohome » :
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="1">
<!--MCOHome PM2.5 Monitor MH10 -->
<!-- Configuration -->
<CommandClass id="112">
<Value type="byte" genre="config" instance="1" index="2" label="PM2.5 report interval" units="0.1ug/m3" min="0" max="100" size="1" value="10">
<Help>=0 report disabled. =10 report when change =n*0.1ug/m3</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="3" label="Temperature report interval" units="0.5°c" min="0" max="100" size="1" value="1">
<Help>=0 report disabled. =1 report when change =n*0.5c</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="4" label="Humidity report interval" units="%" min="0" max="50" size="1" value="2">
<Help>=0 report disabled. =2 report when change =n%</Help>
</Value>
</CommandClass>
<!-- Association Groups -->
<CommandClass id="133">
<Associations num_groups="1">
<Group index="1" max_associations="1" label="Notification" auto="false"/>
</Associations>
</CommandClass>
</Product>
- Ajout d’une ligne dans le fichier « manufacturer_specific.xml » dans le dossier « plugins/openzwave/resources/openzwaved/config » :
<Manufacturer id="015f" name="Mcohome">
...
<Product type="0a01" id="3102" name="MH10-PM2.5-WD PM2.5 Monitor" config="mcohome/mh10.xml"/>
...
</Manufacturer>
- Création du fichier « 351.12546.2561_mco.home.mh10.json » dans le dossier « plugins/openzwave/core/config/devices »
(PS : je ne sais pas si la ligne comlink est utile, j’ai laissé la valeur de mon fichier d’origine d’un autre capteur, je ne sais pas quoi mettre sinon) :
{
"name": "PM2.5 Monitor (MH10-PM25-WD)",
"type": "Multicapteurs",
"comlink": "3734-mcohome-capteur-d-humidite-temperature-et-co2-avec-ecran-z-wave-mh9-co2-4251295700229",
"remark": "",
"imglink": "351.12546.2561_mco.home.mh10",
"commands": [
{
"name": "PM2.5",
"type": "info",
"isVisible": 1,
"isHistorized": 1,
"configuration": {
"class": 49,
"value": "",
"index": 35,
"instance": 1,
"minValue": 0,
"maxValue": 255
},
"subtype": "numeric",
"display": {
"generic_type": "GENERIC"
},
"unite": "ug/m3"
},
{
"name": "Température",
"type": "info",
"isVisible": 1,
"isHistorized": 1,
"configuration": {
"class": 49,
"value": "",
"index": 1,
"instance": 1,
"minValue": -9,
"maxValue": 50
},
"subtype": "numeric",
"display": {
"generic_type": "TEMPERATURE"
},
"unite": "°C"
},
{
"name": "Humidité",
"type": "info",
"isVisible": 1,
"isHistorized": 1,
"configuration": {
"class": 49,
"value": "",
"index": 5,
"instance": 1,
"minValue": 0,
"maxValue": 100
},
"subtype": "numeric",
"display": {
"generic_type": "HUMIDITY"
},
"unite": "%"
}
]
}
- Création du fichier image « 351.12546.2561_mco.home.mh10.jpg » dans le même dossier : voir image jointe
Et avec tout ca, quand ca marchera, j’espère que la valeur de PM 2.5 sera enfin récupérée sur l’index 35 de la class 49 (selon échange de mail avec le fabricant).