Page 5 sur 6

Re: [Plugin Tiers] Enphase Production

Publié : 08 sept. 2019, 22:42
par 5T3F
marcodomotique a écrit :
06 sept. 2019, 09:58
Freeman32, ça veut dire quoi passer l'envoy en vde ?
Injection sur le réseau suivant la norme VDE2014 avec coupure interne du système en cas d'intervention sur le réseau lorsque les personnes qui interviennent sur le transfo ou les lignes ne se prennent, malgré tout, de courant venant du photovoltaïque, évitant ainsi de les électrocuter
... d'où normalement, en cas d'injection gratuite ou payante du surplus, la signature d'une CRAE (Contrat de Raccordement, d'Accès et d'Exploitation) ou CASI (en cas de non injection) permettant de prévenir le gestionnaire du réseau qu'une installation photovoltaïque est présente dans le secteur.

Re: [Plugin Tiers] Enphase Production

Publié : 13 sept. 2019, 12:23
par freeman32
marcodomotique a écrit :
07 sept. 2019, 20:47
Question bête, je vois pas de mise à jour dans jeedom pour ton plugin, faut être en bêta ?
Le plugin est prêt a être testé il faut attendre que @ffisoft57 le publie en beta pour cela

Re: [Plugin Tiers] Enphase Production

Publié : 15 sept. 2019, 15:03
par ffisoft57
Mise jour du plugin en BETA

Merci de testé

ajout des pinces et des batteries

Re: [Plugin Tiers] Enphase Production

Publié : 20 sept. 2019, 17:58
par freeman32
marcodomotique a écrit :
07 sept. 2019, 20:47
Question bête, je vois pas de mise à jour dans jeedom pour ton plugin, faut être en bêta ?
alors tu as tester la nouvelle version ?

Re: [Plugin Tiers] Enphase Production

Publié : 28 sept. 2019, 11:24
par morlong
Bonjour,
je n'arrive pas à lancer le démon; voici le log:

[2019-09-28 10:45:11][ERROR] : Erreur sur enphase_prod::RefreshInformation() : Call to a member function refreshWidget() on null
[2019-09-28 11:22:58][ERROR] : Erreur sur enphase_prod::RefreshInformation() : Call to a member function refreshWidget() on null

et dans le plugin j'ai ce message qui s'affiche:
Fichier introuvable : /var/www/html/core/php/../../plugins/enphase_prod/desktop/php/enphase_prod.php

je ne peux donc pas creer l'équipement

Re: [Plugin Tiers] Enphase Production

Publié : 28 sept. 2019, 13:48
par marcodomotique
Salut,

Je suis encore en train de le tester, déjà je n'ai plus de figeage de données et ça c'est bien. Après il y a encore des latences dans les données, si je compare entre l'application toolkit installer sur le tel et le plugin enphase sur jeedom il y a des fois 5 minutes de rafraîchissement, dans l'extrême c'est pas grave. Bon boulot Merci Philippe et Freeman.

Re: [Plugin Tiers] Enphase Production

Publié : 29 sept. 2019, 10:55
par morlong
Bon, j'ai beau essayé, réinstallé, install bêta, redémarrage....rien à faire toujour le même message....
J'ai mis à jour jeedom en 3.3.32 samedi matin, le plugin est bien compatible?
Quelqu'un aurait une idée?

Envoyé de mon SM-T580 en utilisant Tapatalk


Re: [Plugin Tiers] Enphase Production

Publié : 01 oct. 2019, 13:50
par freeman32
Le plugin fonctionne très bien sous la 3.3.xx et sur la V4 y'a un bug avec le sn et le soft mais sinon c'est parfait

Re: [Plugin Tiers] Enphase Production

Publié : 01 oct. 2019, 13:51
par freeman32
marcodomotique a écrit :
28 sept. 2019, 13:48
Salut,

Je suis encore en train de le tester, déjà je n'ai plus de figeage de données et ça c'est bien. Après il y a encore des latences dans les données, si je compare entre l'application toolkit installer sur le tel et le plugin enphase sur jeedom il y a des fois 5 minutes de rafraîchissement, dans l'extrême c'est pas grave. Bon boulot Merci Philippe et Freeman.
Si ton rafraîchissement ne se fait pas a la vitesse choisie il faut que tu redémarre le demon

Re: [Plugin Tiers] Enphase Production

Publié : 01 oct. 2019, 18:10
par marcodomotique
Fremann32,
C'est ce que je fais régulièrement, que ça soit en gestion automatique ou pas le rafraîchissement ne se fait pas comme désiré.

Re: [Plugin Tiers] Enphase Production

Publié : 03 oct. 2019, 16:52
par yanosh77
Idem pour ma part, téléchargement de la version sur le market, version jeedom 3.3.32 et erreur : "Erreur sur enphase_prod::RefreshInformation() : Call to a member function refreshWidget() on null "
Pas moyen de le faire fonctionner.
C'est la version stable, il faut faire une manipulation pour la version béta?
Merci

Re: [Plugin Tiers] Enphase Production

Publié : 04 oct. 2019, 01:50
par nico_noumea
Bonjour,

J'ai également le même problème d'installation du plugin.
Si une beta fonctionne, comment l'obtenir ?

Merci!

Re: [Plugin Tiers] Enphase Production

Publié : 04 oct. 2019, 09:13
par yanosh77
J'ai testé la béta, même constat (sur jeedom V3 et V4).
A savoir mon jeedom tourne sur un debian 10.
Testé sur une installation neuve en debian 9.9...idem

Re: [Plugin Tiers] Enphase Production

Publié : 04 oct. 2019, 12:39
par marcodomotique
Je suis en jeedom 3.3.32 et debian stretch 9 , ça tourne.
Pour la beta c'est sur le site jeedom que tu peux autoriser les versions bêta.

Re: [Plugin Tiers] Enphase Production

Publié : 09 oct. 2019, 18:41
par freeman32
yanosh77 a écrit :
04 oct. 2019, 09:13
J'ai testé la béta, même constat (sur jeedom V3 et V4).
A savoir mon jeedom tourne sur un debian 10.
Testé sur une installation neuve en debian 9.9...idem
La c'est vraiment bizarre, parce que je suis sous la 3.3.33 en debian 9.9 et tout tourne nickel, je l'ai aussi mis sur un debiant 9.9 avec la V4 j'ai un soucis sur la version du soft et du sn de l'nevoy mais le reste fonctionne correctement par contre sous debian 10 avec la v4 ca fonctionne pas il faut mettre le plugin a jour pour php 7.3

Re: [Plugin Tiers] Enphase Production

Publié : 09 oct. 2019, 19:40
par freeman32
Tout le monde a une envoy-s metered ?

Re: [Plugin Tiers] Enphase Production

Publié : 09 oct. 2019, 20:31
par marcodomotique
Metered pour la part oui.

Re: [Plugin Tiers] Enphase Production

Publié : 10 oct. 2019, 00:03
par nico_noumea
Pour info :

Comme pour d'autres utilisateurs, le plugin ne fonctionnait sur mon Jeedom (v3.3.32).
Pour le faire marcher j'ai du apporter deux corrections :
- Renommer le fichier php comme le plugin dans le repertoire Desktop/php => enphase_prod.php
- Dans le fichier /core/class/enphase_prod.class.php, déplacer la ligne "$Equipement->refreshWidget();" dans le foreach juste au dessus.

Mon installation n'étant pas encore terminée, je n'ai pas pu tester la bonne remontée des infos, mais le plugin ne génère plus d'erreur !

Re: [Plugin Tiers] Enphase Production

Publié : 10 oct. 2019, 17:51
par freeman32
nico_noumea a écrit :
10 oct. 2019, 00:03
Pour info :

Comme pour d'autres utilisateurs, le plugin ne fonctionnait sur mon Jeedom (v3.3.32).
Pour le faire marcher j'ai du apporter deux corrections :
- Renommer le fichier php comme le plugin dans le repertoire Desktop/php => enphase_prod.php
- Dans le fichier /core/class/enphase_prod.class.php, déplacer la ligne "$Equipement->refreshWidget();" dans le foreach juste au dessus.

Mon installation n'étant pas encore terminée, je n'ai pas pu tester la bonne remontée des infos, mais le plugin ne génère plus d'erreur !
alors pour le renommage du fichier php, je ne vois pas trop pourquoi, moi il est bien écrit enphase_prod.php

pour le "$Equipement->refreshWidget();" dans le foreach tu peux mettre le bout de code correspondant a ce que tu a fait ? parce que je ne comprend pas pourquoi ca ne fonctionne pas, dans les version précédente c'était la même position et ça fonctionnais très bien aussi. il doit y avoir des variante php sur les versions

Re: [Plugin Tiers] Enphase Production

Publié : 11 oct. 2019, 01:06
par nico_noumea
Hello

Alors le message d'erreur dans le log est le suivant : Erreur sur enphase_prod::RefreshInformation() : Call to a member function refreshWidget() on null.

Du coup je suis allé voir dans la fonction RefreshInformation, et effectivement, hors du foreach la variable $Equipement n'existe pas, du coup je l'ai mise dans le foreach, à la fin :

Avant :

Code : Tout sélectionner

public static function RefreshInformation()
    {
        while (true) {
            foreach (eqLogic::byType('enphase_prod') as $Equipement) {
                if ($Equipement->getIsEnable()) {
                    // Recuperation des infos des X panneau
                    log::add('enphase_prod', 'debug', 'Recuperation des infos des X panneau');
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $Equipement->getConfiguration('ip') . '/api/v1/production/inverters');
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
                    curl_setopt($ch, CURLOPT_USERPWD, $Equipement->getConfiguration('user') . ":" . $Equipement->getConfiguration('pass'));
                    $response = curl_exec($ch);
                    curl_close($ch);

                    $json_data = json_decode($response, true);
                    $c = count($json_data);
                    log::add('enphase_prod', 'debug', 'Nombre entree ' . $c);
                    for ($p = 1; $p <= intval($c); $p++) {
                        $i = $p - 1;

                        log::add('enphase_prod', 'debug', 'Recuperation des infos du panneau ' . $p);
                        $Equipement->checkAndUpdateCmd('pan' . $p . 'nbserie', $json_data[$i]["serialNumber"]);
                        log::add('enphase_prod', 'debug', 'Recuperation numero de serie du panneau ' . $p . ' : ' . $json_data[$i]["serialNumber"]);
                        $Equipement->checkAndUpdateCmd('pan' . $p . 'lastwatt', $json_data[$i]["lastReportWatts"]);
                        log::add('enphase_prod', 'debug', 'Recuperation derniere puissance du panneau ' . $p . ' : ' . $json_data[$i]["lastReportWatts"]);
                        $Equipement->checkAndUpdateCmd('pan' . $p . 'maxwatt', $json_data[$i]["maxReportWatts"]);
                        log::add('enphase_prod', 'debug', 'Recuperation max de puissance du panneau ' . $p . ' : ' . $json_data[$i]["maxReportWatts"]);
                    }

                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $Equipement->getConfiguration('ip') . '/api/v1/production');
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
                    curl_setopt($ch, CURLOPT_USERPWD, $Equipement->getConfiguration('user') . ":" . $Equipement->getConfiguration('pass'));
                    $response = curl_exec($ch);
                    curl_close($ch);

                    $json_data = json_decode($response, true);

                    $Equipement->checkAndUpdateCmd('now', $json_data['wattsNow']);
                    log::add('enphase_prod', 'debug', 'Energie instantané : ' . $json_data['wattsNow']);
                    $Equipement->checkAndUpdateCmd('daily', $json_data['wattHoursToday']);
                    log::add('enphase_prod', 'debug', 'Energie produit du jour : ' . $json_data['wattHoursToday']);
                    $Equipement->checkAndUpdateCmd('lifetime', $json_data['wattHoursLifetime']);
                    log::add('enphase_prod', 'debug', 'Energie produit depuis le mise en service :' . $json_data['wattHoursLifetime']);
                    $Equipement->checkAndUpdateCmd('SevenDays', $json_data['wattHoursSevenDays']);
                    log::add('enphase_prod', 'debug', 'Energie produit sur 7 jours : ' . $json_data['wattHoursSevenDays']);

                }
            }

            $Equipement->refreshWidget();
            sleep(20);
        }
        self::deamon_stop();
    }
Après :

Code : Tout sélectionner

public static function RefreshInformation()
    {
        while (true) {
            foreach (eqLogic::byType('enphase_prod') as $Equipement) {
                if ($Equipement->getIsEnable()) {
                    // Recuperation des infos des X panneau
                    log::add('enphase_prod', 'debug', 'Recuperation des infos des X panneau');
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $Equipement->getConfiguration('ip') . '/api/v1/production/inverters');
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
                    curl_setopt($ch, CURLOPT_USERPWD, $Equipement->getConfiguration('user') . ":" . $Equipement->getConfiguration('pass'));
                    $response = curl_exec($ch);
                    curl_close($ch);

                    $json_data = json_decode($response, true);
                    $c = count($json_data);
                    log::add('enphase_prod', 'debug', 'Nombre entree ' . $c);
                    for ($p = 1; $p <= intval($c); $p++) {
                        $i = $p - 1;

                        log::add('enphase_prod', 'debug', 'Recuperation des infos du panneau ' . $p);
                        $Equipement->checkAndUpdateCmd('pan' . $p . 'nbserie', $json_data[$i]["serialNumber"]);
                        log::add('enphase_prod', 'debug', 'Recuperation numero de serie du panneau ' . $p . ' : ' . $json_data[$i]["serialNumber"]);
                        $Equipement->checkAndUpdateCmd('pan' . $p . 'lastwatt', $json_data[$i]["lastReportWatts"]);
                        log::add('enphase_prod', 'debug', 'Recuperation derniere puissance du panneau ' . $p . ' : ' . $json_data[$i]["lastReportWatts"]);
                        $Equipement->checkAndUpdateCmd('pan' . $p . 'maxwatt', $json_data[$i]["maxReportWatts"]);
                        log::add('enphase_prod', 'debug', 'Recuperation max de puissance du panneau ' . $p . ' : ' . $json_data[$i]["maxReportWatts"]);
                    }

                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $Equipement->getConfiguration('ip') . '/api/v1/production');
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
                    curl_setopt($ch, CURLOPT_USERPWD, $Equipement->getConfiguration('user') . ":" . $Equipement->getConfiguration('pass'));
                    $response = curl_exec($ch);
                    curl_close($ch);

                    $json_data = json_decode($response, true);

                    $Equipement->checkAndUpdateCmd('now', $json_data['wattsNow']);
                    log::add('enphase_prod', 'debug', 'Energie instantané : ' . $json_data['wattsNow']);
                    $Equipement->checkAndUpdateCmd('daily', $json_data['wattHoursToday']);
                    log::add('enphase_prod', 'debug', 'Energie produit du jour : ' . $json_data['wattHoursToday']);
                    $Equipement->checkAndUpdateCmd('lifetime', $json_data['wattHoursLifetime']);
                    log::add('enphase_prod', 'debug', 'Energie produit depuis le mise en service :' . $json_data['wattHoursLifetime']);
                    $Equipement->checkAndUpdateCmd('SevenDays', $json_data['wattHoursSevenDays']);
                    log::add('enphase_prod', 'debug', 'Energie produit sur 7 jours : ' . $json_data['wattHoursSevenDays']);

                }
                $Equipement->refreshWidget();
            }

            
            sleep(20);
        }
        self::deamon_stop();
    }