<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[F1ATB forum - Evolutions faites, à faire, dont vous rêvez...]]></title>
		<link>https://f1atb.fr/forum_f1atb/</link>
		<description><![CDATA[F1ATB forum - https://f1atb.fr/forum_f1atb]]></description>
		<pubDate>Tue, 23 Jun 2026 18:12:40 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Prévision ensoleillement - Routeur F1ATB-S3]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2829.html</link>
			<pubDate>Tue, 23 Jun 2026 07:11:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=1">F1ATB</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2829.html</guid>
			<description><![CDATA[Actuellement en phase de développement d'un nouveau routeur avec un ESP32-S3, je souhaite intégrer la prévision d'ensoleillement pour la journée à venir afin de forcer des actions comme le chauffage de l'eau sanitaire la nuit si les prévisions sont mauvaises. Utile pour la douche du soir.<br />
<br />
Certains d'entre vous ont implanté ce type de fonction dans des systèmes de domotique. Quel prestataire utilisez-vous ? Est-il fiable et gratuit ? Complexité de l'API ? <br />
<br />
Vos suggestions svp<br />
<br />
André / F1ATB]]></description>
			<content:encoded><![CDATA[Actuellement en phase de développement d'un nouveau routeur avec un ESP32-S3, je souhaite intégrer la prévision d'ensoleillement pour la journée à venir afin de forcer des actions comme le chauffage de l'eau sanitaire la nuit si les prévisions sont mauvaises. Utile pour la douche du soir.<br />
<br />
Certains d'entre vous ont implanté ce type de fonction dans des systèmes de domotique. Quel prestataire utilisez-vous ? Est-il fiable et gratuit ? Complexité de l'API ? <br />
<br />
Vos suggestions svp<br />
<br />
André / F1ATB]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[configuration routeur avec triac]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2827.html</link>
			<pubDate>Mon, 22 Jun 2026 16:14:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2911">Terry</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2827.html</guid>
			<description><![CDATA[Bonjour suis débutant et j’aimerai savoir comment configurer mon routeur pour qu’il<br />
S’actionne quand il y a un surplus actuellement j’ai surplus de 600 w qui parte à Edf<br />
Et je n’arrive pas à faire démarrer le routeur<br />
Normalement il devrai démarrer automatiquement quand il y à du surplus enfin je pense<br />
quand j'arrive à le demarrer il me consomme plus que les panneaux<br />
Ma config 3 kW  un triac pour alimente mon cumulus avec un Uxlx2 qui commande<br />
Merci d’avance pour votre aide<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6308" target="_blank" title="">b1782115709347.jpg</a> (Taille : 441.12 Ko / Téléchargements : 9)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6309" target="_blank" title="">b1782115741213.jpg</a> (Taille : 327.9 Ko / Téléchargements : 12)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6310" target="_blank" title="">b1782115761083.jpg</a> (Taille : 320.6 Ko / Téléchargements : 16)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Bonjour suis débutant et j’aimerai savoir comment configurer mon routeur pour qu’il<br />
S’actionne quand il y a un surplus actuellement j’ai surplus de 600 w qui parte à Edf<br />
Et je n’arrive pas à faire démarrer le routeur<br />
Normalement il devrai démarrer automatiquement quand il y à du surplus enfin je pense<br />
quand j'arrive à le demarrer il me consomme plus que les panneaux<br />
Ma config 3 kW  un triac pour alimente mon cumulus avec un Uxlx2 qui commande<br />
Merci d’avance pour votre aide<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6308" target="_blank" title="">b1782115709347.jpg</a> (Taille : 441.12 Ko / Téléchargements : 9)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6309" target="_blank" title="">b1782115741213.jpg</a> (Taille : 327.9 Ko / Téléchargements : 12)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6310" target="_blank" title="">b1782115761083.jpg</a> (Taille : 320.6 Ko / Téléchargements : 16)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[mise a jour 17.20 a 17.21 avec shelly EM]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2806.html</link>
			<pubDate>Mon, 15 Jun 2026 06:25:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=706">pquerouil</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2806.html</guid>
			<description><![CDATA[Bonjour,<br />
Après mise à jour 17.21 je n'ai plus de connections au shelly em. si je repasse en 17.20 cela fonctionne.<br />
Peut être un problème?  <br />
Bonne journée<br />
Merci aux développeurs pour ce super boulot.<br />
philippe]]></description>
			<content:encoded><![CDATA[Bonjour,<br />
Après mise à jour 17.21 je n'ai plus de connections au shelly em. si je repasse en 17.20 cela fonctionne.<br />
Peut être un problème?  <br />
Bonne journée<br />
Merci aux développeurs pour ce super boulot.<br />
philippe]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Intégration Shelly Pro 3EM Ecoflow]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2785.html</link>
			<pubDate>Fri, 05 Jun 2026 10:40:35 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2859">sof60</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2785.html</guid>
			<description><![CDATA[Bonjour à tous,<br />
<br />
Nouveau utilisateur du routeur F1ATB (merci André pour ce travail très approfondi !), j'ai un compteur Shelly x Ecoflow Pro 3EM.<br />
Malheureusement le routeur F1ATB n'arrive pas à le lire correctement <img src="https://f1atb.fr/forum_f1atb/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" /><br />
<br />
Celui-ci doit obligatoirement être configuré en triphasé (alors que mon installation est monophasée), sinon l'application Ecoflow ne sait plus l'exploiter (je précise que j'ai une batterie STREAM géré directement par l'appli).<br />
<br />
Or sur le routeur (version 16.10), j'ai configuré le paramètre SHELLY PRO EM en voie 3, mais après redémarrage de l'ESP, dans données brutes c'est...vide !<br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6107" target="_blank" title="">Screenshot_20260605_123559_Opera.jpg</a> (Taille : 597.98 Ko / Téléchargements : 8)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6108" target="_blank" title="">tempFileForShare_20260605-123524.jpg</a> (Taille : 114.53 Ko / Téléchargements : 7)
<!-- end: postbit_attachments_attachment --><br />
<br />
<br />
Je pense tout simplement que le code dans le routeur ne s'attend pas a voir l'id (avec IP_SHELLY/rpc/shelly.getdeviceinfo) : ecoflowpro3em-ece334eb27bc<br />
<br />
{<br />
  "name": null,<br />
  "id": "ecoflowpro3em-ece334eb27bc",<br />
  "mac": "ECE334EB27BC",<br />
  "slot": 0,<br />
  "model": "EFPEM-003CEBEU120",<br />
  "gen": 2,<br />
  "fw_id": "20260311-095918/1.7.5-g9979d16",<br />
  "ver": "1.7.5",<br />
  "app": "Pro3EMEF",<br />
  "auth_en": false,<br />
  "auth_domain": null,<br />
  "profile": "triphase",<br />
  "provision": "complete"<br />
}<br />
<br />
pour le reste je pense avoir la même structure JSON quand je fais (IP_SHELLY/rpc/shelly.getstatus) qu'un shelly PRO 3EM (ici la phase A est seulement connectée, j'ai une installation monophasée) :<br />
<br />
{<br />
  "ble": {<br />
<br />
  },<br />
  "bthome": {<br />
<br />
  },<br />
  "cloud": {<br />
    "connected": true<br />
  },<br />
  "em:0": {<br />
    "id": 0,<br />
    "a_current": 1.895,<br />
    "a_voltage": 237,<br />
    "a_act_power": -5.1,<br />
    "a_aprt_power": 448.9,<br />
    "a_pf": 0.02,<br />
    "a_freq": 50,<br />
    "b_current": 0.028,<br />
    "b_voltage": 0,<br />
    "b_act_power": 0,<br />
    "b_aprt_power": 0,<br />
    "b_pf": 0,<br />
    "b_freq": 0,<br />
    "c_current": 0.028,<br />
    "c_voltage": 236.9,<br />
    "c_act_power": 0,<br />
    "c_aprt_power": 6.6,<br />
    "c_pf": 0,<br />
    "c_freq": 50,<br />
    "n_current": null,<br />
    "total_current": 1.951,<br />
    "total_act_power": -5.131,<br />
    "total_aprt_power": 455.573,<br />
    "user_calibrated_phase": []<br />
  },<br />
  "emdata:0": {<br />
    "id": 0,<br />
    "a_total_act_energy": 5.77,<br />
    "a_total_act_ret_energy": 4.51,<br />
    "b_total_act_energy": 0.01,<br />
    "b_total_act_ret_energy": 0,<br />
    "c_total_act_energy": 0.01,<br />
    "c_total_act_ret_energy": 0,<br />
    "total_act": 5.78,<br />
    "total_act_ret": 4.51<br />
  },<br />
  "eth": {<br />
    "ip": null,<br />
    "ip6": null<br />
  },<br />
  "modbus": {<br />
<br />
  },<br />
  "mqtt": {<br />
    "connected": true<br />
  },<br />
  "script:1": {<br />
    "id": 1,<br />
    "running": true,<br />
    "mem_used": 560,<br />
    "mem_peak": 2674,<br />
    "mem_free": 24388,<br />
    "cpu": 8<br />
  },<br />
  "script:2": {<br />
    "id": 2,<br />
    "running": true,<br />
    "mem_used": 224,<br />
    "mem_peak": 3752,<br />
    "mem_free": 24388,<br />
    "cpu": 2<br />
  },<br />
  "sys": {<br />
    "mac": "ECE334EB27BC",<br />
    "restart_required": false,<br />
    "time": "12:30",<br />
    "unixtime": 1780655429,<br />
    "last_sync_ts": 1780654705,<br />
    "uptime": 729,<br />
    "ram_size": 257928,<br />
    "ram_free": 45388,<br />
    "ram_min_free": 16964,<br />
    "fs_size": 524288,<br />
    "fs_free": 180224,<br />
    "cfg_rev": 18,<br />
    "kvs_rev": 0,<br />
    "schedule_rev": 4,<br />
    "webhook_rev": 4,<br />
    "btrelay_rev": 0,<br />
    "available_updates": {<br />
      "beta": {<br />
        "version": "2.0.0-beta1"<br />
      }<br />
    },<br />
    "reset_reason": 3,<br />
    "utc_offset": 7200<br />
  },<br />
  "temperature:0": {<br />
    "id": 0,<br />
    "tC": 48.2,<br />
    "tF": 118.8<br />
  },<br />
  "wifi": {<br />
    "sta_ip": "192.168.20.32",<br />
    "status": "got ip",<br />
    "ssid": "RYZ-IoT",<br />
    "bssid": "cc:d8:43:04:2e:b8",<br />
    "rssi": -44,<br />
    "sta_ip6": [<br />
      "fe80::eee3:34ff:feeb:27bc",<br />
      "fd47:8ccf:66eb:0:eee3:34ff:feeb:27bc"<br />
    ]<br />
  },<br />
  "ws": {<br />
    "connected": false<br />
  }<br />
}<br />
<br />
Quelqu'un aurait-il une idée ? je pense qu'il faut recompiler le code en intégrant le bon ID, mais je suis novice en programmation... J'ai aussi un Home Assistant, mais je ne souhaite pas passer par du MQTT, cela ajoute un délai....<br />
<br />
Merci d'avance !<br />
<span style="color: #000000;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size"><span style="font-family: Times New Roman;" class="mycode_font">}</span></span></span>]]></description>
			<content:encoded><![CDATA[Bonjour à tous,<br />
<br />
Nouveau utilisateur du routeur F1ATB (merci André pour ce travail très approfondi !), j'ai un compteur Shelly x Ecoflow Pro 3EM.<br />
Malheureusement le routeur F1ATB n'arrive pas à le lire correctement <img src="https://f1atb.fr/forum_f1atb/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" /><br />
<br />
Celui-ci doit obligatoirement être configuré en triphasé (alors que mon installation est monophasée), sinon l'application Ecoflow ne sait plus l'exploiter (je précise que j'ai une batterie STREAM géré directement par l'appli).<br />
<br />
Or sur le routeur (version 16.10), j'ai configuré le paramètre SHELLY PRO EM en voie 3, mais après redémarrage de l'ESP, dans données brutes c'est...vide !<br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6107" target="_blank" title="">Screenshot_20260605_123559_Opera.jpg</a> (Taille : 597.98 Ko / Téléchargements : 8)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6108" target="_blank" title="">tempFileForShare_20260605-123524.jpg</a> (Taille : 114.53 Ko / Téléchargements : 7)
<!-- end: postbit_attachments_attachment --><br />
<br />
<br />
Je pense tout simplement que le code dans le routeur ne s'attend pas a voir l'id (avec IP_SHELLY/rpc/shelly.getdeviceinfo) : ecoflowpro3em-ece334eb27bc<br />
<br />
{<br />
  "name": null,<br />
  "id": "ecoflowpro3em-ece334eb27bc",<br />
  "mac": "ECE334EB27BC",<br />
  "slot": 0,<br />
  "model": "EFPEM-003CEBEU120",<br />
  "gen": 2,<br />
  "fw_id": "20260311-095918/1.7.5-g9979d16",<br />
  "ver": "1.7.5",<br />
  "app": "Pro3EMEF",<br />
  "auth_en": false,<br />
  "auth_domain": null,<br />
  "profile": "triphase",<br />
  "provision": "complete"<br />
}<br />
<br />
pour le reste je pense avoir la même structure JSON quand je fais (IP_SHELLY/rpc/shelly.getstatus) qu'un shelly PRO 3EM (ici la phase A est seulement connectée, j'ai une installation monophasée) :<br />
<br />
{<br />
  "ble": {<br />
<br />
  },<br />
  "bthome": {<br />
<br />
  },<br />
  "cloud": {<br />
    "connected": true<br />
  },<br />
  "em:0": {<br />
    "id": 0,<br />
    "a_current": 1.895,<br />
    "a_voltage": 237,<br />
    "a_act_power": -5.1,<br />
    "a_aprt_power": 448.9,<br />
    "a_pf": 0.02,<br />
    "a_freq": 50,<br />
    "b_current": 0.028,<br />
    "b_voltage": 0,<br />
    "b_act_power": 0,<br />
    "b_aprt_power": 0,<br />
    "b_pf": 0,<br />
    "b_freq": 0,<br />
    "c_current": 0.028,<br />
    "c_voltage": 236.9,<br />
    "c_act_power": 0,<br />
    "c_aprt_power": 6.6,<br />
    "c_pf": 0,<br />
    "c_freq": 50,<br />
    "n_current": null,<br />
    "total_current": 1.951,<br />
    "total_act_power": -5.131,<br />
    "total_aprt_power": 455.573,<br />
    "user_calibrated_phase": []<br />
  },<br />
  "emdata:0": {<br />
    "id": 0,<br />
    "a_total_act_energy": 5.77,<br />
    "a_total_act_ret_energy": 4.51,<br />
    "b_total_act_energy": 0.01,<br />
    "b_total_act_ret_energy": 0,<br />
    "c_total_act_energy": 0.01,<br />
    "c_total_act_ret_energy": 0,<br />
    "total_act": 5.78,<br />
    "total_act_ret": 4.51<br />
  },<br />
  "eth": {<br />
    "ip": null,<br />
    "ip6": null<br />
  },<br />
  "modbus": {<br />
<br />
  },<br />
  "mqtt": {<br />
    "connected": true<br />
  },<br />
  "script:1": {<br />
    "id": 1,<br />
    "running": true,<br />
    "mem_used": 560,<br />
    "mem_peak": 2674,<br />
    "mem_free": 24388,<br />
    "cpu": 8<br />
  },<br />
  "script:2": {<br />
    "id": 2,<br />
    "running": true,<br />
    "mem_used": 224,<br />
    "mem_peak": 3752,<br />
    "mem_free": 24388,<br />
    "cpu": 2<br />
  },<br />
  "sys": {<br />
    "mac": "ECE334EB27BC",<br />
    "restart_required": false,<br />
    "time": "12:30",<br />
    "unixtime": 1780655429,<br />
    "last_sync_ts": 1780654705,<br />
    "uptime": 729,<br />
    "ram_size": 257928,<br />
    "ram_free": 45388,<br />
    "ram_min_free": 16964,<br />
    "fs_size": 524288,<br />
    "fs_free": 180224,<br />
    "cfg_rev": 18,<br />
    "kvs_rev": 0,<br />
    "schedule_rev": 4,<br />
    "webhook_rev": 4,<br />
    "btrelay_rev": 0,<br />
    "available_updates": {<br />
      "beta": {<br />
        "version": "2.0.0-beta1"<br />
      }<br />
    },<br />
    "reset_reason": 3,<br />
    "utc_offset": 7200<br />
  },<br />
  "temperature:0": {<br />
    "id": 0,<br />
    "tC": 48.2,<br />
    "tF": 118.8<br />
  },<br />
  "wifi": {<br />
    "sta_ip": "192.168.20.32",<br />
    "status": "got ip",<br />
    "ssid": "RYZ-IoT",<br />
    "bssid": "cc:d8:43:04:2e:b8",<br />
    "rssi": -44,<br />
    "sta_ip6": [<br />
      "fe80::eee3:34ff:feeb:27bc",<br />
      "fd47:8ccf:66eb:0:eee3:34ff:feeb:27bc"<br />
    ]<br />
  },<br />
  "ws": {<br />
    "connected": false<br />
  }<br />
}<br />
<br />
Quelqu'un aurait-il une idée ? je pense qu'il faut recompiler le code en intégrant le bon ID, mais je suis novice en programmation... J'ai aussi un Home Assistant, mais je ne souhaite pas passer par du MQTT, cela ajoute un délai....<br />
<br />
Merci d'avance !<br />
<span style="color: #000000;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size"><span style="font-family: Times New Roman;" class="mycode_font">}</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Creation de profils pilotables via Home Assistant]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2782.html</link>
			<pubDate>Wed, 03 Jun 2026 08:29:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2781">remizik</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2782.html</guid>
			<description><![CDATA[Bonjour,<br />
<br />
Est-il possible de piloter l'ESP32 depuis home assistant ?<br />
<br />
J'aimerais pouvoir déclencher ou non le triac la nuit selon la météo du jour et du lendemain.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Scenario 1 :</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Aujourd'hui  </span>     -&gt; grand soleil, triac ouvert, ballon d'eau chaude chauffé au max<br />
<span style="font-style: italic;" class="mycode_i">Demain</span>            -&gt; météo annonce grand soleil<br />
<span style="font-style: italic;" class="mycode_i">Pilotage souhaité -</span>&gt; pas d'ouverture du triac cette nuit<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Scenario 2 : </span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Aujourd'hui   </span>    -&gt; peu de soleil, triac très peu ouvert, pas de chauffe du ballon d'eau chaude<br />
<span style="font-style: italic;" class="mycode_i">Demain</span>            -&gt; météo annonce grand soleil<br />
<span style="font-style: italic;" class="mycode_i">Pilotage souhaité </span>-&gt; pas d'ouverture du triac cette nuit car suffisament d'eau chaude, et il sera chauffé demain<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Scenario 3 :</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Aujourd'hui   </span>    -&gt; peu de soleil, triac très peu ouvert, pas de chauffe du ballon d'eau chaude<br />
<span style="font-style: italic;" class="mycode_i">Demain</span>            -&gt; pas de soleil<br />
<span style="font-style: italic;" class="mycode_i">Pilotage souhaité</span> -&gt; ouverture du triac cette nuit<br />
<br />
Peut etre avoir un gestion de profils au niveau du routeur solaire, pilotable via HA ?<br />
Je ne sais pas ce qui est possible<br />
<br />
Merci à vous <img src="https://f1atb.fr/forum_f1atb/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" />]]></description>
			<content:encoded><![CDATA[Bonjour,<br />
<br />
Est-il possible de piloter l'ESP32 depuis home assistant ?<br />
<br />
J'aimerais pouvoir déclencher ou non le triac la nuit selon la météo du jour et du lendemain.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Scenario 1 :</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Aujourd'hui  </span>     -&gt; grand soleil, triac ouvert, ballon d'eau chaude chauffé au max<br />
<span style="font-style: italic;" class="mycode_i">Demain</span>            -&gt; météo annonce grand soleil<br />
<span style="font-style: italic;" class="mycode_i">Pilotage souhaité -</span>&gt; pas d'ouverture du triac cette nuit<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Scenario 2 : </span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Aujourd'hui   </span>    -&gt; peu de soleil, triac très peu ouvert, pas de chauffe du ballon d'eau chaude<br />
<span style="font-style: italic;" class="mycode_i">Demain</span>            -&gt; météo annonce grand soleil<br />
<span style="font-style: italic;" class="mycode_i">Pilotage souhaité </span>-&gt; pas d'ouverture du triac cette nuit car suffisament d'eau chaude, et il sera chauffé demain<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Scenario 3 :</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Aujourd'hui   </span>    -&gt; peu de soleil, triac très peu ouvert, pas de chauffe du ballon d'eau chaude<br />
<span style="font-style: italic;" class="mycode_i">Demain</span>            -&gt; pas de soleil<br />
<span style="font-style: italic;" class="mycode_i">Pilotage souhaité</span> -&gt; ouverture du triac cette nuit<br />
<br />
Peut etre avoir un gestion de profils au niveau du routeur solaire, pilotable via HA ?<br />
Je ne sais pas ce qui est possible<br />
<br />
Merci à vous <img src="https://f1atb.fr/forum_f1atb/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Routeur F1ATB en remplacement d'un routeur ARSUN]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2764.html</link>
			<pubDate>Fri, 29 May 2026 08:52:30 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2838">stef wasnes</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2764.html</guid>
			<description><![CDATA[Bonjour,<br />
<br />
Nouveau sur le groupe, je suis équipé d'un routeur solaire ARSUN 2 voies qui ne me donne pas entière satisfaction, j'envisage de le remplacer par un routeur F1ATB, j'avais hésité à l'époque de son achat.<br />
<br />
Je vous explique d'abord mon insatisfaction vis à vis du ARSUN :<br />
- il ne régule pas assez vite et a tendance à consommer sur le réseau avant de réguler, des fois il ne régule pas et consomme sur le réseau<br />
- il ne permet pas de se connecter sur Home assistant<br />
Pour compenser ces désagréments j'ai ajouté des Shelly qui mesurent la puissance produite par mes panneaux solaires et des relais shelly que je peux éteindre au besoin (un sur chaque sortie du ARSUN).<br />
Du coup dans HA, j'ai fait une routine pour "sanctionner" le routeur lorsqu'il ne régule pas assez vite ou lorsqu'il consomme trop sur le réseau, mais la encore les Shelly (ou HA) ne sont pas toujours réactifs.<br />
<br />
J'ai sous la main des ESP32, un en version ESP32D et un en version ESP32S, dans la documentation je ne vois pas ces modèles, je me dis qu'il doit y avoir une raison (probablement de performances ou de stockage).<br />
==&gt; ou sont les lignes de code a intégrer sur les ESP ?<br />
==&gt; devrais-je plutôt utiliser un ESP32-WROOM ?<br />
<br />
J'ai déjà un ESP32S configuré dans HA par ESP-homebuilder qui me permet de surveiller le fonctionnement de mon onduleur Growatt et de sa batterie sur la partie autoconsommation, si j'ai bien lu, la configuration pour le F1ATB est un peu différente car on le programme en ARDUINO c'est bien cela ?]]></description>
			<content:encoded><![CDATA[Bonjour,<br />
<br />
Nouveau sur le groupe, je suis équipé d'un routeur solaire ARSUN 2 voies qui ne me donne pas entière satisfaction, j'envisage de le remplacer par un routeur F1ATB, j'avais hésité à l'époque de son achat.<br />
<br />
Je vous explique d'abord mon insatisfaction vis à vis du ARSUN :<br />
- il ne régule pas assez vite et a tendance à consommer sur le réseau avant de réguler, des fois il ne régule pas et consomme sur le réseau<br />
- il ne permet pas de se connecter sur Home assistant<br />
Pour compenser ces désagréments j'ai ajouté des Shelly qui mesurent la puissance produite par mes panneaux solaires et des relais shelly que je peux éteindre au besoin (un sur chaque sortie du ARSUN).<br />
Du coup dans HA, j'ai fait une routine pour "sanctionner" le routeur lorsqu'il ne régule pas assez vite ou lorsqu'il consomme trop sur le réseau, mais la encore les Shelly (ou HA) ne sont pas toujours réactifs.<br />
<br />
J'ai sous la main des ESP32, un en version ESP32D et un en version ESP32S, dans la documentation je ne vois pas ces modèles, je me dis qu'il doit y avoir une raison (probablement de performances ou de stockage).<br />
==&gt; ou sont les lignes de code a intégrer sur les ESP ?<br />
==&gt; devrais-je plutôt utiliser un ESP32-WROOM ?<br />
<br />
J'ai déjà un ESP32S configuré dans HA par ESP-homebuilder qui me permet de surveiller le fonctionnement de mon onduleur Growatt et de sa batterie sur la partie autoconsommation, si j'ai bien lu, la configuration pour le F1ATB est un peu différente car on le programme en ARDUINO c'est bien cela ?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Afficheur distant]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2754.html</link>
			<pubDate>Wed, 27 May 2026 19:48:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=489">Piemdp</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2754.html</guid>
			<description><![CDATA[Bonjour,<br />
<br />
Peut-être existe-t-il une subtilité que je ne connais pas.<br />
Mon routeur fonctionne vraiment parfaitement bien en version 17.13, il tourne aujourd'hui depuis 1762h sans plantage !<br />
Cependant, j'ai un petit garçon qui n'est pas encore très économe et parfois il vide carrément l'eau chaude...<br />
<br />
Existe-t-il un moyen d'utiliser un affichage déporté (j'ai en ma possession une carte ESP32-2432S032C) afin de lancer un forçage ?<br />
Mon routeur Maître est dans le cellier et l'afficheur est dans la cuisine.<br />
Ce serait vraiment pratique pour madame (et moi aussi du coup !)<br />
Nous utilisons la maisonnette plusieurs fois par jour (je dirai une trentaine).<br />
<br />
L'ajout de cette fonction serait vraiment un plus.<br />
<br />
Merci d'avance !<br />
Pierre<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6045" target="_blank" title="">Capture d’écran 2026-05-27 à 21.48.41.png</a> (Taille : 81.92 Ko / Téléchargements : 10)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Bonjour,<br />
<br />
Peut-être existe-t-il une subtilité que je ne connais pas.<br />
Mon routeur fonctionne vraiment parfaitement bien en version 17.13, il tourne aujourd'hui depuis 1762h sans plantage !<br />
Cependant, j'ai un petit garçon qui n'est pas encore très économe et parfois il vide carrément l'eau chaude...<br />
<br />
Existe-t-il un moyen d'utiliser un affichage déporté (j'ai en ma possession une carte ESP32-2432S032C) afin de lancer un forçage ?<br />
Mon routeur Maître est dans le cellier et l'afficheur est dans la cuisine.<br />
Ce serait vraiment pratique pour madame (et moi aussi du coup !)<br />
Nous utilisons la maisonnette plusieurs fois par jour (je dirai une trentaine).<br />
<br />
L'ajout de cette fonction serait vraiment un plus.<br />
<br />
Merci d'avance !<br />
Pierre<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=6045" target="_blank" title="">Capture d’écran 2026-05-27 à 21.48.41.png</a> (Taille : 81.92 Ko / Téléchargements : 10)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Problème avec le planning action triac sur sur WT-ETH01]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2734.html</link>
			<pubDate>Mon, 25 May 2026 16:36:22 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2783">Geotrouvetout74</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2734.html</guid>
			<description><![CDATA[Bonjour à tous<br />
Mon installation:<br />
panneaux solaire 3Kw,<br />
onduleur imeon 3,6,<br />
2 batteries de 2,2Kw chacune,<br />
routeur avec un esp32 WT-ETH01, données sur linky, triac pour le ballon ECS.<br />
<br />
Problème rencontré avec le planning du triac.<br />
réglage suivant<br />
  Off de 00h00 à 10h00<br />
  routage de 10h00 à 18h30<br />
  Off de 1830 à 00h00<br />
le problème est qu'aucun déclenchement du routage ne se fait.<br />
Si je met le routage à 00h00 il s'enclenche mais ne s'arrete pas<br />
<br />
Y-a-t'il une erreur de ma part ou est-ce un bug?<br />
merci.<br />
<br />
PS je sais pas si c'est ici qu'il faille mettre des sugestions mais en voici deux:<br />
<br />
 un voyant permettant de voir l'état du routage (ON,Off,routage avec leur couleurs associées)<br />
<br />
le bouton de forcage de la page d'acceuil devrait indiquer son état (actuellement blanc pour on et off)<br />
<br />
Merci pour vos réponses et à bientôt]]></description>
			<content:encoded><![CDATA[Bonjour à tous<br />
Mon installation:<br />
panneaux solaire 3Kw,<br />
onduleur imeon 3,6,<br />
2 batteries de 2,2Kw chacune,<br />
routeur avec un esp32 WT-ETH01, données sur linky, triac pour le ballon ECS.<br />
<br />
Problème rencontré avec le planning du triac.<br />
réglage suivant<br />
  Off de 00h00 à 10h00<br />
  routage de 10h00 à 18h30<br />
  Off de 1830 à 00h00<br />
le problème est qu'aucun déclenchement du routage ne se fait.<br />
Si je met le routage à 00h00 il s'enclenche mais ne s'arrete pas<br />
<br />
Y-a-t'il une erreur de ma part ou est-ce un bug?<br />
merci.<br />
<br />
PS je sais pas si c'est ici qu'il faille mettre des sugestions mais en voici deux:<br />
<br />
 un voyant permettant de voir l'état du routage (ON,Off,routage avec leur couleurs associées)<br />
<br />
le bouton de forcage de la page d'acceuil devrait indiquer son état (actuellement blanc pour on et off)<br />
<br />
Merci pour vos réponses et à bientôt]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Modification fonction callback du fichier EnvoiMQTT.ino]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2688.html</link>
			<pubDate>Thu, 21 May 2026 10:11:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2025">Sthev</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2688.html</guid>
			<description><![CDATA[Bonjour à tous.<br />
J'ai modifié la fonction callback afin de pouvoir modifier le pourcentage d'ouverture forcée par MQTT (test ok par envoi MQTT de home assistant de <span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color">ForceOuvre).</span></span></span><br />
<span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color">La modification :           <span style="color: #728e00;" class="mycode_color">if</span> <span style="color: #434f54;" class="mycode_color">(</span><span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span><span style="color: #434f54;" class="mycode_color">(</span>"ForceOuvre\":"<span style="color: #434f54;" class="mycode_color">)</span> &gt; 0<span style="color: #434f54;" class="mycode_color">)</span> <span style="color: #434f54;" class="mycode_color">{</span><br />
            <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">ForceOuvre</span> = <span style="color: #00979d;" class="mycode_color">int</span><span style="color: #434f54;" class="mycode_color">(</span><span style="color: #d35400;" class="mycode_color">ValJson</span><span style="color: #434f54;" class="mycode_color">(</span>"ForceOuvre", message<span style="color: #434f54;" class="mycode_color">))</span>;<br />
            recordDemande = true;<br />
          <span style="color: #434f54;" class="mycode_color">}</span></span></span></span><br />
<span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color"><span style="color: #434f54;" class="mycode_color">à ajaouter dans la fonction callback : </span></span></span></span><br />
<span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color"><span style="color: #434f54;" class="mycode_color"><span style="color: #95a5a6;" class="mycode_color">// Callback  après souscription à un topic et  réaliser une action</span><br />
<span style="color: #00979d;" class="mycode_color">void</span> <span style="color: #d35400;" class="mycode_color">callback</span>(<span style="color: #00979d;" class="mycode_color">char</span> <span style="color: #00979d;" class="mycode_color">*</span>topic, byte <span style="color: #00979d;" class="mycode_color">*</span>payload, <span style="color: #00979d;" class="mycode_color">unsigned</span> <span style="color: #00979d;" class="mycode_color">int</span> length) {<br />
  <span style="color: #00979d;" class="mycode_color">char</span> <span style="color: #d35400;" class="mycode_color">Message</span>[length + 1];<br />
  <span style="color: #728e00;" class="mycode_color">for</span> (<span style="color: #00979d;" class="mycode_color">int</span> i = 0; i &lt; length; i++) {<br />
    <span style="color: #d35400;" class="mycode_color">Message</span>[i] = <span style="color: #d35400;" class="mycode_color">payload</span>[i];<br />
  }<br />
  <span style="color: #d35400;" class="mycode_color">Message</span>[length] = '\0';<br />
  String message = <span style="color: #d35400;" class="mycode_color">String</span>(Message) + ",";<br />
  <span style="color: #d35400;" class="mycode_color">TelnetPrintln</span>("Mqtt::" + message);<br />
  <span style="color: #728e00;" class="mycode_color">for</span> (<span style="color: #00979d;" class="mycode_color">int</span> canal = 0; canal &lt; 4; canal++) {<br />
    <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">String</span>(topic) == <span style="color: #d35400;" class="mycode_color">TopicT</span>[canal] &amp;&amp; <span style="color: #d35400;" class="mycode_color">Source_Temp</span>[canal] == "tempMqtt") {<br />
      <span style="color: #d35400;" class="mycode_color">temperature</span>[canal] = <span style="color: #d35400;" class="mycode_color">ValJson</span>("temperature", message);<br />
      <span style="color: #d35400;" class="mycode_color">TemperatureValide</span>[canal] = 5;<br />
    }<br />
  }<br />
  <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">String</span>(topic) == TopicP &amp;&amp; Source == "Pmqtt") {<span style="color: #95a5a6;" class="mycode_color">  // Mesure de puissance</span><br />
    PwMQTT = <span style="color: #d35400;" class="mycode_color">ValJson</span>("Pw", message);<br />
    PvaMQTT = <span style="color: #d35400;" class="mycode_color">ValJson</span>("Pva", message);<br />
    PfMQTT = <span style="color: #d35400;" class="mycode_color">ValJson</span>("Pf", message);<br />
    P_MQTT_Brute = <span style="color: #d35400;" class="mycode_color">String</span>(Message);<br />
    <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("Pw") &gt; 0)<br />
      LastPwMQTTMillis = <span style="color: #d35400;" class="mycode_color">millis</span>();<br />
  }<br />
  <span style="color: #728e00;" class="mycode_color">if</span> (subMQTT == 1) {<br />
    <span style="color: #00979d;" class="mycode_color">char</span> <span style="color: #d35400;" class="mycode_color">TopicAct</span>[60];<br />
    <span style="color: #00979d;" class="mycode_color">bool</span> recordDemande = false;<br />
    <span style="color: #728e00;" class="mycode_color">for</span> (<span style="color: #00979d;" class="mycode_color">int</span> i = 0; i &lt; NbActions; i++) {<br />
      <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Titre</span>.<span style="color: #d35400;" class="mycode_color">length</span>() &gt; 0) {<br />
        <span style="color: #d35400;" class="mycode_color">snprintf</span>(TopicAct, sizeof(TopicAct), "%s/%s", <span style="color: #d35400;" class="mycode_color">MQTTdeviceName</span>.<span style="color: #d35400;" class="mycode_color">c_str</span>(), <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Titre</span>.<span style="color: #d35400;" class="mycode_color">c_str</span>());<br />
        <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">strcmp</span>(TopicAct, topic) == 0) {<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("tOnOff\":") &gt; 0)<br />
            <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">tOnOff</span> = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("tOnOff", message));<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("ForceOuvre\":") &gt; 0) {<br />
            <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">ForceOuvre</span> = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("ForceOuvre", message));<br />
            recordDemande = true;<br />
          }<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("Mode\":") &gt; 0) {<br />
            String modeRecu = <span style="color: #d35400;" class="mycode_color">StringJson</span>("Mode", message);<br />
            recordDemande = true;<br />
            <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Inactif") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_INACTIF;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Decoupe" || modeRecu == "OnOff") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_DECOUPE_ONOFF;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Multi") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_MULTISINUS;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Train") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_TRAINSINUS;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "PWM") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_PWM;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Demi") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_DEMISINUS;<br />
            }<br />
          }<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("Periode\":") &gt; 0) {<br />
            <span style="color: #00979d;" class="mycode_color">int</span> periodeRecu = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("Periode", message));<br />
            <span style="color: #728e00;" class="mycode_color">if</span> (periodeRecu &gt;= 0 &amp;&amp; periodeRecu &lt; <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">NbPeriode</span>) {<br />
              recordDemande = true;<br />
              <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("SeuilOn\":") &gt; 0)<br />
                <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Vmin</span>[periodeRecu] = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("SeuilOn", message));<br />
              <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("SeuilOff\":") &gt; 0)<br />
                <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Vmax</span>[periodeRecu] = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("SeuilOff", message));<span style="color: #95a5a6;" class="mycode_color">  // Mode OnOff</span><br />
              <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("OuvreMax\":") &gt; 0)<br />
                <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Vmax</span>[periodeRecu] = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("OuvreMax", message));<span style="color: #95a5a6;" class="mycode_color">  // Autre Modes</span><br />
            }<br />
          }<br />
          <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Prioritaire</span>();<br />
          <span style="color: #d35400;" class="mycode_color">StockMessage</span>("Action MQTT : " + <span style="color: #d35400;" class="mycode_color">String</span>(topic) + " | " + <span style="color: #d35400;" class="mycode_color">String</span>(Message));<br />
        }<br />
      }<br />
    }<br />
    <span style="color: #728e00;" class="mycode_color">if</span> (recordDemande) <span style="color: #d35400;" class="mycode_color">RecordFichierParametres</span>();<br />
  }<br />
}</span></span></span></span>]]></description>
			<content:encoded><![CDATA[Bonjour à tous.<br />
J'ai modifié la fonction callback afin de pouvoir modifier le pourcentage d'ouverture forcée par MQTT (test ok par envoi MQTT de home assistant de <span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color">ForceOuvre).</span></span></span><br />
<span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color">La modification :           <span style="color: #728e00;" class="mycode_color">if</span> <span style="color: #434f54;" class="mycode_color">(</span><span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span><span style="color: #434f54;" class="mycode_color">(</span>"ForceOuvre\":"<span style="color: #434f54;" class="mycode_color">)</span> &gt; 0<span style="color: #434f54;" class="mycode_color">)</span> <span style="color: #434f54;" class="mycode_color">{</span><br />
            <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">ForceOuvre</span> = <span style="color: #00979d;" class="mycode_color">int</span><span style="color: #434f54;" class="mycode_color">(</span><span style="color: #d35400;" class="mycode_color">ValJson</span><span style="color: #434f54;" class="mycode_color">(</span>"ForceOuvre", message<span style="color: #434f54;" class="mycode_color">))</span>;<br />
            recordDemande = true;<br />
          <span style="color: #434f54;" class="mycode_color">}</span></span></span></span><br />
<span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color"><span style="color: #434f54;" class="mycode_color">à ajaouter dans la fonction callback : </span></span></span></span><br />
<span style="color: #4e5b61;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #005c5f;" class="mycode_color"><span style="color: #434f54;" class="mycode_color"><span style="color: #95a5a6;" class="mycode_color">// Callback  après souscription à un topic et  réaliser une action</span><br />
<span style="color: #00979d;" class="mycode_color">void</span> <span style="color: #d35400;" class="mycode_color">callback</span>(<span style="color: #00979d;" class="mycode_color">char</span> <span style="color: #00979d;" class="mycode_color">*</span>topic, byte <span style="color: #00979d;" class="mycode_color">*</span>payload, <span style="color: #00979d;" class="mycode_color">unsigned</span> <span style="color: #00979d;" class="mycode_color">int</span> length) {<br />
  <span style="color: #00979d;" class="mycode_color">char</span> <span style="color: #d35400;" class="mycode_color">Message</span>[length + 1];<br />
  <span style="color: #728e00;" class="mycode_color">for</span> (<span style="color: #00979d;" class="mycode_color">int</span> i = 0; i &lt; length; i++) {<br />
    <span style="color: #d35400;" class="mycode_color">Message</span>[i] = <span style="color: #d35400;" class="mycode_color">payload</span>[i];<br />
  }<br />
  <span style="color: #d35400;" class="mycode_color">Message</span>[length] = '\0';<br />
  String message = <span style="color: #d35400;" class="mycode_color">String</span>(Message) + ",";<br />
  <span style="color: #d35400;" class="mycode_color">TelnetPrintln</span>("Mqtt::" + message);<br />
  <span style="color: #728e00;" class="mycode_color">for</span> (<span style="color: #00979d;" class="mycode_color">int</span> canal = 0; canal &lt; 4; canal++) {<br />
    <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">String</span>(topic) == <span style="color: #d35400;" class="mycode_color">TopicT</span>[canal] &amp;&amp; <span style="color: #d35400;" class="mycode_color">Source_Temp</span>[canal] == "tempMqtt") {<br />
      <span style="color: #d35400;" class="mycode_color">temperature</span>[canal] = <span style="color: #d35400;" class="mycode_color">ValJson</span>("temperature", message);<br />
      <span style="color: #d35400;" class="mycode_color">TemperatureValide</span>[canal] = 5;<br />
    }<br />
  }<br />
  <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">String</span>(topic) == TopicP &amp;&amp; Source == "Pmqtt") {<span style="color: #95a5a6;" class="mycode_color">  // Mesure de puissance</span><br />
    PwMQTT = <span style="color: #d35400;" class="mycode_color">ValJson</span>("Pw", message);<br />
    PvaMQTT = <span style="color: #d35400;" class="mycode_color">ValJson</span>("Pva", message);<br />
    PfMQTT = <span style="color: #d35400;" class="mycode_color">ValJson</span>("Pf", message);<br />
    P_MQTT_Brute = <span style="color: #d35400;" class="mycode_color">String</span>(Message);<br />
    <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("Pw") &gt; 0)<br />
      LastPwMQTTMillis = <span style="color: #d35400;" class="mycode_color">millis</span>();<br />
  }<br />
  <span style="color: #728e00;" class="mycode_color">if</span> (subMQTT == 1) {<br />
    <span style="color: #00979d;" class="mycode_color">char</span> <span style="color: #d35400;" class="mycode_color">TopicAct</span>[60];<br />
    <span style="color: #00979d;" class="mycode_color">bool</span> recordDemande = false;<br />
    <span style="color: #728e00;" class="mycode_color">for</span> (<span style="color: #00979d;" class="mycode_color">int</span> i = 0; i &lt; NbActions; i++) {<br />
      <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Titre</span>.<span style="color: #d35400;" class="mycode_color">length</span>() &gt; 0) {<br />
        <span style="color: #d35400;" class="mycode_color">snprintf</span>(TopicAct, sizeof(TopicAct), "%s/%s", <span style="color: #d35400;" class="mycode_color">MQTTdeviceName</span>.<span style="color: #d35400;" class="mycode_color">c_str</span>(), <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Titre</span>.<span style="color: #d35400;" class="mycode_color">c_str</span>());<br />
        <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">strcmp</span>(TopicAct, topic) == 0) {<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("tOnOff\":") &gt; 0)<br />
            <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">tOnOff</span> = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("tOnOff", message));<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("ForceOuvre\":") &gt; 0) {<br />
            <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">ForceOuvre</span> = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("ForceOuvre", message));<br />
            recordDemande = true;<br />
          }<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("Mode\":") &gt; 0) {<br />
            String modeRecu = <span style="color: #d35400;" class="mycode_color">StringJson</span>("Mode", message);<br />
            recordDemande = true;<br />
            <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Inactif") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_INACTIF;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Decoupe" || modeRecu == "OnOff") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_DECOUPE_ONOFF;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Multi") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_MULTISINUS;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Train") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_TRAINSINUS;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "PWM") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_PWM;<br />
            } <span style="color: #728e00;" class="mycode_color">else</span> <span style="color: #728e00;" class="mycode_color">if</span> (modeRecu == "Demi") {<br />
              <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Actif</span> = MODE_DEMISINUS;<br />
            }<br />
          }<br />
          <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("Periode\":") &gt; 0) {<br />
            <span style="color: #00979d;" class="mycode_color">int</span> periodeRecu = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("Periode", message));<br />
            <span style="color: #728e00;" class="mycode_color">if</span> (periodeRecu &gt;= 0 &amp;&amp; periodeRecu &lt; <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">NbPeriode</span>) {<br />
              recordDemande = true;<br />
              <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("SeuilOn\":") &gt; 0)<br />
                <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Vmin</span>[periodeRecu] = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("SeuilOn", message));<br />
              <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("SeuilOff\":") &gt; 0)<br />
                <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Vmax</span>[periodeRecu] = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("SeuilOff", message));<span style="color: #95a5a6;" class="mycode_color">  // Mode OnOff</span><br />
              <span style="color: #728e00;" class="mycode_color">if</span> (<span style="color: #d35400;" class="mycode_color">message</span>.<span style="color: #d35400;" class="mycode_color">indexOf</span>("OuvreMax\":") &gt; 0)<br />
                <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Vmax</span>[periodeRecu] = <span style="color: #00979d;" class="mycode_color">int</span>(<span style="color: #d35400;" class="mycode_color">ValJson</span>("OuvreMax", message));<span style="color: #95a5a6;" class="mycode_color">  // Autre Modes</span><br />
            }<br />
          }<br />
          <span style="color: #d35400;" class="mycode_color">LesActions</span>[i].<span style="color: #d35400;" class="mycode_color">Prioritaire</span>();<br />
          <span style="color: #d35400;" class="mycode_color">StockMessage</span>("Action MQTT : " + <span style="color: #d35400;" class="mycode_color">String</span>(topic) + " | " + <span style="color: #d35400;" class="mycode_color">String</span>(Message));<br />
        }<br />
      }<br />
    }<br />
    <span style="color: #728e00;" class="mycode_color">if</span> (recordDemande) <span style="color: #d35400;" class="mycode_color">RecordFichierParametres</span>();<br />
  }<br />
}</span></span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sauvegarde - restauration intégrale d'un RMS]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2630.html</link>
			<pubDate>Sun, 17 May 2026 20:31:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=1179">Rakibou</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2630.html</guid>
			<description><![CDATA[Bonjour à tous,<br />
<br />
Après avoir eu quelques déboires avec des RMS installés (chez moi ou chez des potes), je me suis demandé s'il ne serait pas possible de sauvegarder puis (au besoin) restaurer <span style="text-decoration: underline;" class="mycode_u">intégralement</span> un RMS (code, paramètres, etc) en un minimum de manipulations.<br />
<br />
Je vous fais le tableau :<br />
- Vous avez installé un ou plusieurs RMS, certains sont dans une super_version_perso_v12.582_non_V14.153 sur lesquels vous avez passé des heures à peaufiner les réglages, la régulation, l'affichage, voire à faire des modifs de code.<br />
<br />
- Votre poulain, maquillé comme un camion volé, est fin prêt pour le Grand prix d'Amérique (ou le salon de l'agriculture) et soudain... l'esp32 qui le porte a les genoux qui flanchent, et vous lâche sans prévenir. Merdalor.<br />
<br />
- Si le RMS est le vôtre, il y a des chances pour que vous sachiez le réinstaller en un minimum de temps, le remettre sur votre réseau et réinjecter le fichier de paramètres que vous aurez pris soin (évidemment) de sauvegarder récemment. Non ?<br />
<br />
- Mais si le RMS est chez votre cousin qui habite à 150 kilomètres, c'est plus tout à fait la même histoire. Non ?<br />
<br />
D'où l'idée :<br />
- Le RMS tourne comme une horloge.<br />
<br />
- Avec un pc et un câble usb, à l'aide d'un script qu'on peut lancer <span style="font-weight: bold;" class="mycode_b">en une seule commande</span>, voire avec un double clic, TOUT le contenu sera sauvegardé dans un unique fichier masauvegarde.bin (3 minutes environ).<br />
<br />
- Le RMS vous lâche.<br />
<br />
- On change l'esp32<br />
<br />
- Avec le même pc et connexion usb, on lance la restauration du fichier masauvegarde.bin, toujours en une seule commande ou un double clic.<br />
<br />
- 90 secondes plus tard, tout est à nouveau en place.<br />
<br />
- Et même le cousin peut le faire sans vous.<br />
<br />
Eh bien, c'est possible avec esptool.<br />
je me suis inspiré des infos données par cette <a href="https://youtu.be/2GwzbBn7uRw" target="_blank" rel="noopener" class="mycode_url">video youtube</a>, dans laquelle l'auteur explique comment faire ça.<br />
Il y a pas mal de blabla mais les infos sont très pertinentes, et celles de la transcription sous la video encore plus.<br />
<br />
J'ai écrit un petit script bash (linux) pas très raffiné qui permet de faire la sauvegarde et la restauration.<br />
Avec un minimum de travail (genre claude ou chatgpt) il doit pouvoir être adapté pour windoze, en powershell ou autre.<br />
Vous trouverez aussi des notes qui peuvent vous aider à mettre le truc en marche.<br />
<br />
En espérant que ça puisse être utile à quelques uns, merci de m'avoir lu.<br />
<br />
(PS : si le script est moisi, ne m'engueulez pas, améliorez le ! <img src="https://f1atb.fr/forum_f1atb/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> )<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5983" target="_blank" title="">sauve_restore_rms_v2.txt</a> (Taille : 3.55 Ko / Téléchargements : 22)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5984" target="_blank" title="">notes_sauve-restaure-rms-esp32.txt</a> (Taille : 910 octets / Téléchargements : 17)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Bonjour à tous,<br />
<br />
Après avoir eu quelques déboires avec des RMS installés (chez moi ou chez des potes), je me suis demandé s'il ne serait pas possible de sauvegarder puis (au besoin) restaurer <span style="text-decoration: underline;" class="mycode_u">intégralement</span> un RMS (code, paramètres, etc) en un minimum de manipulations.<br />
<br />
Je vous fais le tableau :<br />
- Vous avez installé un ou plusieurs RMS, certains sont dans une super_version_perso_v12.582_non_V14.153 sur lesquels vous avez passé des heures à peaufiner les réglages, la régulation, l'affichage, voire à faire des modifs de code.<br />
<br />
- Votre poulain, maquillé comme un camion volé, est fin prêt pour le Grand prix d'Amérique (ou le salon de l'agriculture) et soudain... l'esp32 qui le porte a les genoux qui flanchent, et vous lâche sans prévenir. Merdalor.<br />
<br />
- Si le RMS est le vôtre, il y a des chances pour que vous sachiez le réinstaller en un minimum de temps, le remettre sur votre réseau et réinjecter le fichier de paramètres que vous aurez pris soin (évidemment) de sauvegarder récemment. Non ?<br />
<br />
- Mais si le RMS est chez votre cousin qui habite à 150 kilomètres, c'est plus tout à fait la même histoire. Non ?<br />
<br />
D'où l'idée :<br />
- Le RMS tourne comme une horloge.<br />
<br />
- Avec un pc et un câble usb, à l'aide d'un script qu'on peut lancer <span style="font-weight: bold;" class="mycode_b">en une seule commande</span>, voire avec un double clic, TOUT le contenu sera sauvegardé dans un unique fichier masauvegarde.bin (3 minutes environ).<br />
<br />
- Le RMS vous lâche.<br />
<br />
- On change l'esp32<br />
<br />
- Avec le même pc et connexion usb, on lance la restauration du fichier masauvegarde.bin, toujours en une seule commande ou un double clic.<br />
<br />
- 90 secondes plus tard, tout est à nouveau en place.<br />
<br />
- Et même le cousin peut le faire sans vous.<br />
<br />
Eh bien, c'est possible avec esptool.<br />
je me suis inspiré des infos données par cette <a href="https://youtu.be/2GwzbBn7uRw" target="_blank" rel="noopener" class="mycode_url">video youtube</a>, dans laquelle l'auteur explique comment faire ça.<br />
Il y a pas mal de blabla mais les infos sont très pertinentes, et celles de la transcription sous la video encore plus.<br />
<br />
J'ai écrit un petit script bash (linux) pas très raffiné qui permet de faire la sauvegarde et la restauration.<br />
Avec un minimum de travail (genre claude ou chatgpt) il doit pouvoir être adapté pour windoze, en powershell ou autre.<br />
Vous trouverez aussi des notes qui peuvent vous aider à mettre le truc en marche.<br />
<br />
En espérant que ça puisse être utile à quelques uns, merci de m'avoir lu.<br />
<br />
(PS : si le script est moisi, ne m'engueulez pas, améliorez le ! <img src="https://f1atb.fr/forum_f1atb/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> )<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5983" target="_blank" title="">sauve_restore_rms_v2.txt</a> (Taille : 3.55 Ko / Téléchargements : 22)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5984" target="_blank" title="">notes_sauve-restaure-rms-esp32.txt</a> (Taille : 910 octets / Téléchargements : 17)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[mesure triphasé dans MQTT]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2628.html</link>
			<pubDate>Sun, 17 May 2026 09:18:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=1147">plonge49</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2628.html</guid>
			<description><![CDATA[Bonjour<br />
J'ai un compteur triphasé et je voudrais récupérer les consos par phase dans Home Assistant via MQTT, mais à priori je ne remonte qu'une conso globale<br />
Serait il possible d'avoir ce détail<br />
<br />
Merci]]></description>
			<content:encoded><![CDATA[Bonjour<br />
J'ai un compteur triphasé et je voudrais récupérer les consos par phase dans Home Assistant via MQTT, mais à priori je ne remonte qu'une conso globale<br />
Serait il possible d'avoir ce détail<br />
<br />
Merci]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Perte "Réactivité si CACSI" avec mode Linky V17.18]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2627.html</link>
			<pubDate>Sun, 17 May 2026 06:59:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2762">Didi67</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2627.html</guid>
			<description><![CDATA[Bonjour,<br />
Dans les paramètres, lorsque l’on sélectionne le mode <span style="font-weight: bold;" class="mycode_b">Linky</span> et que l’on coche <span style="font-weight: bold;" class="mycode_b">« Estimateur d’injection »</span>, puis que l’on sauvegarde et effectue un reset de l’ESP, la case <span style="font-weight: bold;" class="mycode_b">« Estimateur »</span> reste bien cochée.<br />
<br />
Cependant, lorsque l’on va dans l’onglet <span style="font-weight: bold;" class="mycode_b">Actions</span> et que l’on indique une puissance P_w=-100, par exemple, l’option de choix de réactivité (*2, *4, …) devient disponible et peut être sélectionnée.<br />
<br />
Le problème survient lorsqu’après avoir enregistré le choix de réactivité, la case <span style="font-weight: bold;" class="mycode_b">« Estimateur »</span> dans les paramètres se décoche automatiquement.<br />
<br />
Est-ce que quelqu’un aurait une solution pour que la case <span style="font-weight: bold;" class="mycode_b">« Estimateur »</span> reste active tout en conservant la réactivité sélectionnée ?<br />
<br />
Merci pour votre aide et vos retours.]]></description>
			<content:encoded><![CDATA[Bonjour,<br />
Dans les paramètres, lorsque l’on sélectionne le mode <span style="font-weight: bold;" class="mycode_b">Linky</span> et que l’on coche <span style="font-weight: bold;" class="mycode_b">« Estimateur d’injection »</span>, puis que l’on sauvegarde et effectue un reset de l’ESP, la case <span style="font-weight: bold;" class="mycode_b">« Estimateur »</span> reste bien cochée.<br />
<br />
Cependant, lorsque l’on va dans l’onglet <span style="font-weight: bold;" class="mycode_b">Actions</span> et que l’on indique une puissance P_w=-100, par exemple, l’option de choix de réactivité (*2, *4, …) devient disponible et peut être sélectionnée.<br />
<br />
Le problème survient lorsqu’après avoir enregistré le choix de réactivité, la case <span style="font-weight: bold;" class="mycode_b">« Estimateur »</span> dans les paramètres se décoche automatiquement.<br />
<br />
Est-ce que quelqu’un aurait une solution pour que la case <span style="font-weight: bold;" class="mycode_b">« Estimateur »</span> reste active tout en conservant la réactivité sélectionnée ?<br />
<br />
Merci pour votre aide et vos retours.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Petit bug]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2605.html</link>
			<pubDate>Sat, 09 May 2026 16:35:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=891">glu3</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2605.html</guid>
			<description><![CDATA[Bonsoir André, <br />
Dans votre thread  de version il y a un petit bug avec l'adresse du  lien qui semble être doublée.<br />
Merci pour votre énorme travail.<br />
@ bientôt  Michel  <img src="https://f1atb.fr/forum_f1atb/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_2" />]]></description>
			<content:encoded><![CDATA[Bonsoir André, <br />
Dans votre thread  de version il y a un petit bug avec l'adresse du  lien qui semble être doublée.<br />
Merci pour votre énorme travail.<br />
@ bientôt  Michel  <img src="https://f1atb.fr/forum_f1atb/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_2" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[V17.18]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2595.html</link>
			<pubDate>Thu, 07 May 2026 17:49:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=2761">Fabrice71</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2595.html</guid>
			<description><![CDATA[Bonjour<br />
<br />
je viens d'installer la version 17.18.<br />
lorsque je redémarre mon esp (via le panneau de contrôle ) les valeurs d’injection totale se remettent a zéro.<br />
Sur la version 13 les valeurs restaient.<br />
Est ce voulu ?<br />
Merci de votre retour<br />
Fabrice]]></description>
			<content:encoded><![CDATA[Bonjour<br />
<br />
je viens d'installer la version 17.18.<br />
lorsque je redémarre mon esp (via le panneau de contrôle ) les valeurs d’injection totale se remettent a zéro.<br />
Sur la version 13 les valeurs restaient.<br />
Est ce voulu ?<br />
Merci de votre retour<br />
Fabrice]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Plusieurs Suggestions en un post]]></title>
			<link>https://f1atb.fr/forum_f1atb/thread-2587.html</link>
			<pubDate>Tue, 05 May 2026 17:08:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://f1atb.fr/forum_f1atb/member.php?action=profile&uid=564">Lolo69</a>]]></dc:creator>
			<guid isPermaLink="false">https://f1atb.fr/forum_f1atb/thread-2587.html</guid>
			<description><![CDATA[Ci-dessous plusieurs suggestions d'améliorations que j'ai moi même implémentées et testées, pour ceux qui sont intéressés pour les réaliser faites moi signe je vous donnerai les details de leur implementation.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Nouveau Module UxI</span></span><br />
<br />
Je propose ce PCB pour implementer un routeur UxI seul , pour les néophytes du PCB , rassurez vous c est beaucoup plus simple et fiable que de faire ca avec des connexions DUPONT, je peux vous donner soit les fichiers Gerber soit le projet Kicad: vous envoyez ca chez JLCPCB et 10 jours plus tard vous recevrez 5 Exemplaires de qualité du PCB pour 4€20 frais de port inclus !!!<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5889" target="_blank" title="">1 Capture d’écran 2026-05-05 181533.jpg</a> (Taille : 417.1 Ko / Téléchargements : 119)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5890" target="_blank" title="">2 Capture d’écran 2026-05-05 181634.jpg</a> (Taille : 65.68 Ko / Téléchargements : 70)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5891" target="_blank" title="">3 Capture d’écran 2026-05-05 181739.jpg</a> (Taille : 83.57 Ko / Téléchargements : 83)
<!-- end: postbit_attachments_attachment --><br />
<br />
Les particularités de ce montage :<br />
- Ultra compact 50x50x25mm en tout pour arriver à cette taille <br />
             * j 'ai choisi un ESP32-S3-Mini , ce qui m a demandé un enorme effort de conversion de programme pour pouvoir le compiler.<br />
             * J'ai remplacé le transfo 220/6 du schema d'origine par un ZMPT pour son format ultra compact mais surtout pour gagner en précision de mesure, le zmpt ne deforme pas la sinusoide et n'induit qu un très faible dephasage<br />
             * J ai remplacé l'alim USB par un HLK-5M05 qui transforme le 220vac en 5Vdc ultra stable jusqu'à 1A dans un format ultra compact sans chauffer<br />
              * composants en double face , il faut donc faire gaffe à l’ordre de soudage<br />
              * J'ai meme fait les rainures pour augmenter le creepage entre le 220 et le reste du montage !<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Amélioration précision programme Source UxI</span></span><br />
Malgré tous les essais de coefficients multiplicateurs j 'avais remarqué pas mal d'ecarts entre mon module UxI et le linky et le shelly, après avoir exploré toutes les pistes materiels je me suis penché sur le code , et j ai trouvé le coupable dans la void MeasurePower du fichier Source_UxI dans lequel on fait analogRead ( courant) puis  analogRead ( Tension) or analogRead prend plusieurs dizaine de microsecondes, donc les deux mesures au lieu d etre parfaitement synchrones sont alors dephasées, et sur la somme des 100 echantillons cela donne une erreur non negligeable et surtout non fixe en fonction de la charge ou du hachage.<br />
Pour corriger cela j ai introduit un decalage d'index pour faire les produits des 2 mesures au meme instant réel, le juge de paix est le calcul du cos phi qui est maintenant en permanence identique à celui du shelly quelques soit le type de charge et du % de hachage.<br />
Pour faire ca , il y a pas mal de lignes de code modifiées, difficile de les lister ici mai je pourrai les fournir sur demande<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Communication ESP32 Esclave vers ESP32 Maitre en UDP à la place de TCP</span></span><br />
J'ai plusieurs ESP "Esclaves" qui lisaient la mesure de mon ESP32 Maitre ( Mesure UxI) . Le principe de la comm du programme d'André est que les ESP sont interconnectés en TCP , obligeant à maintenir de multiples connexon TCP et chaque Esclave demande au maitre la mesure. Ceci prend enormement de temps ( 400ms) et font ramer le Maitre qui a du mal à répondre à tous les esclaves qui posent des questions !!! , j'étais très frustré d'avoir une mesure UxI à 40ms et de les lire que toutes les 400ms<br />
J'ai donc changé la communication TCP en communication UDP. zero latence de connexion , le maitre Broadcast sa mesure toutes les 50ms en une seule fois pour tous les esclaves qui ecoute sur le réseau.<br />
Resultats la mesure de tous les esclaves est quasi synchrones , et raffraichie toutes les 50ms ce qui est crucial pour le regulateur PID qui devient ultra performant et reactif capable d'encaisser une perturbation en moins de 100ms contre 800 avant. Du coup j ai passé la periode du PID à 60 ms contre 200ms actuellement, ce qui permet au regulateur d'absorber quasiment en temps reel toutes les modifications de la puissance ( Nuages, demarrage appareil etc etc ) , je vous mettrai les courbes plus tard pour illustrer ca.<br />
Ca permet aussi un meilleur fonctionnement des routeurs parallèles car ils traitent tous la meme mesure au meme instant, ils ne mordent plus la queue ce qui pemet d'ameliorer la prioritisation des routages par decalage de seuils.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Pour rappel d'autres améliorations dejà evoquées :</span></span><br />
- Courbe Sortie PID superposée à la mesure en lieu et place de la Puissance apparente, permet de controler finement le fonctionnement et les reglages du PID, on voit rapidement la réaction du régulateur face à une perturbation<br />
- Linéarisation de la sortie régulateur en mode Decoupe Sinus , ce qui permet de rendre le systeme lineaire et donc les reglages PID sont bons et précis quelque soit le point de fonctionnement et plus particulièrement en debut et fin d'ouverture dans lequel le routeur se trouve souvent<br />
<br />
<span style="font-weight: bold;" class="mycode_b"> A explorer</span> : communication esp-now entre routeurs<br />
- réduction de latence<br />
- communication radio direct sans passer par une box<br />
- distance théorique plus grande .<br />
<br />
<br />
Les résultats de la régulation en courbes<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5893" target="_blank" title="">résultat1.jpg</a> (Taille : 201.47 Ko / Téléchargements : 45)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5894" target="_blank" title="">résultat2.jpg</a> (Taille : 197.27 Ko / Téléchargements : 31)
<!-- end: postbit_attachments_attachment --><br />
<br />
Globalement je reitère mes remeciements à André pour le travail colossal qu'il a accompli et qui m'a aidé à accomplir le projet que j'avais commencé seul et qui m'aurait pris des années pour arriver à ce resutat qui est aujoird'hui pour moi aboutit et qui repond à mes passions pour la régulation, l'electronique et la programmation , toutes réunies dans un seul et meme projet<br />
Je remercie également tous les membres de ce forum dont les lectures m'ont fait enormement progresser et m'ont donné des idées que je n'imaginais pas jusque là. Et enfin je remercie meme Grostoto qui par ses critiques consctructives m'a poussé dans mes retranchements.<br />
<br />
Ces améliorations s’adressent plutôt à des utilisateurs à l’aise avec l’électronique et la régulation, elles ne remettent pas en cause l’excellent fonctionnement de la version standard.<br />
Ce post est quasiment le clap de fin alors , bon routage à tous.]]></description>
			<content:encoded><![CDATA[Ci-dessous plusieurs suggestions d'améliorations que j'ai moi même implémentées et testées, pour ceux qui sont intéressés pour les réaliser faites moi signe je vous donnerai les details de leur implementation.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Nouveau Module UxI</span></span><br />
<br />
Je propose ce PCB pour implementer un routeur UxI seul , pour les néophytes du PCB , rassurez vous c est beaucoup plus simple et fiable que de faire ca avec des connexions DUPONT, je peux vous donner soit les fichiers Gerber soit le projet Kicad: vous envoyez ca chez JLCPCB et 10 jours plus tard vous recevrez 5 Exemplaires de qualité du PCB pour 4€20 frais de port inclus !!!<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5889" target="_blank" title="">1 Capture d’écran 2026-05-05 181533.jpg</a> (Taille : 417.1 Ko / Téléchargements : 119)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5890" target="_blank" title="">2 Capture d’écran 2026-05-05 181634.jpg</a> (Taille : 65.68 Ko / Téléchargements : 70)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5891" target="_blank" title="">3 Capture d’écran 2026-05-05 181739.jpg</a> (Taille : 83.57 Ko / Téléchargements : 83)
<!-- end: postbit_attachments_attachment --><br />
<br />
Les particularités de ce montage :<br />
- Ultra compact 50x50x25mm en tout pour arriver à cette taille <br />
             * j 'ai choisi un ESP32-S3-Mini , ce qui m a demandé un enorme effort de conversion de programme pour pouvoir le compiler.<br />
             * J'ai remplacé le transfo 220/6 du schema d'origine par un ZMPT pour son format ultra compact mais surtout pour gagner en précision de mesure, le zmpt ne deforme pas la sinusoide et n'induit qu un très faible dephasage<br />
             * J ai remplacé l'alim USB par un HLK-5M05 qui transforme le 220vac en 5Vdc ultra stable jusqu'à 1A dans un format ultra compact sans chauffer<br />
              * composants en double face , il faut donc faire gaffe à l’ordre de soudage<br />
              * J'ai meme fait les rainures pour augmenter le creepage entre le 220 et le reste du montage !<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Amélioration précision programme Source UxI</span></span><br />
Malgré tous les essais de coefficients multiplicateurs j 'avais remarqué pas mal d'ecarts entre mon module UxI et le linky et le shelly, après avoir exploré toutes les pistes materiels je me suis penché sur le code , et j ai trouvé le coupable dans la void MeasurePower du fichier Source_UxI dans lequel on fait analogRead ( courant) puis  analogRead ( Tension) or analogRead prend plusieurs dizaine de microsecondes, donc les deux mesures au lieu d etre parfaitement synchrones sont alors dephasées, et sur la somme des 100 echantillons cela donne une erreur non negligeable et surtout non fixe en fonction de la charge ou du hachage.<br />
Pour corriger cela j ai introduit un decalage d'index pour faire les produits des 2 mesures au meme instant réel, le juge de paix est le calcul du cos phi qui est maintenant en permanence identique à celui du shelly quelques soit le type de charge et du % de hachage.<br />
Pour faire ca , il y a pas mal de lignes de code modifiées, difficile de les lister ici mai je pourrai les fournir sur demande<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Communication ESP32 Esclave vers ESP32 Maitre en UDP à la place de TCP</span></span><br />
J'ai plusieurs ESP "Esclaves" qui lisaient la mesure de mon ESP32 Maitre ( Mesure UxI) . Le principe de la comm du programme d'André est que les ESP sont interconnectés en TCP , obligeant à maintenir de multiples connexon TCP et chaque Esclave demande au maitre la mesure. Ceci prend enormement de temps ( 400ms) et font ramer le Maitre qui a du mal à répondre à tous les esclaves qui posent des questions !!! , j'étais très frustré d'avoir une mesure UxI à 40ms et de les lire que toutes les 400ms<br />
J'ai donc changé la communication TCP en communication UDP. zero latence de connexion , le maitre Broadcast sa mesure toutes les 50ms en une seule fois pour tous les esclaves qui ecoute sur le réseau.<br />
Resultats la mesure de tous les esclaves est quasi synchrones , et raffraichie toutes les 50ms ce qui est crucial pour le regulateur PID qui devient ultra performant et reactif capable d'encaisser une perturbation en moins de 100ms contre 800 avant. Du coup j ai passé la periode du PID à 60 ms contre 200ms actuellement, ce qui permet au regulateur d'absorber quasiment en temps reel toutes les modifications de la puissance ( Nuages, demarrage appareil etc etc ) , je vous mettrai les courbes plus tard pour illustrer ca.<br />
Ca permet aussi un meilleur fonctionnement des routeurs parallèles car ils traitent tous la meme mesure au meme instant, ils ne mordent plus la queue ce qui pemet d'ameliorer la prioritisation des routages par decalage de seuils.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Pour rappel d'autres améliorations dejà evoquées :</span></span><br />
- Courbe Sortie PID superposée à la mesure en lieu et place de la Puissance apparente, permet de controler finement le fonctionnement et les reglages du PID, on voit rapidement la réaction du régulateur face à une perturbation<br />
- Linéarisation de la sortie régulateur en mode Decoupe Sinus , ce qui permet de rendre le systeme lineaire et donc les reglages PID sont bons et précis quelque soit le point de fonctionnement et plus particulièrement en debut et fin d'ouverture dans lequel le routeur se trouve souvent<br />
<br />
<span style="font-weight: bold;" class="mycode_b"> A explorer</span> : communication esp-now entre routeurs<br />
- réduction de latence<br />
- communication radio direct sans passer par une box<br />
- distance théorique plus grande .<br />
<br />
<br />
Les résultats de la régulation en courbes<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5893" target="_blank" title="">résultat1.jpg</a> (Taille : 201.47 Ko / Téléchargements : 45)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://f1atb.fr/forum_f1atb/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5894" target="_blank" title="">résultat2.jpg</a> (Taille : 197.27 Ko / Téléchargements : 31)
<!-- end: postbit_attachments_attachment --><br />
<br />
Globalement je reitère mes remeciements à André pour le travail colossal qu'il a accompli et qui m'a aidé à accomplir le projet que j'avais commencé seul et qui m'aurait pris des années pour arriver à ce resutat qui est aujoird'hui pour moi aboutit et qui repond à mes passions pour la régulation, l'electronique et la programmation , toutes réunies dans un seul et meme projet<br />
Je remercie également tous les membres de ce forum dont les lectures m'ont fait enormement progresser et m'ont donné des idées que je n'imaginais pas jusque là. Et enfin je remercie meme Grostoto qui par ses critiques consctructives m'a poussé dans mes retranchements.<br />
<br />
Ces améliorations s’adressent plutôt à des utilisateurs à l’aise avec l’électronique et la régulation, elles ne remettent pas en cause l’excellent fonctionnement de la version standard.<br />
Ce post est quasiment le clap de fin alors , bon routage à tous.]]></content:encoded>
		</item>
	</channel>
</rss>