LoraGate Lixee / configuration et premiers tests

La LoraGate est un modem Lora qui permet de recevoir et émettre des données sur un réseau LoraWan. Elle est disponible dans la boutique Lixee.

Prérequis : disposer d’un compte sur le réseau The Thinks Network (TTN), d’une gateway Lora (exemple en indoor facilement configurable sur TTN : Gateway TTIG) ou être à porté d’une antenne publique du réseau TTN et avoir créé son application dans TTN.

Création du device loragate dans TTN

Dans la console TTN au niveau application, ajouter un end device :

Choisir l’onglet « manually » :

Choisir les paramètres suivants :

Dans les paramètres avancés, laisser l’activation OTAA et choisir la classe C (on peut choisir d’autres options mais la suite de cette doc se base sur cette configuration) :

Générer le DevEUI et l’AppKEY, et remplir l’AppEUI avec des zéros.

Choisir un identifiant pour le device et valider la création :

Configuration de la loragate

J’utilise ici Tera Term sous Windows pour envoyer les commandes AT.

Brancher la loragate sur un port usb et relever le port série dans le gestionnaire de périphériques de windows.

Dans Tera Term, créer une nouvelle connexion série :

Dans le menu Setup -> serial port, configurer la vitesse sur 115200 :

Ouvrir la fenêtre des commandes broadcast depuis le menu Control -> Broadcast command et décocher « Realtime mode » et cocher « send to this process only » :

Tester la connexion en envoyant la commande AT+CGMI?. La réponse devrait être la suivante :

Pour configurer la clef, envoyer les commandes suivantes :

AT+CDEVEUI=XXXXXXXXXXXXXXXX en remplaçant les X par les 16 caractères du DevEUI généré sur TTN

AT+CAPPEUI=0000000000000000

AT+CAPPKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX en remplaçant les X par les 32 caractères de l’AppKey généré sur TTN

AT+CJOINMODE=0 (correspond au mode OTAA)

AT+CCLASS=2 (correspond à la classe C)

Puis joindre le réseau avec la commande suivante :

AT+CJOIN=1,1,10,8

Si tout s’est bien passé, la connexion devrait être acceptée. A vérifier dans l’onglet « Live Data » du device dans TTN :

Pour tester l’envoi d’un message, envoyer la commande suivante :

AT+DTRX=1,2,10,01253456789

Dans TTN, les bytes envoyés (01 23 45 67 89) devraient être visibles dans le MAC payload :

Configuration du payload formatter dans TTN

Afin de rendre les données disponibles dans un système domotique (par exemple home assistant), il peut être utile (et même nécessaire dans le cas de HA) de formatter le message en json. Le formatage s’effectue dans l’onglet « Payload formatters » dans TTN.

Choisir le formatter suivant :

Puis saisir le code javascript dans la zone « formatter code ». Dans cette exemple, les bytes sont décodés en texte puis le résultat est envoyé dans le champ « value ».

function decodeUplink(input) {
    var encodedString = String.fromCharCode.apply(null, input.bytes),
    decodedString = decodeURIComponent(escape(encodedString));
  return {
    data: {
      value: decodedString
    },
    warnings: [],
    errors: []
  };
}

Par exemple si on envoie le message suivant :

AT+DTRX=1,2,8,54455354

le résultat dans TTN est maintenant un payload json :

lisible par exemple avec l’intégration TTN de HA :

Intégration TTN dans Home Assistant :

Attention, l’intégration TTN native ne support que TTN V2, TTN est maintenant en V3. Il faut installer l’intégration suivante, par exemple avec HACS :

https://github.com/angelnu/home_assistant_thethingsnetwork

(doc à compléter…)