Bonjour,
Je recherche à récupérer puis transmettre une valeur provenant d’un réseau CanBus.
J’ai actuellement un système fonctionnel avec un ESP8266 et un MCP2515.
J’arrive à envoyer une valeur depuis Home assistant sur le réseau CAN.
Mais je n’arrive pas à récupérer une valeur du réseau CAN vers home assistante.
Je pense qu’il faut faire une lambda, mais je ne suis pas très bon dans le domaine.
// Envoyer une valeur d'Home Assistant en vers CANBUS
- platform: mcp2515
id: my_mcp25153
spi_id: McpSpi
cs_pin: GPIO14
can_id: 4
bit_rate: 500kbps
on_frame:
- can_id: 0x100
then:
- lambda: |-
// je ne sais pas ce qu'il faut mettre dans cette lambda pour transmettre la valeur provenant de l'ID 100 dans le capteur virtuel id: "can_variable"
sensor:
- platform: homeassistant
name: "test"
id: number_test
entity_id: input_number.test
on_value:
then:
- canbus.send:
canbus_id: my_mcp25153
can_id: 0x622
data: !lambda
return { (uint8_t) id(number_test).state};
- platform: template
name: "CAN variable"
id: "can_variable"
Je pense que ça ne doit pas être très compliqué, merci pour votre aide.
We can only support one language here, and that language is English. We appreciate that not everybody can read and write it, but there are a wide range of options out there.
En français:
S’il vous plaît voir le post collant:
Nous ne pouvons prendre en charge qu’une seule langue ici, et cette langue est l’anglais. Nous comprenons que tout le monde ne peut pas le lire et l’écrire, mais il existe un large éventail d’options.
Oui j’ai vu cette possibilité là, et je l’ai essayé avec succès.
Mais moi je cherche à récupérer une valeur variable par exemple un pourcentage de batterie et à l’envoyer sur Home Assistant.
Yes I saw that possibility there, and I tried it with success.
But I’m trying to get a variable value, for example a battery percentage, and send it to Home Assistant.
So instead of defining a binary_sensor you would have to define a sensor.
And instead of sending a fixed value you would need to send the message. (Which would be x by looking at their code)
Compiling /data/esp-can/.pioenvs/esp-can/src/main.cpp.o
/config/esphome/esp-can.yaml: In lambda function:
/config/esphome/esp-can.yaml:74:36: error: no matching function for call to 'esphome::template_::TemplateSensor::publish_state(std::vector<unsigned char>&)'
id(can_variable).publish_state(x);
^
/config/esphome/esp-can.yaml:74:36: note: candidate is:
In file included from src/esphome/core/application.h:15:0,
from src/esphome/components/api/api_connection.h:4,
from src/esphome.h:2,
from src/main.cpp:3:
src/esphome/components/sensor/sensor.h:119:8: note: void esphome::sensor::Sensor::publish_state(float)
void publish_state(float state);
^
src/esphome/components/sensor/sensor.h:119:8: note: no known conversion for argument 1 from 'std::vector<unsigned char>' to 'float'
*** [/data/esp-can/.pioenvs/esp-can/src/main.cpp.o] Error 1