Bienvenue, Visiteur |
Vous devez vous enregistrer avant de pouvoir poster.
|
Statistiques du Forum |
» Membres : 644
» Dernier membre : Blais
» Sujets du forum : 437
» Messages du forum : 3,100
Statistiques complètes
|
Utilisateurs en ligne |
Il y a actuellement 349 utilisateurs connectés. » 4 Membre(s) | 343 Visiteur(s) Bing, Google, 38domo, Nanoux_14, Steve82, Tristan
|
|
|
Intégration shelly PRO em |
Posté par : Raphael591 - 12-06-2024, 05:49 PM - Forum : Evolutions faites, à faire, dont vous rêvez...
- Réponses (26)
|
|
EDIT 02/07/2024
Des modifications sur la V11 empêche la reprise du fichier des versions précédentes (Reboot).
Fichier Source_ShellyEm.ino modifié pour la V11 ici : https://uploadnow.io/f/PkNvnnT
Bonjour,
Je me suis lancé dans la conception du routeur.
Problème rencontré, je dispose d'un Shelly Pro Em.
Hors la requête HTTP à effectuer est différente d'un shelly EM classique, et la réponse JSON également.
J'ai dû modifier le code source dans le fichier Source_ShellyEm.ino
Voici les modifications effectuées pour un shelly PRO em.
Si cela pouvait être intégré aux prochaines version se serait top.
La requête : http://IP_SHELLY/rpc/shelly.getstatus
Modification du fichier Source_ShellyEm.ino
Déclaration à ajouter pour la récupération
String tmp;
Modification de la requête http :
String url = "/rpc/Shelly.GetStatus";
Modification de la partie commenté Monophasé
Code : //Monophasé
//***************** ADD PERSO : PRO EM ******************
ShEm_dataBrute = "<strong>Monophasé</strong><br>" + Shelly_Data;
tmp=PrefiltreJson("em1:"+ String(Voie),":",Shelly_Data);
//Récupération partie pince sur la voie paramètré
Pw = ValJson("act_power",tmp);
voltage = ValJson("voltage",tmp);
pf = ValJson("pf",tmp);
pf = abs(pf);
if (pf > 1) pf = 1;
if (Voie == voie) { //voie du routeur
if (Pw >= 0) {
PuissanceS_M_inst = Pw;
PuissanceI_M_inst = 0;
if (pf > 0.01) {
PVAS_M_inst = PfloatMax(Pw / pf);
} else {
PVAS_M_inst = 0;
}
PVAI_M_inst = 0;
} else {
PuissanceS_M_inst = 0;
PuissanceI_M_inst = -Pw;
if (pf > 0.01) {
PVAI_M_inst = PfloatMax(-Pw / pf);
} else {
PVAI_M_inst = 0;
}
PVAS_M_inst = 0;
}
tmp=PrefiltreJson("em1data:"+ String(Voie),":",Shelly_Data);
Energie_M_Soutiree = myLongJson("total_act_energy",tmp);
Energie_M_Injectee = myLongJson("total_act_ret_energy",tmp);
PowerFactor_M = pf;
Tension_M = voltage;
Pva_valide=true;
} else { // voie secondaire
if (LissageLong) {
PwMoy2 = 0.2 * Pw + 0.8 * PwMoy2; //Lissage car moins de mesure sur voie secondaire
pfMoy2 = 0.2 * pf + 0.8 * pfMoy2;
Pw = PwMoy2;
pf = pfMoy2;
}
if (Pw >= 0) {
PuissanceS_T_inst = Pw;
PuissanceI_T_inst = 0;
if (pf > 0.01) {
PVAS_T_inst = PfloatMax(Pw / pf);
} else {
PVAS_T_inst = 0;
}
PVAI_T_inst = 0;
} else {
PuissanceS_T_inst = 0;
PuissanceI_T_inst = -Pw;
if (pf > 0.01) {
PVAI_T_inst = PfloatMax(-Pw / pf);
} else {
PVAI_T_inst = 0;
}
PVAS_T_inst = 0;
}
tmp=PrefiltreJson("em1data:"+ String(Voie),":",Shelly_Data);
Energie_T_Soutiree = myLongJson("total_act_energy",tmp);
Energie_T_Injectee = myLongJson("total_act_ret_energy",tmp);
PowerFactor_T = pf;
Tension_T = voltage;
}
NB : Voici le format du JSON
Code : {
"ble": {},
"cloud": {
"connected": true
},
"em1:0": {
"id": 0,
"current": 2.454,
"voltage": 239.9,
"act_power": 226.5,
"aprt_power": 590.1,
"pf": 0.62,
"freq": 50,
"calibration": "factory"
},
"em1:1": {
"id": 1,
"current": 1.782,
"voltage": 239.9,
"act_power": 426.4,
"aprt_power": 429.6,
"pf": 0.99,
"freq": 50,
"calibration": "factory"
},
"em1data:0": {
"id": 0,
"total_act_energy": 995515.84,
"total_act_ret_energy": 106191.28
},
"em1data:1": {
"id": 1,
"total_act_energy": 477522.54,
"total_act_ret_energy": 756.38
},
"eth": {
"ip": null
},
"modbus": {},
"mqtt": {
"connected": false
},
"switch:0": {
"id": 0,
"source": "WS_in",
"output": false,
"temperature": {
"tC": 37,
"tF": 98.6
}
},
"sys": {
"mac": "34987A6XXXXX",
"restart_required": false,
"time": "17:13",
"unixtime": 1718205196,
"uptime": 419677,
"ram_size": 243368,
"ram_free": 117336,
"fs_size": 524288,
"fs_free": 192512,
"cfg_rev": 22,
"kvs_rev": 0,
"schedule_rev": 15,
"webhook_rev": 9,
"available_updates": {},
"reset_reason": 3
},
"wifi": {
"sta_ip": "192.168.1.XX",
"status": "got ip",
"ssid": "Freebox-XXXX",
"rssi": -50
},
"ws": {
"connected": false
}
}
|
|
|
Licence Radioamateur |
Posté par : Alain59 - 12-06-2024, 12:41 PM - Forum : Remote SDR (Fr)
- Réponses (3)
|
|
Bonjour André,
Je suis ingénieur en mécanique, en activité.
J'ai toujours été passionné et curieux des sujets en électricité et électronique. j'ai de bonnes notions.
La diffusion CB sur les ondes a occupé une bonne partie de mon temps dans ma jeunesse.
Passé la soixantaine, j'envisage d'obtenir la licence Radioamateur.
Peux-tu m'indiquer quel serait pour moi le moyen le plus efficace pour me former sur les deux chapitres législation et technique.
Merci pour ton retour.
Cordialement
Alain
|
|
|
MQTT : Valeur Triac/Relai Actif |
Posté par : Nalexdouze - 12-06-2024, 09:47 AM - Forum : Evolutions faites, à faire, dont vous rêvez...
- Réponses (5)
|
|
Bonjour,
Je souhaitais savoir si le triac ou un relai était actif (!=0) au sein de mon Jeedom.
Pour ce faire j'ai :
ajouté au début de la void sendMQTTDiscoveryMsg_global()
et vers la fin
Code : for (int i = 0; i < NbActions; i++) {
ActType = "Ouverture_Relais_" + String(i);
if (i == 0) ActType = "OuvertureTriac";
DeviceToDiscover(ActType, "%", "power_factor", "0"); //Type power factor pour etre accepté par HA
}
est devenu
Code : for (int i = 0; i < NbActions; i++) {
ActType = "Ouverture_Relais_" + String(i);
ActifType = "Actif_Relais_" + String(i);
if (i == 0) {
ActType = "Ouverture_Triac";
ActifType = "Actif_Triac";
}
DeviceToDiscover(ActType, "%", "power_factor", "0"); //Type power factor pour etre accepté par HA
DeviceToDiscover(ActifType, "", "", "0");
}
ajouté au début de la void SendDataToHomeAssistant()
et vers la fin
Code : for (int i = 0; i < NbActions; i++) {
ActType = "Ouverture_Relais_" + String(i);
if (i == 0) ActType = "OuvertureTriac";
int Ouv = 100 - Retard[i];
sprintf(value, "%s,\"%s\":%d", value, ActType.c_str(), Ouv);
if (Ouv > 0) {
sprintf(value, "%s,\"%s\":%d", value, "Actif", 1);
}
else{
sprintf(value, "%s,\"%s\":%d", value, "Actif", 0);
}
}
est devenu
Code : for (int i = 0; i < NbActions; i++) {
ActType = "Ouverture_Relais_" + String(i);
ActifType = "Actif_Relais_" + String(i);
if (i == 0) {
ActType = "Ouverture_Triac";
ActifType = "Actif_Triac";
}
int Ouv = 100 - Retard[i];
sprintf(value, "%s,\"%s\":%d", value, ActType.c_str(), Ouv);
if (Ouv != 0) {
sprintf(value, "%s,\"%s\":%d", value, ActifType.c_str(), 1);
}
else{
sprintf(value, "%s,\"%s\":%d", value, ActifType.c_str(), 0);
}
}
J'ai également changé les 2 OuvertureTriac par Ouverture_Triac c'est un détail pour avoir une cohérence de présentation avec les relais
Cordialement
Alexis
|
|
|
Panne du routeur après quelques mois |
Posté par : Aurel.dup - 11-06-2024, 11:59 PM - Forum : Routeur Photovoltaïque
- Réponses (10)
|
|
Bonjour, mon routeur marchait au poil depuis plusieurs mois mais depuis deux jours il ne route plus rien. Le jsy informe toujours de la puissance d'injection, je vois bien la consigne du triac passer petit a petit a 100÷ mais plus rien n'est consommé par mon cumulus. Si je passe le cumulus en mode forcé, sans passer par le triac il chauffe a fond correctement. J'ai changé le BTA40-800B pensant qu'il avait grillé mais c'est toujours pareil. La LED bleu du robotdyn est fixe. D'où peut venir cette panne soudaine si ce n'est pas le triac?
Que puis-je tester pour cerner le problème ?
Merci d'avance.
|
|
|
|