Bonjour
Super tuto !
Je viens enfin de faire tout fonctionner.
Bon j’ai quand meme une petite requete :
J’ai mon Homeassistant qui a deux cartes reseau (eth0 192.168.1.22 et wlan0 192.168.42.22)
J’ai modifié mon esp32 Sim800 pour qu’il se connecte en wifi sur le reseau 192.168.42.x
Voici sa config:
esphome:
name: esphome-web-e89314
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
ota:
mdns:
disabled: false
#status_use_ping: true
wifi:
ssid: ben
password: XXXXXXX
use_address: 192.168.42.23
manual_ip:
static_ip: 192.168.42.23
gateway: 192.168.42.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-E89314"
password: "xxxxx"
api:
services:
- service: send_sms
variables:
recipient: string
message: string
then:
- sim800l.send_sms:
recipient: !lambda 'return recipient;'
message: !lambda 'return message;'
- lambda: id(esp_sim800_sms_message).publish_state(message);
- service: dial
variables:
recipient: string
then:
- sim800l.dial:
recipient: !lambda 'return recipient;'
# Retourne le dernier message reçus au dernier expéditeut en y ajoutant OK
- service: reply_sms_ok
then:
- text_sensor.template.publish:
id: esp_sim800_sms_message
state: !lambda |-
return id(esp_sim800_sms_message).state + " OK";
- sim800l.send_sms:
recipient: !lambda "return id(esp_sim800_sms_expediteur).state;"
message: !lambda "return id(esp_sim800_sms_message).state;"
uart:
baud_rate: 9600
tx_pin: 27
rx_pin: 26
switch:
- platform: gpio
id: "key_pin"
pin: 4
restore_mode: ALWAYS_OFF
- platform: gpio
id: "reset_pin"
pin: 5
restore_mode: ALWAYS_ON
- platform: gpio
id: "power_pin"
pin: 23
restore_mode: ALWAYS_ON
# Bouton de redémarrage
button:
- platform: restart
id: esp_sim800_restart
name: "ESP-SIM800 Redémarrage"
sim800l:
on_sms_received:
- lambda: |-
id(esp_sim800_sms_expediteur).publish_state(sender);
id(esp_sim800_sms_message).publish_state(message);
- logger.log:
format: "Received '%s' from %s"
args: [ 'message.c_str()', 'sender.c_str()' ]
text_sensor:
- platform: template
id: esp_sim800_sms_expediteur
name: "Sms Expediteur"
- platform: template
id: esp_sim800_sms_message
name: "Sms Message"
sensor:
- platform: sim800l
rssi:
name: "ESP sim800 signal"
binary_sensor:
- platform: sim800l
registered:
name: "ESP sim800 status"
Voici les logs au démarrage
[20:10:46][C][mdns:104]: Hostname: esphome-web-e89314
[20:10:46][C][ota:093]: Over-The-Air Updates:
[20:10:46][C][ota:094]: Address: 192.168.42.23:3232
[20:10:46][C][api:138]: API Server:
[20:10:46][C][api:139]: Address: 192.168.42.23:6053
[20:10:46][C][api:143]: Using noise encryption: NO
[20:10:53][D][sim800l:200]: Registered OK
[20:10:53][D][binary_sensor:036]: 'ESP sim800 status': Sending state ON
[20:10:53][D][sensor:127]: 'ESP sim800 signal': Sending state 8.00000 dBm with 0 decimals of accuracy
Dans les logs on voit que l’esp32 prend bien l’ip 192.168.42.23 et qu’il se connecte bien sur le reseau SMS « registered ok »
Mon soucis c’est que le Service « ESPHome: esphome_web_e89314_send_sms »
me donne une erreur => Failed to call service esphome.esphome_web_e89314_send_sms. Unknown error
Logger: homeassistant.helpers.script.websocket_api_script
Source: components/esphome/__init__.py:467
First occurred: 8:16:01 PM (1 occurrences)
Last logged: 8:16:01 PM
websocket_api script: Error executing script. Unexpected error for call_service at pos 1: Not connected to 192.168.1.15!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/components/esphome/__init__.py", line 467, in execute_service
await entry_data.client.execute_service(service, call.data)
File "/usr/local/lib/python3.10/site-packages/aioesphomeapi/client.py", line 1083, in execute_service
self._check_authenticated()
File "/usr/local/lib/python3.10/site-packages/aioesphomeapi/client.py", line 281, in _check_authenticated
self._check_connected()
File "/usr/local/lib/python3.10/site-packages/aioesphomeapi/client.py", line 273, in _check_connected
raise APIConnectionError(f"Not connected to {self._log_name}!")
aioesphomeapi.core.APIConnectionError: Not connected to 192.168.1.15!
En fait 192.168.1.15 c’est l’ip de l’esp32 sur le reseau de départ.
Je pense que c’est le fait que j’ai modifié son ip et son reseau
Comment faire pour corriger ce pb de service et le faire pointer sur le bon reseau?
Merci