Nouveau Plugin Enphase Secure pour les firmware V7

C’est fait, j’ai lancé la réinstall des dépendances, pas d’update de la date de dernière install, et le daemon.
Il s’est passé des choses quand même :

[2022-11-11 10:43:05][ERROR] : Veuillez vérifier la configuration
[2022-11-11 10:55:15][ERROR] : Erreur sur la fonction deamon_start du plugin : Vous devez attendre au moins 45 secondes entre deux lancements du démon. Dernier lancement : 2022-11-11 10:55:01
[2022-11-11 11:04:47][INFO] : Lancement démon
[2022-11-11 11:10:03][INFO] : Lancement démon
[2022-11-11 11:15:02][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:15:03][INFO] : Lancement démon
[2022-11-11 11:20:02][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:20:03][INFO] : Lancement démon
[2022-11-11 11:25:02][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:25:03][INFO] : Lancement démon
[2022-11-11 11:30:03][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:30:04][INFO] : Lancement démon
[2022-11-11 11:35:02][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:35:03][INFO] : Lancement démon
[2022-11-11 11:35:19][ERROR] : Erreur sur la fonction deamon_start du plugin : Vous devez attendre au moins 45 secondes entre deux lancements du démon. Dernier lancement : 2022-11-11 11:35:02
[2022-11-11 11:39:33][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:39:34][INFO] : Lancement démon
[2022-11-11 11:45:03][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:45:04][INFO] : Lancement démon
[2022-11-11 11:49:31][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=enphasesecur function=pre_update callInstallFunction=1
[2022-11-11 11:49:32][INFO] : Début d'activation du plugin
[2022-11-11 11:49:33][INFO] : Info sur le démon : {"log":"enphasesecur","state":"nok","launchable":"ok","launchable_message":"Gestion automatique d\u00e9sactiv\u00e9e","auto":"0","last_launch":"2022-11-11 11:45:03"}
[2022-11-11 11:49:33][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=enphasesecur function=update callInstallFunction=1
[2022-11-11 11:49:33][DEBUG] : Mise à jour des commandes effectuée pour l'équipement [Aucun][Enphase Consommation Total]
[2022-11-11 11:49:33][DEBUG] : Mise à jour des commandes effectuée pour l'équipement [Maison][Enphase Consommation Net]
[2022-11-11 11:49:33][DEBUG] : Mise à jour des commandes effectuée pour l'équipement [Maison][Enphase Production]
[2022-11-11 11:49:34][INFO] : Lancement démon
[2022-11-11 11:51:13][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:51:14][INFO] : Lancement démon
[2022-11-11 11:53:50][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:53:51][INFO] : Lancement démon
[2022-11-11 11:55:02][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-11-11 11:55:03][INFO] : Lancement démon

log des depandances?

**********************************
*  Installation des dépendances  *
**********************************
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://deb.debian.org/debian-security buster/updates InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
python3 is already the newest version (3.7.3-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
python3-pip is already the newest version (18.1-5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Requirement already satisfied: pip in /usr/local/lib/python3.7/dist-packages (22.3.1)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Reading package lists...
Building dependency tree...
Reading state information...
python3-setuptools is already the newest version (40.8.0-1).
python3-setuptools set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Requirement already satisfied: pyjwt in /usr/local/lib/python3.7/dist-packages (2.6.0)
Requirement already satisfied: html.parser in /usr/local/lib/python3.7/dist-packages (0.2)
Requirement already satisfied: html5lib in /usr/local/lib/python3.7/dist-packages (1.1)
Requirement already satisfied: bs4 in /usr/local/lib/python3.7/dist-packages (0.0.1)
Requirement already satisfied: asyncio in /usr/local/lib/python3.7/dist-packages (3.4.3)
Requirement already satisfied: httpx in /usr/local/lib/python3.7/dist-packages (0.23.0)
Requirement already satisfied: lxml in /usr/local/lib/python3.7/dist-packages (4.9.1)
Requirement already satisfied: ply in /usr/local/lib/python3.7/dist-packages (from html.parser) (3.11)
Requirement already satisfied: six>=1.9 in /usr/lib/python3/dist-packages (from html5lib) (1.12.0)
Requirement already satisfied: webencodings in /usr/local/lib/python3.7/dist-packages (from html5lib) (0.5.1)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.7/dist-packages (from bs4) (4.11.1)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from httpx) (2022.9.24)
Requirement already satisfied: rfc3986[idna2008]<2,>=1.3 in /usr/local/lib/python3.7/dist-packages (from httpx) (1.5.0)
Requirement already satisfied: sniffio in /usr/local/lib/python3.7/dist-packages (from httpx) (1.3.0)
Requirement already satisfied: httpcore<0.16.0,>=0.15.0 in /usr/local/lib/python3.7/dist-packages (from httpx) (0.15.0)
Requirement already satisfied: anyio==3.* in /usr/local/lib/python3.7/dist-packages (from httpcore<0.16.0,>=0.15.0->httpx) (3.6.2)
Requirement already satisfied: h11<0.13,>=0.11 in /usr/local/lib/python3.7/dist-packages (from httpcore<0.16.0,>=0.15.0->httpx) (0.12.0)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.7/dist-packages (from anyio==3.*->httpcore<0.16.0,>=0.15.0->httpx) (3.4)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from anyio==3.*->httpcore<0.16.0,>=0.15.0->httpx) (4.4.0)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.7/dist-packages (from beautifulsoup4->bs4) (2.3.2.post1)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
**********************************
*  Installation des dépendances OK  *
**********************************

Et toujours error pour jeedom.jeedom (pas datés mais plus nombreux qu’avant il me semble)

Pas de soucis, je connais très bien armbian et ma plateforme (je suis ingé dans le domaine…)
Si je comprends bien c’est la connexion au port 11413 qui bloque ici ? ou celle au port 80 ?

le 80 , elle renvoie une erreur 403

[2022-11-11 11:35:13][DEBUG] : http://127.0.0.1:80 « GET /plugins/enphasesecur/core/php/jeeenphasesecur.php?apikey=s0qA5DLF53sZ0iyS4Dh2UdSBQQS9cCv4 HTTP/1.1 » 403 199

essai de taper ça dans ssh ou depuis jeedom/administration

sudo pip3 install six -U

J’ai bien galéré a trouver où avoir un accès terminal depuis Jeedom web ^^ (ssh ne fonctionne pas, à cause de Docker?)
Voilà ce que ça donne, ça a bien remplacé la version de six, mais toujours pareil.

Il faut tenter python3-setuptools?

Effectivement :

pascal@jeedom:~$ wget http://127.0.0.1:80/plugins/enphasesecur/core/php/jeeenphasesecur.php?apikey=s0qA5DLF53sZ0iyS4Dh2UdSBQQS9cCv4
--2022-11-11 12:20:55--  http://127.0.0.1/plugins/enphasesecur/core/php/jeeenphasesecur.php?apikey=s0qA5DLF53sZ0iyS4Dh2UdSBQQS9cCv4
Connexion à 127.0.0.1:80… connecté.
requête HTTP transmise, en attente de la réponse… 403 Forbidden
2022-11-11 12:20:55 erreur 403 : Forbidden.

Par contre, le port 80 est bien accessible :

pascal@jeedom:~$ sudo nmap -p 80 localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2022-11-11 12:24 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00018s latency).
Other addresses for localhost (not scanned): ::1

PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds

J’ai regardé un peu au niveau permissions :

pascal@jeedom:~$ ll /var/www/html/plugins/enphasesecur/core/php
total 12
-rw-r--r-- 1 www-data www-data  818 nov.  11 11:43 enphasesecur.inc.php
-rw-r--r-- 1 www-data www-data 5910 nov.  11 11:43 jeeenphasesecur.php

Les fichiers php n’ont pas l’autorisation d’exécution. J’ai ajouté la permission x mais ça ne change rien.

J’ai créé un fichier bidon /var/www/html/plugins/enphasesecur/core/php/index.html en essayant un wget, j’ai la même erreur :

pascal@jeedom:~$ wget http://127.0.0.1:80/plugins/enphasesecur/core/php/index.html --debug
DEBUG output created by Wget 1.20.1 on linux-gnu.

Reading HSTS entries from /home/pascal/.wget-hsts
URI encoding = « UTF-8 »
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2022-11-11 17:12:11--  http://127.0.0.1/plugins/enphasesecur/core/php/index.html
Connexion à 127.0.0.1:80… connecté.
Created socket 3.
Releasing 0x0000aaaaedcaf060 (new refcount 0).
Deleting unused 0x0000aaaaedcaf060.

---request begin---
GET /plugins/enphasesecur/core/php/index.html HTTP/1.1
User-Agent: Wget/1.20.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: 127.0.0.1
Connection: Keep-Alive

---request end---
requête HTTP transmise, en attente de la réponse…
---response begin---
HTTP/1.1 403 Forbidden
Date: Fri, 11 Nov 2022 16:12:11 GMT
Server: Apache
Content-Length: 199
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

---response end---
403 Forbidden
Registered socket 3 for persistent reuse.
URI content encoding = « iso-8859-1 »
Skipping 199 bytes of body: [<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
</body></html>
] done.
2022-11-11 17:12:11 erreur 403 : Forbidden.

Pour moi, c’est donc, soit un problème de permission, soit un problème de config apache.
Voilà ce que dit apache dans ses logs :

[Fri Nov 11 17:12:11.731176 2022] [access_compat:error] [pid 6027] [client 127.0.0.1:45464] AH01797: client denied by server configuration: /var/www/html/plugins/enphasesecur/core/php/index.html
[Fri Nov 11 17:15:14.273127 2022] [access_compat:error] [pid 6027] [client 127.0.0.1:45694] AH01797: client denied by server configuration: /var/www/html/plugins/enphasesecur/core/php/jeeenphasesecur.php
[Fri Nov 11 17:20:13.814018 2022] [access_compat:error] [pid 26666] [client 127.0.0.1:46144] AH01797: client denied by server configuration: /var/www/html/plugins/enphasesecur/core/php/jeeenphasesecur.php
[Fri Nov 11 17:22:36.534652 2022] [access_compat:error] [pid 11007] [client 127.0.0.1:46316] AH01797: client denied by server configuration: /var/www/html/plugins/enphasesecur/core/php/jeeenphasesecur.php
r

Je me documente sur l’erreur AH01797…

j’ai tout inclus dans la dernière beta…
tu as redémarré au cas ou?
après ce n’est pas une configuration standard que tu as donc il est possible qu’il manque un paquet qui est présent de base sur les autres…

essai au as de réinitialiser les permissions dans Jeedom/system/os
image

pour le fichier html qui est coincé ce n’est pas étoanant car dans ce dossier il ne doit avoir que des php

J’ai temporairement retirer le fichier /var/www/html/plugins/enphasesecur/core/php/.htaccess et le serveur démarre…
cela me laisse perplexe.

bizarre que ça marche chez tous le monde … quel version d’apache et de php?

ii  apache2                               2.4.38-3+deb10u8                    arm64        Apache HTTP Server
ii  php                                   2:7.3+69                            all          server-side, HTML-embedded scripting language (default)

onglet santé

mais bon la je ne vois pas pourquoi ton système interpréterai différemment le .htacess

Tu as installé jeedom comment?
je l’ai enlevé car en regardant je vois que beaucoup de plugin l’on enlevé de ce répertoire alors qu’il est dans la doc…

tu n’as pas d’autre erreurs dans d’autre log? http.error par ex?

regarde par ici, en essayant d’installé les dépendance une par une pour voir si l’une d’elle résout le problème

apache en mode sécurisé ou non? moi je suis en sécurisé

Attends un peu avant de pousser…
J’ai déplacé mon fichier test.html dans le répertoire core/php d’un autre plugin et j’ai la même erreur.
Le problème vient surement de la config d’apache.
Tous mes plugins fonctionnent correctement et ça m’interroge.
Mon jeedom tourne sans interruption depuis plus de 3 ans, je l’ai installé avec le script en ligne de commande.
Après le serveur démarre, donc ça avance, j’ai par contre une autre erreur :

[2022-11-11 18:14:39][INFO] : Start demond
[2022-11-11 18:14:39][INFO] : Log level : debug
[2022-11-11 18:14:39][INFO] : Socket port : 11413
[2022-11-11 18:14:39][INFO] : Socket host : localhost
[2022-11-11 18:14:39][INFO] : PID file : /tmp/jeedom/enphasesecur/deamon.pid
[2022-11-11 18:14:39][INFO] : Apikey : s0qA5DLF53sZ0iyS4Dh2UdSBQQS9cCv4
[2022-11-11 18:14:39][INFO] : Device : auto
[2022-11-11 18:14:39][INFO] : Callback : http://127.0.0.1:80/plugins/enphasesecur/core/php/jeeenphasesecur.php
[2022-11-11 18:14:39][INFO] : Delais actualisation : 30
[2022-11-11 18:14:39][DEBUG] : User : xxxx
[2022-11-11 18:14:39][DEBUG] : Password : xxxx
[2022-11-11 18:14:39][DEBUG] : Id Site : xxxx
[2022-11-11 18:14:39][DEBUG] : Numero de serie : xxxx
[2022-11-11 18:14:39][INFO] : Writing PID 20717 to /tmp/jeedom/enphasesecur/deamon.pid
[2022-11-11 18:14:39][INFO] : Init request module v2.21.0
[2022-11-11 18:14:39][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2022-11-11 18:14:39][DEBUG] : http://127.0.0.1:80 "GET /plugins/enphasesecur/core/php/jeeenphasesecur.php?apikey=s0qA5DLF53sZ0iyS4Dh2UdSBQQS9cCv4 HTTP/1.1" 200 2
[2022-11-11 18:15:09][DEBUG] : Recuperation token
[2022-11-11 18:15:10][DEBUG] : HTTP Request: POST https://entrez.enphaseenergy.com/login "HTTP/1.1 200 "
[2022-11-11 18:15:10][DEBUG] : HTTP Request: POST https://entrez.enphaseenergy.com/entrez_tokens "HTTP/1.1 200 "
[2022-11-11 18:15:10][ERROR] : Erreur de connexion aux serveurs Enphase
[2022-11-11 18:15:40][DEBUG] : Recuperation token
[2022-11-11 18:15:41][DEBUG] : HTTP Request: POST https://entrez.enphaseenergy.com/login "HTTP/1.1 200 "
[2022-11-11 18:15:41][DEBUG] : HTTP Request: POST https://entrez.enphaseenergy.com/entrez_tokens "HTTP/1.1 200 "
[2022-11-11 18:15:41][ERROR] : Erreur de connexion aux serveurs Enphase

J’avais changé de compte pour faire, un test, en remettant le compte « master » dans lequel j’avais généré le token, cela fonctionne !!!
Petite question, est-il nécessaire de créer « manuellement » le token ou est-ce que c’est fait par le plugin ?
En résumé, la suppression du .htaccess dans core/php solutionne mon problème (ton fichier est identique aux autres qu’on trouve dans la hiérarchie plugins).

1 « J'aime »