Plateforme rest

bonjour,

je cherche a récupérer les données de mon ECU-C AP System
après « discussion » avec le chatgpt, j’en suis arrivé au code suivant :


  - platform: rest
    name: Solar Inverter ID 1
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[1].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_inverter_id_1

  - platform: rest
    name: Solar Current Power 1
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[2].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_current_power_1

  - platform: rest
    name: Solar Inverter ID 2
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[5].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_inverter_id_2

  - platform: rest
    name: Solar Current Power 2
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[6].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_current_power_2

  - platform: rest
    name: Solar Inverter ID 3
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[9].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_inverter_id_3

  - platform: rest
    name: Solar Current Power 3
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[10].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_current_power_3

  - platform: rest
    name: Solar Inverter ID 4
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[13].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_inverter_id_4

  - platform: rest
    name: Solar Current Power 4
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[14].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_current_power_4

  - platform: rest
    name: Solar Inverter ID 5
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[17].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_inverter_id_5

  - platform: rest
    name: Solar Current Power 5
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[18].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_current_power_5

  - platform: rest
    name: Solar Inverter ID 6
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[21].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_inverter_id_6

  - platform: rest
    name: Solar Current Power 6
    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[22].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_current_power_6

  - platform: rest
    name: Solar ECU ID
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[1].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_ecu_id

  - platform: rest
    name: Solar Lifetime generation
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[2].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_lifetime_generation

  - platform: rest
    name: Solar Last System Power
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[3].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_last_system_power

  - platform: rest
    name: Solar Generation of Current Day
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[4].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_generation_current_day

  - platform: rest
    name: Solar Last Connection to website
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[5].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_last_connection

  - platform: rest
    name: Solar Number of Inverters
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[6].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_number_of_inverters

  - platform: rest
    name: Solar Last Number of Inverters Online
    resource: http://192.168.3.131/index.php/home
    value_template: "{{ value.split('<td>')[7].split('</td>')[0].strip() }}"
    force_update: true
    unique_id: solar_last_inverters_online

je récupère bien les données mais j’ai l’impression que plein de requetes se font et, en plus, les sensors passent tour a tour en indisponible.

qu’en dites vous ?

Cela me semble pertinent et fonctionnera. Mais effectivement, il y a beaucoup (trop) de requêtes. A voir si tu peux faire une seule requête et extraire tous les attributs JSON. Regarde le chapitre « FETCH MULTIPLE JSON ATTRIBUTES AND PRESENT THEM AS VALUES » de la doc, et les exemples proposés.

Une alternative est d’utiliser nodered. Je l’utilise assez rarement, mais c’est très puissant pour connecter et exploiter de manière optimale un web service, et peut sauver la mise, suivant ton API.

Petite question as tu jeté un coup d’oeil sur cette intégration ?

oui, je trouve que ca fait beaucoup et en plus les entités sont en indisponible la moitié du temps … bof
extraire une page web en json ?? ca se fait, ca ? et j’ai aucune idée de comment commencer…

L’ECU publie une page web qui est fiable, il suffit d’arriver a la décrypter … sous jeedom, un script python faisait le boulot mais je suis surpris que les Scrape, etc n’arrivent pas a localiser les données et comme je n’y connais rien en html, css, etc … je vais me retrouver devant le même mur en nodered je pense

ici, je sais qu’une donnée intéressante se trouve :

    resource: http://192.168.3.131/index.php/realtimedata
    value_template: "{{ value.split('<td>')[2].split('</td>')[0].strip() }}"

en changeant le value.split('<td>')[2] en value.split('<td>')[3], j’ai la suivante, ca va pas mal …

j’avais travaillé sur ce genre de truc avec Jeedom mais il faut redémarrer l’ECU régulièrement et la fiabilité est toute relative.

c’est plutôt une rémanence des données qu’il me manque …

Bonjour,

Il existe une intégration pour les ECU :

comme déjà dit, cette integration me fait moitié peur vu les soucis des gens, de plus, je ne sais même pas passer les prérequis … Test your connection

je ne comprend pas quoi taper dans le terminal

c’est la seule solution pour éviter de laisser tourner jeedom maintenant

L’avez-vous essayé ? Le seul souci dont j’ai entendu parler c’est le plantage de l’écu-c mais le reboot auto a été implanté il y a un moment. Pour la partie qui consiste à tester la connexion, pas besoin de mon point de vue surtout que ça fonctionne déjà pour vous avec Jeedom

sur une ECU C en wifi … et jeedom en python

je n’arrive meme pas a trouver le depot : Home-Assistant APsystems ECU Integration

HACS me dit aucun depot…

Je me répond, j’ai trouvé !!!

J’ai mis en route, ca a l’air cohérent avec ce que je connais, je laisse tourner pour voir

merci sinon, je n’aurais jamais essayé cette intégration

1 « J'aime »

bonjour,

quelle carte utilisez vous pour présenter les données ?

Vous avez le dashboard Énergie qui est pas mal complet d’origine. Sinon vous pouvez créer un nouveau dashboard qui réutilise une partie des éléments du dashboard énergie (voir doc ici) + des cartes classiques affichant les données des MO

1 « J'aime »

bonjour,

tout est planté depuis hier, je ne comprend pas

j’ai redémarré l’ECU, mais jeedom récupère tout de son coté
j’ai un scenario qui remonte l’ecu quéry sinon ca ne démarre pas une fois sur deux

j’ai ca :
image

si quelqu’un a une idée le temps que je trouve un parade a ce truc a surveiller tous les jours

Hello
Les informations les plus pertinentes sont dans les logs.