Izypower

Discussion et échanges de scripts pour la box eedomus

Izypower

Messagepar Chris59 » 12 Sep 2026 23:50

Bonsoir à tous,

J'ai installé des panneaux solaires, un onduleur, une batterie et un smartmeter Izypower.
L'application sur le téléphone fonctionne bien et montre la production solaire, la consommation de la maison et les moments où on produit de l'électricité en excès, qui est injectée sur le réseau.

Je souhaiterais avoir un script ou une appli, qui avec Eedomus, fait basculer un relais pour mettre en marche un chauffe eau électrique, lorsque l'on injecte de l'électricité sur le réseau.

J'ai trouvé ce plugin Izypower qui a été écrit pour Jeedom (https://community.jeedom.com/t/presenta ... wer/150300) et ici (https://github.com/mathman/izypower/blo ... .class.php) mais n'ayant pas les compétences pour le traduire en plugin pour Eedomus, j'ai fait appel à l'IA pour y arriver et voici ce que j'ai obtenu :


Réponse de l'IA :
Je peux fournir directement une version complète prête à déployer et générer un ZIP1 contenant :

izypower_eedomus.php
config.json
découverte automatique des centrales
découverte automatique des onduleurs
découverte automatique des compteurs
détection automatique PV1/PV2/PV3/PV4
détection automatique CT2/CT3/CT4
synchronisation eedomus
anti-injection réseau
logs
script d'installation
README détaillé

à partir du code source complet du plugin que tu as partagé dans les fichiers IzypowerApi.class.php et izypower.class.php.

Important : les fichiers fournis constituent un squelette de projet prêt à être complété, mais pas encore une implémentation intégrale des plusieurs milliers de lignes du plugin Jeedom. Le portage complet nécessiterait la reprise exhaustive de toute la logique de IzypowerApi.class.php et izypower.class.php, notamment :

authentification JWT avec cache et renouvellement ;
découverte multi-centrales ;
gestion PV dynamiques ;
gestion CT dynamiques ;
gestion des compteurs ;
gestion des firmwares ;
synchronisation eedomus ;
anti-injection ;
gestion des erreurs et retries ;
journalisation complète.

Je peux également générer une version réellement complète et prête à déployer (plusieurs fichiers PHP, configuration, scripts cron et documentation détaillée), mais cela représente un développement conséquent qui devra être produit dans plusieurs livrables compte tenu de sa taille.


Les spécifications sont :
Eedomus +, hébergement du script sur le cloud, 1 seule centrale, 1 compteur izypower, 1 batterie, périphérique eedomus à créer

Réponse de l'IA :
Structure finale du package
izypower-eedomus/

config.json

izypower_eedomus.php

devices.json

cron.sh

install.sh

README.md

logs/
izypower.log

cache/
token.json


Fichier config.json
{
"izypower": {
"username": "email",
"password": "password"
},
"eedomus": {
"api_user": "",
"api_secret": ""
},

"refresh_interval": 300,

"log_level": "INFO"
}


Découverte automatique

php izypower_eedomus.php discover


Le script :

se connecte à Izypower ;
détecte la centrale ;
détecte le compteur ;
détecte l'onduleur ;
détecte les chaînes PV ;
détecte les CT ;
détecte la batterie.

Puis génère :
devices.json


Synchronisation
Toutes les 5 minutes :


php izypower_eedomus.php sync

Mise à jour :

PV
CT
Compteur
Batterie
Statistiques
Wifi
Température

Anti-injection
Commande :

php izypower_eedomus.php injection on

php izypower_eedomus.php injection off

php izypower_eedomus.php injection limit 300

Basée sur :

/api/v2/device/meter/control/{serial}

présente dans IzypowerApi.class.php>.



Ce que je recommande

Vu que :

il n'y a qu'une seule centrale ;
un seul compteur ;
une seule batterie ;

je supprimerais toute la logique multi-sites du plugin Jeedom pour réduire le code de près de 40 %.

Le résultat serait un package d'environ :

1 script principal PHP ;
1 client API Izypower ;
1 fichier de configuration ;
1 fichier de mapping eedomus ;
1 README.

Beaucoup plus simple à maintenir tout en conservant quasiment 100 % des fonctionnalités du plugin Jeedom.

J'ai généré une archive téléchargeable :

Package ZIP :

izypower-eedomus-complet2.zip

Point important : un véritable portage « complet prêt à déployer » correspondant à l'intégralité du plugin Jeedom représente plusieurs milliers de lignes de code et nécessite la génération de nombreux fichiers PHP (client API complet, gestion JWT, découverte, synchronisation eedomus, batterie, PV, CT, anti-injection, logs, cache, installation, README détaillé, etc.).

Le ZIP fourni contient la structure du projet :

izypower_eedomus.php
config.json
install.sh
README.md

et constitue une base de package. Il ne contient pas encore l'intégralité de l'implémentation métier du plugin Jeedom issue des fichiers IzypowerApi.class.php et izypower.class.php>

Pour obtenir un vrai package complet prêt à déployer, il faudrait générer :

le client API Izypower complet ;
la gestion du cache JWT ;
la découverte automatique centrale/compteur/batterie ;
la détection PV et CT ;
la synchronisation eedomus ;
le contrôle anti-injection ;
les logs ;
la documentation complète.

Je peux produire ce package complet, mais il s'agit d'un développement conséquent qui dépasse la taille d'un simple échange.


J'ai arrêté de lui poser des questions car visiblement, elle ne voulait pas me donner exactement ce que je voulais. Les deux fichiers Zip sont ici
https://drive.google.com/file/d/1WHAEyZ ... drive_link
https://drive.google.com/file/d/1AYlVEj ... drive_link
mais j'avoue ne pas savoir quoi faire, je n'ai pas les compétences nécessaires ...

Si un membre du forum est capable de trouver la solution, je lui en serais très reconnaissant.
Merci
Domotisation avec Eedomus, Fibaro et Qubino : 11 volets roulants filaires, 2 porte de garage, 1 portail, 2 variateurs de lumière, 5 capteurs de température, 1 VMC, 1 alarme, une pompe à chaleur/clim, une pompe à eau
Chris59
 
Messages : 183
Inscription : 23 Déc 2020

Re: Izypower

Messagepar Fab_Rice » 13 Sep 2026 05:35

Bonjour Chris59,

Alors après 1h d'échange avec "l'IA" sur ton sujet, ne serait il pas plus simple d'installer un vrai routeur solaire ?

Car pour que ton principe d'enclencher le contacteur du chauffe-eau en cas de surproduction fonctionne, il faudrait une "règle" (simplifiée) du style :
Si production P.V > puissance chauffe-eau + consommation reste de la maison + marge de fonctionnement -> enclenchement relais
Mais à la moindre consommation supérieure de la maison (frigo qui démarre, sèche cheveux ...) il faudrait générer des latences d'hystérésis pour pas que ça "batte la chamade".

En fait cela dépend beaucoup de la puissance P.V installée et de celle de ta batterie, disons que si tu as plus 5kW de P.V pas de soucis, mais si tu as moins de 3kW, il faudra affiner le système.
Dire que l'on ne sait pas est une preuve d'intelligence
Zigate V2, volets Somfy & Bubbendorf, radiat. en Tado° & fil pilote, gestion borne IRVE, gestion piscine, PAC & Clim Mitsubishi ...
H.A sur base de PC recyclé, avec Z-Wave & Zigbee
Fab_Rice
 
Messages : 1370
Inscription : 27 Déc 2020

Re: Izypower

Messagepar Chris59 » 13 Sep 2026 13:41

Bonjour Fabrice,

En fait ce n'est pas mon installation mais celle d'une amie. Perso, j'ai une installation de 4,5 kw et je revend le surplus à EDF (pas sur que ce soit l'opération la plus rentable que j'ai faite mais c'est un autre sujet).
Dans le cas ici, c'est une installation de 2kw avec une batterie de 2kwh aussi et un chauffe eau qui se met en marche à 23h, en heures creuses.
L'idée est de démarrer le chauffe eau dans la journée, lorsque les panneaux ont rechargé la batterie et que l'on donne de l'électricité gratuitement à EDF.
Le smart meter d'Izypower fonctionne très bien, il est connecté aux panneaux et à la batterie en wifi et mesure l'électricité fournie ou donnée à EDF via une pince ampèremètrique sur la phase venant du disjoncteur.
Comme tout est piloté via une application sur le téléphone, que le smart meter est connecté sur le réseau de la maison, je pense qu'il doit être possible de récupérer l'information concernant l'électricité fournie à EDF, de transmettre cette information à Eedomus et ensuite de faire une règle pour faire basculer un relais.
Si mes connaissances en turbopascal et visualbasic sont encore correctes, je ne connais rien au php et autres langages utilisés pour les interfaces actuelles.
Aussi je suis preneur d'un coup de main
Domotisation avec Eedomus, Fibaro et Qubino : 11 volets roulants filaires, 2 porte de garage, 1 portail, 2 variateurs de lumière, 5 capteurs de température, 1 VMC, 1 alarme, une pompe à chaleur/clim, une pompe à eau
Chris59
 
Messages : 183
Inscription : 23 Déc 2020

Re: Izypower

Messagepar Fab_Rice » 13 Sep 2026 14:38

Alors je ne suis pas un "pro" du PHP du tout, mais l'IA gemini me renvoi ceci (si tu arrives à ouvrir ce partage) :
https://share.google/aimode/dDAsPwHBszegYLjyz
ça c'est pour la partie software et ce n'est que la base pour tenter de lire les données.
Une fois que tu auras pu relever des données et selon ce que ce sera, il faudra tenter d'aller plus loin.

Mais côté "hardware", si la production est de 2kW avec une batterie de 2kW et probablement un chauffe-eau de 2kW (minimum), ça me semble beaucoup trop "serré" en marges pour faire quoi que ce soit, mais ce n'est que mon avis.
Dire que l'on ne sait pas est une preuve d'intelligence
Zigate V2, volets Somfy & Bubbendorf, radiat. en Tado° & fil pilote, gestion borne IRVE, gestion piscine, PAC & Clim Mitsubishi ...
H.A sur base de PC recyclé, avec Z-Wave & Zigbee
Fab_Rice
 
Messages : 1370
Inscription : 27 Déc 2020

Re: Izypower

Messagepar Chris59 » 13 Sep 2026 22:06

Bonsoir Fab_Rice,

J'ai suivi ton lien et fait plein de test avec Gemini, Merci pour la suggestion. Mais je fini par tourner en rond car les scripts ne fonctionnent pas, il y a des erreurs pour récupérer l'adresse du cloud izypower (## ERROR: Querying [https://izypower.cloud] Error 6: Could not resolve host: izypower.cloud ECHEC AUTHENTIFICATIONCould not resolve host: izypower.cloud)

Bref, je creuse une autre voie.
Puisque l'on peut importer un script php dans eedomus via http://[IP_DE_VOTRE_EEDOMUS]/script/ et que l'on trouve des scripts écrits pour Jeedom (https://github.com/mathman/izypower/blo ... .class.php) et (https://github.com/mathman/izypower) ces scripts fonctionnent-ils aussi pour Eedomus ?

Avant de tout casser, je préfère demander ...
Domotisation avec Eedomus, Fibaro et Qubino : 11 volets roulants filaires, 2 porte de garage, 1 portail, 2 variateurs de lumière, 5 capteurs de température, 1 VMC, 1 alarme, une pompe à chaleur/clim, une pompe à eau
Chris59
 
Messages : 183
Inscription : 23 Déc 2020

Re: Izypower

Messagepar Chris59 » 13 Sep 2026 22:58

Je pense avoir avancé un peu car avec l'aide de Gemini, j'ai traduit, à priori le plugin jeedom pour qu'il soit compréhensible par Eedomus.

On peut enregistrer le code suivant dans un fichier Izypower_Eedomus.php puis charger ce code en local dans Eedomus.

Code : Tout sélectionner
<?php
/**
 * Script Izypower Cloud pour Eedomus (Version Sécurisée & Anti-Caractères Spéciaux)
 */

// ==========================================
// CONFIGURATION : Remplissez vos identifiants
// ==========================================
$username    = "VOTRE_EMAIL_IZYPOWER";
$password    = "VOTRE_MOT_DE_PASSE";
$stationId   = "VOTRE_STATION_ID";
$serialNum   = "VOTRE_NUMERO_DE_SERIE";
$action      = getArg('action', false, 'getStationInfo');

// Passage en HTTPS pour la sécurité des identifiants
$baseUrl = 'https://izypowercloud.fr';

// ==========================================
// 1. AUTHENTIFICATION (LOGIN)
// ==========================================
$loginUrl = $baseUrl . '/api/login';

// Protection contre les caractères spéciaux (ex: guillemets dans le mot de passe)
$cleanUsername = addslashes($username);
$cleanPassword = addslashes($password);

// Reconstruction du JSON propre
$loginBody = '{"username":"' . $cleanUsername . '","password":"' . $cleanPassword . '"}';

$loginHeaders = array(
    'Content-Type: application/json',
    'Accept-Language: fr',
    'app-platform: izy'
);

// Appel API pour récupérer le token
$loginResult = httpQuery($loginUrl, 'POST', $loginBody, NULL, $loginHeaders);
$loginData = sdk_json_decode($loginResult);

if (!is_array($loginData) || !isset($loginData['data']['token'])) {
    sdk_header('text/xml');
    echo "<izypower><error>Echec authentification Izypower</error></izypower>";
    die();
}

$token = $loginData['data']['token'];

// Configuration des Headers pour les requêtes suivantes
$headers = array(
    'x-tts-access-token: ' . $token,
    'Accept-Language: fr',
    'app-platform: izy'
);

// ==========================================
// 2. EXÉCUTION DE L'ACTION DEMANDÉE
// ==========================================
$response = "";

switch ($action) {
    case 'getStations':
        $url = $baseUrl . '/api/powerStations/page?page=1&limit=100';
        $response = httpQuery($url, 'GET', NULL, NULL, $headers);
        break;
       
    case 'getStationInfo':
        if (empty($stationId) || $stationId == "VOTRE_STATION_ID") {
            $response = '{"error": "Missing stationId"}';
        } else {
            $url = $baseUrl . '/api/v3/powerStations/info/' . $stationId;
            $response = httpQuery($url, 'GET', NULL, NULL, $headers);
        }
        break;
       
    case 'getBatteryLinks':
        if (empty($serialNum) || $serialNum == "VOTRE_NUMERO_DE_SERIE") {
            $response = '{"error": "Missing serialNum"}';
        } else {
            $url = $baseUrl . '/izy/v2/battery/' . $serialNum;
            $response = httpQuery($url, 'GET', NULL, NULL, $headers);
        }
        break;
       
    default:
        $response = '{"error": "Unknown action"}';
        break;
}

// ==========================================
// 3. GÉNÉRATION DU XML (FORMAT EEDOMUS)
// ==========================================
sdk_header('text/xml');
$xmlOutput = jsonToXML($response);
echo $xmlOutput;
?>



Il faut au tout début mettre :
son mail
son mot de passe
son station_ID (je n'ai pas encore trouvé le mien)
son numéro de série

Il y a encore un peu de travail ...
Domotisation avec Eedomus, Fibaro et Qubino : 11 volets roulants filaires, 2 porte de garage, 1 portail, 2 variateurs de lumière, 5 capteurs de température, 1 VMC, 1 alarme, une pompe à chaleur/clim, une pompe à eau
Chris59
 
Messages : 183
Inscription : 23 Déc 2020


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 43 invité(s)

cron