# OMA LWM2M

OMA Lightweight M2M (LwM2M) est un protocole de communication IoT standardisé par l'Open Mobile Alliance pour le machine to machine (M2M) et l'Internet des objets (IoT) permettant à la fois la standardisation du format de sortie des données et des actions de gestion de périphériques. Le standard LwM2M définit le protocole de communication de la couche application entre un serveur LwM2M et un client LwM2M situé dans un objet IoT$^,$.
LwM2M simplifie la gestion des objets IoT et permet aux objets de différents fournisseurs de coexister dans un écosystème IoT. À l'origine, LwM2M reposait sur le protocole CoAP (Constrained Application Protocol), mais les versions ultérieures de LwM2M prennent également en charge d'autres protocoles de transfert.
Les fonctionnalités de LwM2M comprennent le provisionning à distance des informations d'identification de sécurité (bootstrap), les mises à jour de micrologiciels à distance (FOTA), la gestion de la connectivité (par exemple, pour le cellulaire et le WiFi), le diagnostic et le dépannage à distance des appareils.
En combinaison avec le protocole LwM2M, le modèle de données LwM2M permet d'uniformiser les formats des données collectées grâce à des "objets LwM2M" prédéfinis et identiques pour tous les fabricants d'objets. Ces modèles, en grand nombre, permettent de répondre à de nombreux cas d'usage (relevé de température, pression, luminosité...). Ces modèles de données peuvent aussi être étendus et prendre en compte des modèles non encore définis par la norme (Custom objets)

## Versions

En 2018, l'IPSO Alliance a fusionné avec l'Open Mobile Alliance (OMA) pour former OMASpecWorks. OMASpecWorks est responsable de la maintenance et du développement de LwM2M. Jusqu'à présent, les versions suivantes de LwM2M ont été publiées:

### OMA LwM2M 1.0

LwM2M 1.0 a été publié en février 2017. Elle a introduit les fonctionnalités suivantes ci-dessous pour la version initiale :
* Modèle de ressources basé sur des objets simples.
* Opérations de création/récupération/mise à jour/suppression/configuration des ressources.
* Observation/notification des ressources
* Formats de données TLV/JSON/Plain Text/Opaque
* Transport UDP et SMS
* Sécurité basée sur DTLS.
* Mode de mise en file d'attente, par exemple pour les appareils en sommeil
* Support de plusieurs serveurs LwM2M
* Objets LwM2M de base : Sécurité LwM2M, serveur LwM2M, contrôle d'accès, dispositif, surveillance de la connectivité, mise à jour du micrologiciel, localisation, statistiques de connectivité.

### OMA LwM2M 1.1

LwM2M 1.1 a été publié en juin 2018. Elle a introduit les fonctionnalités supplémentaires suivantes :
* Amélioration des capacités de démarrage de LwM2M permettant des mises à jour incrémentales.
* Amélioration de la prise en charge des déploiements Infrastructure à clé publique (ICP).
* Introduction de mécanismes améliorés de séquence d'enregistrement par le client LwM2M au(x) serveur(s) LwM2M.
* Prise en charge de LwM2M sur TCP/TLS
* Prise en charge de la sécurité de la couche application pour LwM2M basée sur OSCORE.
* Amélioration de la prise en charge du LwM2M sur les réseaux étendus à faible consommation d'énergie, notamment le 3GPP LTE-M et les réseaux NB-IoT et LoRaWAN.
* Opérations LwM2M étendues pour permettre l'accès au niveau de l'instance de ressource.
* Amélioration des performances pour la récupération et la mise à jour des ressources de plusieurs objets.
* Support de JSON en utilisant SenML avec la sérialisation CBOR pour une charge utile compressée avec une transmission très efficace.
* Ajout de nouveaux types de données

### OMA LwM2M 1.2

LwM2M 1.2 a été publié en novembre 2020. Elle introduit les fonctionnalités supplémentaires suivantes :
* Nouveaux transports pour LwM2M ; cela permet à la messagerie LwM2M d'être transmise sur MQTT et sur HTTP.
* Optimisation de l'interface d'amorçage : réduction de la quantité de données et du nombre de messages transmis pendant l'échange d'amorçage.
* Optimisation de l'interface d'enregistrement, ce qui réduit la quantité de données transmises lors des échanges d'enregistrement.
* Optimisations pour l'interface de rapport d'information ; les attributs d'observation peuvent maintenant être inclus dans une opération d'observation.
* Prise en charge de la fonctionnalité de passerelle LwM2M ; cela permet aux dispositifs IoT non-LwM2M ainsi qu'aux dispositifs LwM2M derrière une passerelle d'être connectés à l'écosystème LwM2M et de gérer ces dispositifs à distance.
* Nouveau format de codage hautement optimisé basé sur CBOR, appelé LwM2M CBOR.
* Fonctionnalité améliorée pour les mises à jour de firmware
* Définition de nouveaux attributs de notification (bord, notification confirmable et file d'attente historique maximale). Le bord permet de déclencher les notifications sur les fronts montants et descendants. Les notifications confirmables permettent de contrôler la fiabilité des transmissions de notifications. La file d'attente historique maximale permet de contrôler l'utilisation des données de séries chronologiques.
* Mises à jour pour utiliser les derniers protocoles de sécurité de communication basés sur TLS et DTLS. 1.3 (ainsi que l'utilisation de l'ID de connexion) et de la configuration associée.
* Nouvel objet pour la configuration des dispositifs liés à la 5G-NR.