ldleman / yana-server

Interface PHP de domotique Y.A.N.A (You Are Not Alone)
http://projet.idleman.fr/yana
107 stars 59 forks source link

radioRelay et Yana4all #237

Open valentin8709 opened 8 years ago

valentin8709 commented 8 years ago

Salut! Alors voilà juste pour proposer de mettre à jour le plugin radioRelay afin de le rendre compatible avec Yana4All. De ce que j'ai compris, il faut juste modifier les deux lignes de json en les remplaçant par une connexion avec le socket. C'est ce que j'ai fais et ça fonctionne, le problème est qu'à chaque mise à jour de Yana, mes modifs persos ne sont pas prises en compte (pour les plugins qui ne sont pas les miens bien sûr).

Du coup est-ce qu'il y aurait possibilité de mettre à jour ce plugin qui doit être utilisé par pas mal d'utilisateurs?

Merci d'avance =)

ldleman commented 8 years ago

A ma connaissance ce plugin est pourtant compatible avec yana4All, tu as fait quelles adaptations? Je reverifierais qu'il fonctionne bien avec le nouveau client.

valentin8709 commented 8 years ago

Alors pour l'instant j'ai un petit bug sur le plugin avec un "permission denied" (bien que les permissions soient correct sur les fichiers), mais je pense que c'est dû à une mauvaise manip et non pas au coeur de Yana ou au plugin, faut que je regarde de plus près. Sinon je pensais que le json n'était plus compatible avec le nouveau client et qu'il fallait remplacer le:

$json = json_encode($response); echo ($json=='[]'?'{}':$json);

par:

$cli = new Client();
$cli->connect();
$cli->talk($response);
$cli->disconnect();

En tout cas c'est ce que j'ai fais avec mes plugins et ça fonctionne. Du coup je me trompe en disant que le json n'est plus pris en compte?

ldleman commented 8 years ago

En fait Yana4All est censé pouvoir prendre les deux formats en compte, l'ancien et le nouveau, ceci pour des raisons de retro-compabilité avec les plugins utilisateurs qui ne sont pas mis à jour pour le nouveau protocol.

Les deux formats utilisent du JSON, c'est juste le protocole qui change (l'ancien utilise le HTTP, le nouveau c'est du pure SOCKET pour plus d'instantané et un échange bidirectionnel).

Donc ton remplacement n'est pas mauvais (au contraire ça utilise le format le plus récent et performant) celà dit le plugin devrait fonctionner sans même avec yana4all.

Après wirerelay étant un plugin officiel je ferais bien de donner l'exemple en le modifiant pour le nouveau protocole donc je vais me créer un billet suggestion histoire de penser a mettre tous les offi à jour. :)