Page 73 sur 148

Re: custom page

Publié : 21 mars 2016, 22:15
par denisb88
Pascal merci de me m'aider.
J'ai essayé de mettre le dossier monitor sur mon synology et de pointer le raspberry avec:
$.domoticzurl = "http://admin:pass@192.168.1.54:8080"
Ca fonctionne très bien en local du syno au raspberry
En externe, j'appelle monitor avec XXXX.no-ip.org/monitor/index.html, j'ai bien la pendule et les cellules mais encore une fois aucune données à l'intérieur des cellules.

je vais essayer de monter ça sur un serveur ftp distant

Re: custom page

Publié : 21 mars 2016, 22:19
par papoo
tu as personnalisé les accès web sur le synology?

Re: custom page

Publié : 21 mars 2016, 22:31
par denisb88
J'ai fait cela mais c'est toujours pareil, il n'y a pas de communication avec Domoticz
J'ai tenté de mettre le dossier sur un serveur externe et de lier domoticz avec
$.domoticzUrl= "http://admin:pas@xxxxxxxxxx.no-ip.org:8080";
Mais rien à faire

Re: custom page

Publié : 21 mars 2016, 22:45
par papoo
pour être sur de ta config, arrive tu depuis ta 3G a accéder à une page html toute simple hébergée sur ton synology?
si c'est le cas, cela ne vient pas de ton installation

Re: custom page

Publié : 21 mars 2016, 23:14
par vil1driver
Je peux m'incruster ? ;)

Le dossier monitor et domoticz doivent être sur la même machine, sinon il y a une sécurité javascript qui vient interférer.. Et bloques certains dialogues.

https://openclassrooms.com/courses/ajax ... oss-domain

Tout est codé en javascript et donc s'exécute côté client..
C'est la notion la plus importante.

En gros depuis ton tel sur internet tu te connectes a ta box sur le port 8080, cette dernière est prévenu et te transfère jusqu'à ton raspberry.

Si tu parviens à contrôler domoticz c'est que ton transfert de port est correct.

Donc tu ouvres http://........./monitor/index.html

ce fichier indique à ton navigateur de charger toute la custom page en mémoire.
entre autre le fichier frontpage_settings.js

ce fichier indique (entre autre) à ton navigateur
Comment aller interroger domoticz pour remplir les cases de la custom page.

Code : Tout sélectionner

$.domoticzurl =................. 
Est donc l'adresse pour joindre domoticz depuis le client.

Et elle est différente si tu es chez toi ou depuis internet, et oui dans le premier cas tu joins domoticz directement par son ip locale, 192.168.x.x alors que depuis internet il faut indiquer l'IP de la box ou un nom de domaine et peut-être même un port différent.

C'est pour cela que tu es tombé sur un bout de code comportant 2 adresses, Lan et Wan..

Mais c'était perfectible..

Maintenant l'adresse est automatiquement détectée
A l'exception du login&pass

Ceci est donc correct et doit être laissé tel quel.

Code : Tout sélectionner

$.domoticzurl = location.protocol + "//" + location.host;
Ou avec ajout du login

Code : Tout sélectionner

$.domoticzurl = location.protocol + "//admin:motdepasse@" + location.host;
Login étant fonctionnel qui si domoticz est configuré en authentification 'basicAuth'

Re: custom page

Publié : 22 mars 2016, 07:44
par denisb88
Merci vil1driver de m'aider.
J'ai fait EXACTEMENT ce que tu viens d'écrire.
Rien à faire, les champs ne se remplissent pas.
Mon routeur est bien paramétré car j'accède à Domoticz en 3G par le port 8080 depuis mon téléphone en mode mobile.
J'ai même créé un autre dossier (monitor2) avec l'adresse en DUR $.domoticzurl =login:pass@xxxx.no-ip.org:8080
Je télécharge les pages car la pendule et les fonds d'écrans mais aucune cellule ne se remplit.
Je suis bien en BasicAuth et mot de passe fonctionnel (puisque je récupère les infos sur la page XXXX.no-ip.org:8080)
Je vois vraiment pas ce qui bloque.

Re: custom page

Publié : 22 mars 2016, 07:49
par vil1driver
probablement une faute de frappe mais n'oublie pas le http et les guillements

Code : Tout sélectionner

$.domoticzurl = "http://USER:PASS@IP:PORT";
pour avoir plus d'info il faudrait faire le teste avec un pc et afficher la console de debug javascript (F12, natif sous chrome ou après ajout de l'addon firebug sous firefox)

Re: custom page

Publié : 22 mars 2016, 07:57
par denisb88
Oui c'est ce que j'ai. le http est bien présent.
Je précise qu'à chaque fois que j'essaie l'accès distant, Domoticz se plante et redémarre (grâce à Monit)
Pour le débug, j'essaie ce soir, là je suis au travail

Re: custom page

Publié : 22 mars 2016, 09:25
par vil1driver
@denisb88,
c'est tout de même dingue ces problèmes d'instabilité..

@papoo,
je viens d'ajouter les unités qu'il te manquait pour ton rfxmeter, redis moi..

@jacob,
je viens d'ajouter les icons pour les widget de type Alert, redis moi..
à utiliser comme ceci

Code : Tout sélectionner

['idx ou nom','Level','cellule','description','2'],
par contre le texte de l'alerte n'est pas affiché, est-ce gênant ?

@Ptisik,
je viens d'ajouter l'unité (km) pour la visibilité WU, que tu affiches Data ou Visibility comme value, redis moi..
je réfléchi à la possibilité d'afficher le graph directement dans une cellule. (quitte à déborder sur les autres..)
pour la couverture nuageuse ou assimilé, si tu as un lien proposant cela à la manière de buienradar je prends.

@Chris54220,
désolé, pas de support du switch Selector pour l'instant,
pas simple à intégrer, il peut comporter jusqu'à 10 boutons.. ça fait beaucoup dans une case.
pics76 à proposé quelque chose mais je n'ai pas trouvé le temps de m'y intéresser..

Re: custom page

Publié : 22 mars 2016, 11:42
par jacob
vil1driver:
J'ai finalement créé un type "Alert". J'ai ajouté entre à la ligne 504 de frontpage.js:

Code : Tout sélectionner

                                                if (vtype === 'Alert') {
                                                    var vdata  = item.Data;
                                                    var vlevel = item.Level;
                                                    console.log('Alert level='+vlevel);

                                                    if (vlevel == 1) { vattr=['color:',V1,';',vattr].join(''); }
                                                    else if (vlevel == 2) { vattr=['color:',V2,';',vattr].join(''); }
                                                    else if (vlevel == 3) { vattr=['color:',V3,';',vattr].join(''); }
                                                    else if (vlevel == 4) { vattr=['color:',V4,';',vattr].join(''); }
                                                    console.log('Alert vattr='+vattr);
                                                }
Les couleurs restent définies dans frontpage_settings.js:

Code : Tout sélectionner

var V1 = '#00FF00';
var V2 = '#FFFF00';
var V3 = '#FF8000';
var V4 = '#FF0000';
À utiliser comme ceci:

Code : Tout sélectionner

['idx ou nom','Alert',         'cellule',                      'description','','','',''],  // Vigilance météo
Le texte se retrouve affiché dans la couleur correspondant au niveau de l'alerte.

Je n'ai pas testé avec le nom, seulement avec l'identifiant mais je ne pense pas que cela pose de problème.
Je n'ai pas encore trouvé comment faire fonctionner le clignotement mais j'y travaille... ;)

Et encore merci pour ce joujou! :D