Envoi de message Element / Matrix depuis un ESP

A priori, on peut passer par une simple requête web, si compte existant sur lequel on veut poster.

Il y a tout ce qu'il faut ici du coup : https://www.matrix.org/docs/guides/client-server-api et il y a même un exemple complet ici que je vais regarder de près : https://jsfiddle.net/gh/get/jquery/1.8.3/matrix-org/matrix.org/tree/master/jekyll/_posts/howtos/jsfiddles/example_app

En JS, aux variables près :

var sendMessage = function(roomId, body) {
    var msgId = $.now();

    var url = "http://localhost:8008/_matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token";
    url = url.replace("$token", accountInfo.access_token);
    url = url.replace("$roomid", encodeURIComponent(roomId));

    var data = {
        msgtype: "m.text",
        body: body
    };

    $.ajax({
        url: url,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(data),
        dataType: "json",
        success: function(data) {
            $("#body").val("");
        },
        error: function(err) {
            alert(JSON.stringify($.parseJSON(err.responseText)));  
        }
    });
};

Installation d'un serveur local Element ?

Tiens ici la doc d'install du serveur Matrix : https://github.com/matrix-org/synapse/blob/master/INSTALL.md#debianubuntu Reste à voir si çà passe sur un Pi. C'est du Python 3 à priori.

Qestion

Mais pourquoi installer (et administrer) un serveur en local ? Pourquoi ne pas taper directement le salon sensor56 par exemple ?

Oui, probablement qu'on peut aller taper directement le serveur sur lequel on est inscrit. Là c'est pour la démo. Mais en fait, faut essayer. L'important est que le princpe n'est pas plus compliqué que d'envoyer du HTML. Par contre, le serveur local vient peut être simplifier l'authentification et il sert de passerelle de toute façon vers le serveur où tu es inscrit car tous les serveurs Matrix se voient.

Ici explication : https://simplabs.com/blog/2020/11/02/bringing-matrix-to-elixir/

Lu sur le fil Te Domum :

"Sur le salon TeDomum, tu utilises "ton" serveur (en l'occurence matrix.org) pour intéragir avec le salon. Quand le serveur matrix.org reçoit un nouveau message de ta part sur ce salon, il enregistre le message dans sa copie du salon puis envoie le message à tous les serveurs qui sont dans ce salon. Chaque serveur reçoit la copie du message et l'enregistrent à leur tour. Puis les messages sont distribués aux clients qui attendent qu'on leur transmette des informations.

En gros: Toi -> matrix.org -> tous les serveurs participants -> les utilisateurs participants Comme j'ai dit, chaque serveur qui participe a la copie de l'historique (je simplifie) et de l'état du salon "