Ajout Micro Module Z-Wave MCO MH-S220

Bonjour,

je souhaiterai faire reconnaitre le micro-module proprement par Jeedom mais j’avoue que cela dépasse mes compétences pour le moment.

image

Même à la lecture de ce super topic https://community.jeedom.com/t/ajout-du-micro-dimmer-mcohome-mh-p220-dans-les-materiels-compatibles/49077 je ne comprends pas tout.

J’ai bien trouvé un fichier de config sur Github : MHS220.xml mais la photo et le modèle ne remontent pas.

Une bonne âme pourrait-elle m’aider pour faire un truc propre ? :slight_smile:

voici les quelques infos que j’ai:

Manufacturer: MCOHome
type=2201
id=1252
arbre Z-wave:

{
"state" : "ok",
"code" : 0,
"result" : {
"associations" : [
],
"instances" : {
"1" : {
"updateTime" : 1613153131,
"commandClasses" : {
"37" : {
"data" : {
"0" : {
"updateTime" : 1613153131,
"help" : "",
"typeZW" : "Bool",
"genre" : "User",
"read_only" : false,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Switch",
"val" : true,
"pendingState" : null,
"type" : "bool",
"data_items" : "True or False",
"value_id" : "72057594462158848",
"units" : "",
"write_only" : false
},
"updateTime" : 1613153131
},
"name" : "COMMAND_CLASS_SWITCH_BINARY"
},
"39" : {
"data" : {
"0" : {
"updateTime" : 1613153131,
"help" : "",
"typeZW" : "List",
"genre" : "System",
"read_only" : false,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Switch All",
"val" : "On and Off Enabled",
"pendingState" : null,
"type" : "List",
"data_items" : "Disabled;Off Enabled;On Enabled;On and Off Enabled",
"value_id" : "72057594470580228",
"units" : "",
"write_only" : false
},
"updateTime" : 1613153131
},
"name" : "COMMAND_CLASS_SWITCH_ALL"
},
"43" : {
"data" : {
"0" : {
"updateTime" : 1,
"help" : "",
"typeZW" : "Byte",
"genre" : "User",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Scene Activation Number",
"val" : 0,
"pendingState" : null,
"type" : "int",
"data_items" : "Read only",
"value_id" : "72057594462257153",
"units" : "",
"write_only" : false
},
"updateTime" : 1
},
"name" : "COMMAND_CLASS_SCENE_ACTIVATION"
},
"134" : {
"data" : {
"0" : {
"updateTime" : 1613153130,
"help" : "",
"typeZW" : "String",
"genre" : "System",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Library Version",
"val" : "3",
"pendingState" : null,
"type" : "String",
"data_items" : "Read only",
"value_id" : "72057594472136711",
"units" : "",
"write_only" : false
},
"1" : {
"updateTime" : 1613153130,
"help" : "",
"typeZW" : "String",
"genre" : "System",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Protocol Version",
"val" : "4.05",
"pendingState" : null,
"type" : "String",
"data_items" : "Read only",
"value_id" : "72057594472136727",
"units" : "",
"write_only" : false
},
"2" : {
"updateTime" : 1613153130,
"help" : "",
"typeZW" : "String",
"genre" : "System",
"read_only" : true,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Application Version",
"val" : "2.01",
"pendingState" : null,
"type" : "String",
"data_items" : "Read only",
"value_id" : "72057594472136743",
"units" : "",
"write_only" : false
},
"updateTime" : 1613153130
},
"name" : "COMMAND_CLASS_VERSION"
},
"updateTime" : 1613153131,
"data" : {
"updateTime" : 1613153131
}
}
},
"2" : {
"updateTime" : 1613153131,
"commandClasses" : {
"37" : {
"data" : {
"0" : {
"updateTime" : 1613153131,
"help" : "",
"typeZW" : "Bool",
"genre" : "User",
"read_only" : false,
"expected_data" : null,
"poll_intensity" : 0,
"name" : "Switch",
"val" : true,
"pendingState" : null,
"type" : "bool",
"data_items" : "True or False",
"value_id" : "144115188500086784",
"units" : "",
"write_only" : false
},
"updateTime" : 1613153131
},
"name" : "COMMAND_CLASS_SWITCH_BINARY"
},
"updateTime" : 1613153131,
"data" : {
"updateTime" : 1613153131
}
}
},
"updateTime" : 1613153131
},
"groups" : {
"1" : {
"associations" : [
[
1,
0
]
],
"maximumAssociations" : 1,
"pending" : 1,
"label" : "Group 1"
},
"2" : {
"associations" : [
],
"maximumAssociations" : 5,
"pending" : 1,
"label" : "Group 2"
},
"3" : {
"associations" : [
],
"maximumAssociations" : 5,
"pending" : 1,
"label" : "Group 3"
},
"updateTime" : 1613153131
},
"command_classes" : {
"0" : {
"hex" : "0x00",
"name" : "COMMAND_CLASS_NO_OPERATION"
},
"32" : {
"hex" : "0x20",
"name" : "COMMAND_CLASS_BASIC"
},
"37" : {
"hex" : "0x25",
"name" : "COMMAND_CLASS_SWITCH_BINARY"
},
"39" : {
"hex" : "0x27",
"name" : "COMMAND_CLASS_SWITCH_ALL"
},
"43" : {
"hex" : "0x2b",
"name" : "COMMAND_CLASS_SCENE_ACTIVATION"
},
"96" : {
"hex" : "0x60",
"name" : "COMMAND_CLASS_MULTI_CHANNEL_V2"
},
"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"
},
"142" : {
"hex" : "0x8e",
"name" : "COMMAND_CLASS_MULTI_INSTANCE_ASSOCIATION"
}
},
"last_notification" : {
"code" : 2,
"help" : "Report on NoOperation message sent completion",
"description" : "NoOperation",
"next_wakeup" : null,
"receiveTime" : null
},
"data" : {
"isReady" : {
"updateTime" : 1613153131,
"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" : 16
},
"isAwake" : {
"updateTime" : 1613153131,
"value" : true
},
"manufacturerProductId" : {
"hex" : "0x1252",
"value" : 4690
},
"statistics" : {
"delivered" : 100,
"total" : 20,
"deliveryTime" : 24
},
"isEnable" : {
"value" : true
},
"specificType" : {
"value" : 1
},
"neighbours" : {
"value" : [
8,
1,
10,
16
]
},
"maxBaudRate" : {
"value" : 40000
},
"isSecurity" : {
"value" : false
},
"state" : {
"value" : "Complete"
},
"version" : {
"value" : 4
},
"location" : {
"value" : "Garage"
},
"manufacturerId" : {
"hex" : "0x015f",
"value" : 351
},
"type" : {
"value" : "Binary Power Switch"
},
"product_name" : {
"value" : "Unknown: type=2201, id=1252"
},
"pending_changes" : {
"count" : 0
},
"battery_level" : {
"value" : null
},
"description" : {
"product_name" : "Unknown: type=2201, id=1252",
"name" : "Radiateur Buanderie",
"location" : "Garage"
},
"isVirtual" : {
"value" : ""
},
"isFrequentListening" : {
"value" : false
},
"wakeup_interval" : {
"next_wakeup" : null,
"value" : null
},
"is_neighbours_ok" : {
"neighbors" : 4,
"enabled" : true,
"value" : true
},
"can_wake_up" : {
"value" : false
},
"lastReceived" : {
"updateTime" : 1613153131
},
"isBeaming" : {
"value" : true
},
"name" : {
"value" : "Radiateur Buanderie"
},
"manufacturerProductType" : {
"hex" : "0x2201",
"value" : 8705
},
"is_groups_ok" : {
"enabled" : true,
"value" : true
},
"isSecured" : {
"enabled" : false,
"value" : false
},
"vendorString" : {
"value" : "Mcohome"
},
"isInfoReceived" : {
"value" : true
},
"isFailed" : {
"value" : false
},
"security" : {
"value" : 0
}
},
"multi_instance" : {
"instances" : 2,
"support" : true
}
}
}

Manuel du fabricant

Image du produit:

Bonjour @famartinfr, il faut tout d’abord que tu vérifies que tous les paramètres intéressants et avec les bonnes options soient présents dans ton fichier MHS220.xml. Pour faire cela, j’ai comparé la doc avec le fichier xml que j’avais récupéré au même endroit que toi. J’ai par exemple rajouté des labels pour que cela soit plus explicite. Une fois ce fichier créé il faut le mettre dans le répertoire html/plugins/openzwave/resources/openzwaved/config/mcohome de ton jeedom.

Ensuite, tu crées un fichier json qui va avoir 2 parties, la première pour les commandes à créer lors de l’inclusion du module et la deuxième pour les paramètres de celui ci. Dans la 1ère partie, tu peux décider ce que tu veux en option comme par exemple si cette commande va être visible « isVisible »: 1, ou non « isVisible »: 0, si elle va être historisée, … Et dans la partie configuration tu devras retrouver exactement les mêmes paramètres que dans ton fichier xml ci dessus où les index devront se retrouver dans le json en « 2 » : { … par exemple pour l’index 2. Gaffe dans ce fichier json à bien respecter la syntaxe, une virgule oubliée et ça ne fonctionne pas… Tu as des sites sur lesquels tu peux coller ton code et qui te disent où tu as fait des erreurs (j’ai penser à en chercher à la fin quand j’avais presque tout dé-bugué). Tu nommes ce fichier json 351.2201.1252_mh.s220.json et tu le copies dans html/plugins/openzwave/core/config/devices/mco_351 de ton jeedom. Tu donnes le même nom eu fichier photo mais avec l’extension .jpg et tu le colles au même endroit.

Ensuite tu modifies le fichier manufacturer_specific.xml que tu trouves là: html/plugins/openzwave/resources/openzwaved/config/ en rajoutant la ligne <Product type="889" id="4E4" name="MH-S220 Micro Switch" config="mcohome/mhs220.xml"/> dans la section propre à MCO <Manufacturer id="015f" name="Mcohome"> (dans mon jeedom c’est à partir de la ligne 924)

Le MH-P220 étant dimmer il y a plus de paramètres à gérer tu peux t’inspirer de ce que j’ai fait pour recréer tes fichiers en simplifiant.

N’hésite pas si ce n’est pas clair.

++

1 « J'aime »

Je vais vais me pencher la dessus plus sérieusement.

Ce que j’aimerais faire c’est que ce soit aussi intégré à Jeedom pour la communauté

Oui c’est clair mais déjà si tu mets à disposition les fichiers xml et json alors n’importe qui n’a plus qu’à uploader ceux ci et à modifier le fichier de config de openzwave. Le problème surtout c’est de le refaire à chaque mise à jour du plugin :wink:

Bonjour à tu réussi à intégrer le module ? Parce que je voudrais faire pareil avec un MH-S222.

Si tu suis ce que j’ai fait il n’y a pas de raison que tu n’y arrives pas