Page 101 sur 120

Re: MyDomoAtHome - ImperiHome

Publié : 07 janv. 2020, 10:11
par TroisSix
Oui pas faux, c'était aussi mon impression. Probablement dû à l'installation de node pour mdah, puis pour Imperihome qui a du installer une autre version plutôt que d'upgrader l'existante :-(

Voici les résultats des commandes:

Code : Tout sélectionner

$ whereis node
node: /usr/bin/node /usr/share/man/man1/node.1.gz

Code : Tout sélectionner

$ /usr/bin/node -v
v10.15.2

Code : Tout sélectionner

$ sudo dpkg --list | grep npm
ii  node-is-npm                        1.0.0-1                             all          Checks if your code is running as an npm script
ii  node-latest-version                3.1.0-1                             all          Get the latest version of an npm package
ii  node-npm-package-arg               6.0.0-2                             all          Parse the things that can be arguments to npm install
ii  node-npm-run-path                  2.0.2-2                             all          Get your PATH prepended with locally installed binaries
ii  node-npmlog                        4.1.2-1                             all          Logger with custom levels and colored output for Node.js
ii  node-package-json                  4.0.1-1                             all          Get metadata of a package from the npm registry
ii  node-read-package-json             2.0.13-1                            all          Read package.json for npm module for Node.js
ii  node-registry-auth-token           3.3.1-1                             all          Get the auth token set for an npm registry (if any)
ii  node-registry-url                  3.1.0-1                             all          Get the set npm registry URL
ii  node-validate-npm-package-license  3.0.1-1                             all          Tells if a string is a valid npm package license string
ii  node-validate-npm-package-name     3.0.0-1                             all          Checks if a string is a valid npm package name
ii  npm                                5.8.0+ds6-4                         all          package manager for Node.js

Re: MyDomoAtHome - ImperiHome

Publié : 07 janv. 2020, 10:39
par cnaslain
Tu en as bien 2 différentes; une 10.15.2 dans /usr/bin (qui sort en 1er quand tu fais une commande npm); et une 5.8.0+ds6-4 installée par package. Si tu veux savoir où est installé ce second npm, tu fais un

Code : Tout sélectionner

dpkg-query -L npm
Après; quel est celui que tu attends?... Là mystère. Ça dépend de ta roadmap d'install de MDAH.

Re: MyDomoAtHome - ImperiHome

Publié : 07 janv. 2020, 10:45
par TroisSix
Deux versions de npm:
/usr/bin/npm -v --> 5.8.0
/usr/local/bin/npm -v --> 2.15.12
Les deux mettent autant de temps à donner leur version.

A l'époque j'avais installé node et npm en suivant les instructions de epierre,
puis pour Homebridge c'était d'autres instructions, d'où un probable conflit de versions?

Si mdah n'a pas besoin de la 2.15.12, je supprime les deux npm et node, et je les réinstalle?

Re: MyDomoAtHome - ImperiHome

Publié : 07 janv. 2020, 10:55
par cnaslain
Dans ta roadmap MDAH, tu indiquais installer une 2.14.7 + un npm install -g npm@2.x ce qui normalement t'installa la drnière 2.x dispo, d'où probablement ta 2.15.12.

Si ça marche et que les deux mettent autant de temps à répondre, ça ne va rien changer de tout réinstaller...

Re: MyDomoAtHome - ImperiHome

Publié : 07 janv. 2020, 10:59
par TroisSix
:-(

Re: MyDomoAtHome - ImperiHome

Publié : 08 janv. 2020, 17:53
par Tirry
Bonjour,
J'ai feuilleté rapidement pas mal des pages des 101 pages et je n'ai pas trouvé la réponse. Quand j'ai installé MDAH et Imperihome, tout fonctionnait bien. J'avais le port 8080 en http d'ouvert.
Par la suite, par sécurité, j'ai fermé sur mon routeur le port 8080 pour ne laisser qu'un port lampda router vers le port 433 en https du domoticz.
Mais depuis que j'ai fait ca, Imperihome ne marche plus depuis l'exterieur.

Quelqu'un sait ce qui coince ?
Merci par avance et encore merci pour le tuto de la première page !
Thierry

Re: MyDomoAtHome - ImperiHome

Publié : 08 janv. 2020, 18:35
par TroisSix
@Thierry
As-tu aussi routé le port 3002?
Que donne l’url https MDAH depuis ton navigateur (depuis ton tél en 4G par ex)?

Re: MyDomoAtHome - ImperiHome

Publié : 10 janv. 2020, 14:16
par TroisSix
@tous,
Dans config.json, j'ai défini un user pour ImperiHome (avec le premier auth) et ImperiHome voit tous mes devices ==> chargement très long...
Avez-vous réussi à définir un user spécifique de domoticz pour que MDAH n'accède qu'à certains de nos devices? ça diminuerait le temps de chargement je pense.

Quand j'ai "auth": null, j'ai bien tous mes devices

Mais quand je mets :

Code : Tout sélectionner

"domoticz": {
    "ssl": false,
    "host": "127.0.0.1",
    "port": "8080",
    "path": "/",
    "auth": { "username": "my_user_domo", "password": "my_pwd_domo" }
J'obtiens un pb de passerelle, alors que j'ai bien rajouté mes 172... 192... etc.
Dois-je changer le ssl? le port? le path?
Des idées svp? Je sèche...
Merci ;)

Re: MyDomoAtHome - ImperiHome

Publié : 10 janv. 2020, 20:48
par cnaslain
L'accès au ressources de Domoticz sans credentials renvoie normalement une erreur:

Code : Tout sélectionner

wget http://192.168.0.<DZ>:8080/json.htm?type=devices&filter=all&used=true&order=Name
=> KO: 401 Unauthorized.
J'ai créé un user mydomoathome dans domoticz (avec tous les droits possibles!). Si on passe le user/pwd dans l'URL, ça marche bien. Donc pas de problème côté domoticz avec un compte de service.

Code : Tout sélectionner

wget http://mydomoathome:********@192.168.0.<DZ>:8080/json.htm?type=devices&filter=all&used=true&order=Name
=> OK
L'autre option, sur un réseau local non ouvert, est de ne pas utiliser de compte; mais autoriser des requêtes venant d'une IP locale à accéder aux ressources de domoticz. Pour tester: Domoticz > Settings > Local Networks (no username/password) et on ajoute l'IP du serveur MDAH 192.168.0.<MDAH>. La même requête retourne alors bien les données des devices.

Code : Tout sélectionner

wget http://192.168.0.<DZ>:8080/json.htm?type=devices&filter=all&used=true&order=Name
=> OK


Côté domoticz, tout roule!

Maintenant, test de l'authentification côté MDAH...
  • 1er cas: On conserve l'IP du serveur MDAH dans Domoticz > Settings > Local Networks pour ne pas utiliser d'authentification. Configuration de /etc/mydomoathome/config.json ... puis un sudo service mydomoathome stop && sudo service mydomoathome start et test de MDAH en local. J'ai bien toutes mes données.

Code : Tout sélectionner

{
  "app_name": "MyDomoAtHome",
  "auth": null,
  "tempmode": "C",
  "domoticz": {
    "ssl": false,
    "host": "192.168.0.<DZ>",
    "port": "8080",
    "path": "/",
    "auth": null
  },
  "port": "3002",
  "passcode": ""
}

Code : Tout sélectionner

wget http://127.0.0.1:3002/devices
=> OK
  • 2nd cas: On supprime dans Domoticz > Settings > Local Networks l'IP du serveur MDAH. Puis on reconfigure MDAH dans /etc/mydomoathome/config.json ... puis un sudo service mydomoathome stop && sudo service mydomoathome start et test de MDAH en local.

Code : Tout sélectionner

{
  "app_name": "MyDomoAtHome",
  "auth": null,
  "tempmode": "C",
  "domoticz": {
    "ssl": false,
    "host": "192.168.0.<DZ>",
    "port": "8080",
    "path": "/",
    "auth": { "username": "mydomoathome", "password": "******" }
  },
  "port": "3002",
  "passcode": ""
}

Code : Tout sélectionner

wget http://127.0.0.1:3002/devices
--2020-01-10 20:28:10--  http://127.0.0.1:3002/devices
Connecting to 127.0.0.1:3002... failed: Connection refused.
=> KO
Pourtant d'après le code de MDAH (https://github.com/empierre/MyDomoAtHom ... js/mdah.js), c'est bien ce qu'est sencé faire la fonction getURL...

Code : Tout sélectionner

function getURL() {
  var protocole = nconf.get('domoticz:ssl') === true ? 'https' : 'http';
  var host = nconf.get('domoticz:host')||'127.0.0.1';
  var port = nconf.get('domoticz:port')||process.env.DOMO_PORT||'8080';
  var path = nconf.get('domoticz:path')||'/';
  var oldpath = nconf.get('domo_path');
  var cmd = "json.htm";

  // In case of AUTH Basic authentication
  var secure = false;
  if (nconf.get('domoticz:auth') && nconf.get('domoticz:auth:username') && nconf.get('domoticz:auth:password')) {
    var secure = nconf.get('domoticz:auth:username') + ":" + nconf.get('domoticz:auth:password') + "@";
  }
  • 3ème cas (au cas où): On supprime dans Domoticz > Settings > Local Networks l'IP du serveur MDAH. Puis on reconfigure MDAH dans /etc/mydomoathome/config.json ... puis un sudo service mydomoathome stop && sudo service mydomoathome start et test de MDAH en local avec cette fois-ci.

Code : Tout sélectionner

{
  "app_name": "MyDomoAtHome",
  "auth": null,
  "tempmode": "C",
  "domoticz": {
    "ssl": false,
    "host": "mydomoathome:*****@192.168.0.<DZ>",
    "port": "8080",
    "path": "/",
    "auth": null
  },
  "port": "3002",
  "passcode": ""
}

Code : Tout sélectionner

wget http://127.0.0.1:3002/devices
--2020-01-10 21:00:39--  http://127.0.0.1:3002/devices
Connecting to 127.0.0.1:3002... failed: Connection refused.
=> KO
Bref, je ne sais pas non plus comment passer des credentials domoticz à MDAH :-(
Perso, j'ai pris la solution de contournement qui est de mettre l'IP du serveur MDAH dans la config domoticz; cas #1. Pas d'authentification nécessaire. Ça marche.

PS: Pour la question qui est de filtrer les devices dans un user, pk pas. Mais à mon avis tu n'y gagneras pas tant que ça. Essaie, et dit-nous ce que ça donne ;-)
PS2: Si tu utilises le 8080 de domoticz, normalement tu n'est pas en SSL. laisse false.
PS3: Idem pour le path. A moins d'avoir bidouillé le serveur web ou utiliser un dossier comme racine domoticz, laisse le / par défaut.

Re: MyDomoAtHome - ImperiHome

Publié : 10 janv. 2020, 23:15
par Tirry
@TroisSix
Bonjour. Merci pour votre réponse. J'avais effectivement un soucis de routage vers le 3002. Le naze. Merci
Cordialement
Thierry