Page 1 sur 2

Nouvelle Appli Domoticz

Publié : 08 août 2019, 11:13
par 6l3m
Bonjour à tous,

Je viens vous faire part d'une nouvelle appli que je viens de déployer et qui utilise l'API Domoticz : ngx-domoboard (https://github.com/6l3m/ngx-domoboard).

C'est une PWA, c'est à dire comportement quasi-natif, mais à partir du navigateur. On peut néanmoins l'installer et s'en servir comme une application native en choisissant l'option d'ajout à l'écran d’accueil.

Les prérequis sont un serveur Domoticz et un accès par https avec certificat valide.

Pour plus d'infos, vous pouvez consulter le readme sur Github, ou moi directement...

Tout retours, avis, suggestions seront grandement appréciés !

Re: Nouvelle Appli Domoticz

Publié : 08 août 2019, 11:32
par vil1driver
Salut,

Merci.

Un certificat auto signé est accepté ?

A voir la checkbox ssl, il est autorisé le http également ?

Re: Nouvelle Appli Domoticz

Publié : 08 août 2019, 12:55
par 6l3m
Salut,

Alors, pour les certificats, l'appli est assez exigeante en production.

Cela vient du fait que les PWA fonctionnent avec un service worker qui proxy les requêtes au serveur. Cela permet d'utiliser le cache du navigateur et d'avoir un comportement similaire à celui d'avoir téléchargé une appli native, mais c'est aussi un risque en ce qui concerne les attaques MITM.

C'est pourquoi toutes les requêtes doivent se faire en https avec certificat d'une autorité reconnue par le navigateur, donc pas de certificat auto-signé, ou il faut configurer chaque navigateur sur lequel tu veux utiliser l'appli.

Si tu veux obtenir un certificat pour ton serveur domoticz, il y a un très bon tuto pour ça (https://www.domoticz.com/wiki/Native_se ... ts_Encrypt), mais qui suppose que tu as déjà un domaine à toi. Pour un tuto plus complet (et en français !) : https://projetsdiy.fr/securiser-domotic ... net-https/.

Maintenant, tu auras remarqué que le code est open source. Tu peux donc le télécharger et jouer avec en le déployant localement. Dans ce cas, on enregistre pas de service worker dans le navigateur et donc pas besoin de https ou le certificat domoticz auto-signé du serveur par défaut suffit.

Re: Nouvelle Appli Domoticz

Publié : 08 août 2019, 13:24
par vil1driver
Merci pour les précisions.
Donc un usage totalement local est possible, impec.

Re: Nouvelle Appli Domoticz

Publié : 08 août 2019, 15:15
par 6l3m
De rien.

Pour déployer l'appli en local, il faut avoir nodejs et npm d'installés (https://nodejs.org/en/).

Se mettre ensuite à la racine du projet et installer les dépendances en lançant "npm i".

Démarrer le serveur de dev en tapant "npm run start".

Se rendre à l'adresse "localhost:4200" sur le navigateur.

Re: Nouvelle Appli Domoticz

Publié : 08 août 2019, 16:13
par vil1driver
Penses tu que tu pourrais nous mettre à disposition des packages pre-build que nous n'aurions qu'à déposer dans le dossier domoticz/www/ngx-domo ?

Un peu comme ce que nous offre reacticz

https://github.com/domoticz/Reacticz/bl ... /README.md

Je t'invite également à te rapprocher de Domoticz pour que ton projet rejoigne le leur sur github (a ta convenance) pour plus de visibilité

Encore merci pour ton travail, je ne pourrai pas tester rapidement mais te promet un retour..

Re: Nouvelle Appli Domoticz

Publié : 08 août 2019, 16:55
par 6l3m
En fait, la démarche pour obtenir le build est identique à celle de Reacticz.

Il faut passer par un "npm install" pour les dépendances, puis "npm run build". La seule différence est que le dossier où va se trouver le build s'appelle "dist" et non "build".

Je vais faire une section sur le readme pour le build local.

Sinon, je n'ai jamais testé le déploiement sur le serveur domoticz, je ferai un retour la dessus également.

Re: Nouvelle Appli Domoticz

Publié : 10 août 2019, 14:39
par vil1driver
en modifiant angular.json avant build, ainsi:

Code : Tout sélectionner

"baseHref": "./",
on obtient quelque-chose d'utilisable directement depuis le dossier www de domoticz

Code : Tout sélectionner

http(s)://ip_domoticz:port/ngx-domoboard/
avis à chaud,
interface agréable,
la configuration est simple (peut-être trop..)
je n'ai pas trouvé comment réorganiser/restreindre la liste..
les switchs protégés, les sélecteurs, ne sont pas utilisables.. (sauf erreur)
c'est très réactif pour la commande, pour l'affichage il faut attendre le rafraîchissement automatique (comme domoticz)
en l'état je reste sur réacticz, désolé

sinon, certainement de ma faute, lorsque je veux directement accéder à ngx-domoboard/devices/switches j'ai un internal server error, alors que sur https://6l3m.github.io/ngx-domoboard/devices/switches ça passe bien..
le retour par l'accueil semble ne pas se faire.. (peut-être à cause de la modification du baseHref.. un chemin absolu aurait il été préférable.)

Re: Nouvelle Appli Domoticz

Publié : 10 août 2019, 15:46
par 6l3m
Salut,

Merci pour le retour.

En fait, pas besoin de rentrer dans l'angular.json, on peut modifier le base href dans l'index.html après le build.

Code : Tout sélectionner

<base href="./">
Pour accéder aux urls directement, ce n'est pas possible vu qu'Angular ou React créent des SPA (Single Page Application), tout est dans l'index.html, la page ngx-domoboard/devices/switches n'existe pas. Domoticz utilise pour ça un # qui redirige vers l'index.html. Je vais configurer un build spécial intégration à domoticz qui prend ça en compte (avec le bas href).

Pour les fonctionnalités, ça reste très limité, c'est un projet en cours. Le but est dans un premier temps de mettre en place un socle qui tire partie des dernières technos / librairies / framework et d'avoir la meilleure performance possible, afin de pouvoir potentiellement faire appel à des contributeurs. Je suis d'accord avec toi que ça ne correspond pas encore à un usage plus poussé.

A noter que le build local ne permet pas d'avoir directement accès aux mises à jour, ce qui est un peu dommage. Je vais voir s'il n'y aurait pas moyen de contourner ça...

En tout cas, merci encore pour le temps passé sur l'installation.

Re: Nouvelle Appli Domoticz

Publié : 10 août 2019, 20:32
par 6l3m
J'ai fait une configuration spéciale "domoticz" avec le base href et # qu'il faut. Pour obtenir le build dans le dossier "dist" :

Code : Tout sélectionner

npm run build:domoticz
Pour la doc : https://github.com/6l3m/ngx-domoboard#b ... t-yourself