Ajout de ChangeIP dans le plugin DynDns

Bonjour,

Pour accéder a jeedom de l’extérieur, j’utilise actuellement un dns changeip et ma livebox se charge de mettre à jour l’IP.

Dans l’hypothèse ou je changerais de box, je test actuellement la possibilité de mettre à jour l’IP avec jeedom
Je test donc le plugin DynDns mais il ne gère pas ChangeIP

Je me suis donc « amusé » à l’ajouter chez moi et les tests sont concluants.

Ne peut-on pas prévoir de l’ajouter au plugin officiel ?

Modifications :

  • desktop/php/dyndns.php
    • Ajout de changeip dans la liste déroulante
    • Ajout de changeip dans la class div de hostname + username + password
  • core/class/dyndsn.core.php
    • Ajout de la requete http pour changeip

Dans desktop

                                        <option value="changeip">www.changeip.com</option>
                            <div class="serviceType dyndnsorg noipcom ovhcom duckdns stratocom gandinet infomaniak changeip">
                                <div class="form-group">
                                    <label class="col-sm-4 control-label">{{Hostname}}</label>
                                    <div class="col-sm-6">
                                        <input type="text" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="hostname" />
                                    </div>
                                </div>
                                <div class="form-group serviceType gandinet">
                                    <label class="col-sm-4 control-label">{{Domainname}}</label>
                                    <div class="col-sm-6">
                                        <input type="text" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="domainname" />
                                    </div>
                                </div>
                                <div class="form-group serviceType dyndnsorg noipcom ovhcom stratocom infomaniak changeip">
                                    <label class="col-sm-4 control-label">{{Nom d'utilisateur}}</label>
                                    <div class="col-sm-6">
                                        <input type="text" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="username" />
                                    </div>
                                </div>
                                <div class="form-group serviceType dyndnsorg noipcom ovhcom stratocom infomaniak changeip">
                                    <label class="col-sm-4 control-label">{{Mot de passe}}</label>
                                    <div class="col-sm-6">
                                        <input type="password" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="password" />
                                    </div>
                                </div>

Dans core

			case 'changeip':
				$url = 'https://'. urlencode($this->getConfiguration('username')) . ':' . urlencode($this->getConfiguration('password')) . '@nic.changeip.com/nic/update?&hostname='.$this->getConfiguration('hostname').'&ip='.$ip;
				log::add('dyndns', 'debug', $url);
				$request_http = new com_http($url);
				$request_http->setUserAgent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12');
				$result = $request_http->exec();
				if (strpos($result, '200') === false) {
					throw new Exception(__('-Erreur de mise à jour de changeip.com : ', __FILE__) . $result);
				}
				break;

Bonjour,

je vous suggère de faire un PR au dépôt officiel :
GitHub - jeedom/plugin-dyndns

De cette manière, les modifications seraient proposées officiellement dans le dépôt officiel du plugin. Le travail à fournir de la part de la team Jeedom serait « juste » de vérifier/valider et pas d’intégrer les modifications.

Les autres utilisateurs du plugin vous remercieront :slight_smile:

A+
Michel

Merci du retour

Je comprend le concept mais je ne suis pas familier avec Git

Je vais dans le dépôt, je modifie les fichiers concernés (ce qui créer un fork) et je fais une PR avec mes commits, c’est ca ?

Il faut faire un fork, modifier dedans et proposer un PR avec les modifications.

Il est possible de faire les modif en ligne sur github ou de cloner le fork sur votre machine, de faire les modifications en local, de « pousser » (commit) les modifications dans le fork et de proposer un PR ensuite.

C’est bien moins compliqué que ça n’en a l’air. Il doit y avoir une foultitude de tuto Youtube.

Je reste à l’écoute en cas de questions.

J’ai enfin retrouvé un post que j’ai fait un jour. Le principe est le même. Tout est bien détaillé :

1 « J'aime »

Merci, je vais regarder ca

1 « J'aime »

Michel_F : Voila c’est fait, je veux bien que tu jettes un œil stp :slight_smile:

https://github.com/jeedom/plugin-dyndns/pulls

Je regarderai quand je serai sur mon PC mais vu rapidement avec le tél ça a l’air pas mal.

:+1:

Vous avez même fait les traductions qui se font automatiquement par la suite normalement.
→ Quelle motivation !

Ah oui je viens de relire la documentation pour voir que la traduction serait faite automatiquement et écrasera ma version.
Bon, c’est pas très grave :slight_smile: