Intégration TESLA API

Bonjour à tous
voila j’essaie de faire de la gestion dynamique de charge
Je pense par NodeRed et pas l’api TESLA « contrib »

J’ai bien la connection, mais je ne trouve pas quel « message » ou payload envoyé.
Merci du coup de main

bonsoir
j’ai un peu galérer et j’ai trouvé

je dois obtenir msg.commandArgs.amps = 16 (exemple de valeur d’ampérage de charge)

Savez vous comment construire le message dans une fonction ?

EDIT : un debut « complet » me donne ça

object

_msgid: "4a87757b92a9ea8a"

commandArgs: object

amps: 16

Je me réponds à moi même, j’ai trouvé durant la nuit :smiley:
J’ai réussi en faisant un « change »
SET « msg.commandArgs.amps » to the value « msg.payload »

et ça marche, j’ai maintenant une charge dynamique pour la charge de ma tesla !

1 « J'aime »

Je ne savais pas comment t’aider :slight_smile:
Mais bien joué! :+1:

A l’occase n’hésites pas à mettre plus d’infos sur ce que tu as fait.

1 « J'aime »

Bonjour @moriss , ta solution m’intéresse mais j’aimerai en savoir plus sur comment tu as fait dans le détail.
Tu dis que tu passes par NodeRed et pas avec l’API Tesla. Et pourquoi et comment tu fais ça ?
Quels messages tu envoies ? Tu parles de SET « msg.commandArgs.amps. Tu trouves ça où ?

Merci par avance.

Salut :wave:,

Merci de participer sur le forum :+1:

:information_source: Le forum dispose de catégories afin de renforcer le référencement des sujets.

Nous avons déplacé ton sujet dans #entraide-home-assistant car nous estimions qu’il n’était pas dans la bonne catégorie.

Si tu as un doute la prochaine fois, n’hésite pas à mentionner les @Moderateur.

L’équipe HACF.

:hacf:

Salut
dsl j’avais pas vu,
tu cherches quoi exactement ?

Je cherche a réguler la charge de ma Tesla en fonction d’autres paramètres (typiquement la puissance instantanée délivrée) pour avoir une régulation et éviter les surcharges qui font tomber le disjoncteur.

De la description que tu donnes, tu dis l’avoir fait mais sans passer par l’API Tesla contrib et avec NodeRed. J’aurai voulu plus de détail pour faire la même chose.

Salut
alors j’utilise l’api tesla de node red

En gros, je fais une petite régulation pour maintenir dans la maison une charge maxi de 6kw max, node red recupère les données de la téléinfo (depuis HA), un petit calcul, un petit PID, et j’obtiens une donnée en ampère de charge.
J’envoi ensuite cette valeur à l’API Tesla de node red

est ce plus clair ?

oui en effet merci. Il y a donc une API Tesla spécifique Node Red (point qui me manquait) et qui permettrait de modifier l’ampérage de charge (ton post original). C’est à priori pas possible via l’API Custom Integration Standard (ou j’ai pas trouvé comment faire ça).

C’est une bonne nouvelle pour faire de la régulation dynamique en effet. Va juste falloir que je me mette à NodeRED.

D’ailleurs, si c’est possible via NodeRED, y a aucune raison que ce ne soit pas possible sans via des POST http ou équivalent non ? Je suppose que ça finit par des requetes http sur la Tesla tout ça.

Je trouve une API Tesla qui correspond à ça : Charging - Tesla JSON API (Unofficial)
Reste à savoir comment l’appeler via une REST API

Bon je crois que je l’ai. Y a un service nommé tesla_custom.api qui est installé avec l’intégration Tesla custom.
On peut l’appeler directement avec des appels comme ça:
Réveil du véhicule:

service: tesla_custom.api
data:
  command: WAKE_UP
  parameters:
    path_vars:
      vehicle_id: '{{ state_attr(''binary_sensor.<voitureName>_online_sensor'', ''id'') }}'

et pour changer l’ampérage de charge, il faut appeler cette API :

service: tesla_custom.api
data:
  command: CHARGING_AMPS
  parameters:
    path_vars:
      vehicle_id: '{{ state_attr(''binary_sensor.<voitureName>_online_sensor'', ''id'') }}'
    charging_amps: 10

Le retour sur l’app Tesla me dit que c’est bon et que ça a bien été pris en compte.
Les bons liens pour avoir accès à toutes les API sont :
liste des API appelables par tesla_custom.api : teslajsonpy/endpoints.json at master · zabuldon/teslajsonpy · GitHub
liste des paramètres selon la commande : Charging - Tesla JSON API (Unofficial)

Plus qu’à programmer l’algo de régulation :wink:

1 « J'aime »

Bonjour,
Je suis débutant sous HA, (non programmeur), mais je suis très intéressé par le monde de la domotique, j’ai réussi a créer mon dashboard avec quelques règles d’automation simples afin d’optimiser l’usage de ma production solaire (en autoconsommation sans batterie).

j’aimerai profiter de votre savoir car mon prochain projet serait de gérer dynamiquement la charge de ma tesla en fonction de mon surplus de production solaire.
Il me semble avoir toutes les données nécessaires:

  • conso instantanée de mon compteur ( avec valeur négative lorsque je renvoie sur le réseau)
  • intégration Tesla avec possibilité de régler manuellement la charge entre 0 et 32 ampères

Mais je ne sais pas ni où ni comment scripter pour que lorsque j’appuie sur un bouton de mon Dasboard « charge dynamique »:
Si conso maison est inférieur à -500w alors augmente la vitesse de charge + 1amp
Si conso maison est supérieur à 500w alors diminue la vitesse de charge - 1amp

Est-il obligatoire de passer par NodeRed pour faire cela ?

D’avance merci pour l’âme charitable qui souhaitera m’assister dans ce projet.
Bonne journée


Bonjour,

Je voudrais faire aussi ce genre de chose et généraliser à autre chose que la charge de la Tesla mais pouvoir déclencher d’autres équipements (prises connectées, machines à laver, chauffe-eau par exemple).

Pour ton cas plutot simple il n’y a pas besoin de NodeRED. Une simple automatisation (ou script) suffit je pense.

Je ferais comme ça pour démarrer :

  1. Tu auras besoin d’un input_number qui donne l’ampérage courant,
  2. Le trigger de ton automatisation serait le changement de conso de ta maison avec un seuil > 500 ou < -500. Tu peux avoir 2 trigger avec des id pour simplifier l’automatisation suivante,
  3. Le corps de l’automatisation serait :
  • si trigger > 500 et input_number > 5 (je crois qu’on ne peut pas descendre en dessous)
    • baisse l’amperage courant,
    • envoi le nouvel ampérage courant à la voiture,
  • si trigger < -500 et input_number < 16 (chez moi le max est 16 A)
    • augmente l’amperage courant,
    • envoi le nouvel ampérage courant à la voiture,

Ca risque de pas mal bagotter et je ne sais si la Tesla va apprécier. Donc il faudra peut être mettre un trigger du type tous les 1/4 d’h et pas à chaque changement de conso (qui va se produire tout le temps).

J’espère que ça aide.

1 « J'aime »

l’appli iPhone Charge HQ est parfaite pour cela.
Chez moi, avec un Tesla et onduleur Fronius, ça marche parfaitement.

1 « J'aime »

Merci en effet je ne connaissais pas ça me semble bien !
Je vais creuser pour vérifier si je peux indiquer les informations temp réel de conso de ma maison (information récupéré via des compteurs pinces ampèremétrique shelly)
Merci pour ta réponse

Un grand merci pour ton résumé, en effet c’est exactement ça que je veux faire.
je dois chercher comment créer des trigger et récupérer des valeurs.(car je suis néophyte en prog)
En effet je vais insérer des timer pour ne pas que ça ballotte.
Pour ma part le réglage de l’ampérage en passant par l’intégration Tesla est possible entre 0 et 32
(depuis l’application uniquement entre 5 et 32 amp, j’utilise une prise P17 pour charger ma Tesla)

En attendant je me suis débrouillé avec des automatisations et des conditions, ça fonctionne mais c’est pas idéal.


Salut,

Y’a moyen de faire un peu plus avancé que créer 15 automatisation par niveau de charge :wink:
Mais il faudra se lancer dans de la logique un peu plus avancée. Pas trop compliquée cela dit.

Je sais que sur l’intégration on peut descendre sous les 5amp, mais je ne sais pas si la voiture aime bien.

Re Bonjour,
Ci-dessous mon automatisation, mais je ne sais pas comment écrire l’avant dernière ligne « value: »
Je dois récupérer la valeur « number.electra_charging_amps » et l’incrémenter de 1
pouvez vous m’indiquer comment faire cela ? (« number.electra_charging_amps »+1) dans le langage de HA.

alias: test charge dynamique
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.shellyem_24xxxxa9_channel_1_power
    for:
      hours: 0
      minutes: 1
      seconds: 0
    above: 500
condition:
  - condition: state
    entity_id: input_boolean.charge_dynamique
    state: "on"
action:
  - device_id: xxxxxxxxxxxxxxx
    domain: number
    entity_id: number.electra_charging_amps
    type: set_value
    value: ("number.electra_charging_amps"+1)
mode: single

Exact, je vais essayer d’optimiser le fonctionnement avec une automatisation basée sur la conso, mais j’ai un problème de script,(voir message ci dessus)

Ps: Je vais essayer de trouver des infos pour la charge lente si dangereux pour la batterie.