[Article] SMS et appels avec HA sans internet

j’ai testé le ESP32-POE-ISO de chez Olimex.

  • on peut utiliser soit le port Ethernet soit le wifi,
  • on peut l’alimenter soit en POE (+ batterie optionnelle) soit en 5V via l’USB ou les pins (+ batterie optionnelle)
    attention, en POE le module de régulation peut monter à plus de 100 degrés… :thinking:

avec une adresse ip fixe et en ethernet on se passe de la partie wifi et de la partie dhcp…

à voir en le couplant à un kit GSM SIM800L pour pouvoir resetter une box ou faire un off/on sur son alimentation…

1 « J'aime »

Bonjour,
l’utilisation de la puce ne correspond au cgv des opérateurs donc il gèle la sim le signal à l’air ok mais plus de transmission.
Il vous faut des cartes sims m2m prévu à cet effet.

Bonjour,
Je rencontre le meme probleme.
Alors que cette sim Free Mobile à 2€ fonctionne normalement sur un smartphone « normal » (mais que je n’ai pas forcé en 2G) sans code et sans contact sur la SIMM,
Avec un ESP32 SIM800L : impossible de se connecter au réseau.
Il me semble que la carte SIM800L est une carte GSM (2g) et que Free n’a pas de reseau en 2g, or itinérance Orange, et que Free désactive petit à petit cette option d’itinérance avec Orange là où son propre réseau offre une bonne couverture
Et de mémoire, le reseau 2g devrait s’éteindre à partir de 2025; 2028 pour la 3G

Je crois que je vais revendre mon ESP32 SIMM80L ;_)

Oui le module que je référence est bien en GPRS (2G+).
Je suis chez Free (abonnement à 2 €), je viens de refaire une test et ça marche très bien.

Free n’a à ma connaissance pas de date de fin pour le GPRS en France et continue à utiliser cette fréquence pour gérer les simples appels téléphoniques et SMS. Je ne sais pas pour les autres pays francophones par contre (Suisse, Belgique, Luxembourg, Quebec, etc).

Si cela ne marche pas, il faut quand même faire d’autres tests, en particulier en vérifiant la connexion de l’antenne et essayant avec l’antenne écarté du module (boitier ouvert si dans le boitier).

Pas de souci chez moi aussi, tout fonctionne encore avec une carte sim free 2€ :wink:

Je m’etais basé en partie sur ce lien

https://www.universfreebox.com/article/525427/free-commencerait-il-a-bloquer-litinerance-orange-pour-ses-abonnes

Mais d’apres la carte AFNR (Cartoradio - ANFR), sur l’antenne la plus proche : ni Orange, ni Free n’emettent en 2G, ce qui peut expliquer que l’ESP32 n’accorche pas le reseau

Effectivement. Il faudrait tester le gprs avec un vieux téléphone ou les appeler.
Essaie aussi en écartant l’antenne.

Alors, je pense que cela se confirme :
je viens de forcer mon smartphone 5G, avec une autre carte SIM Free dont l’abo est « standard », en 2G
=> pas d’accroche reseau
je vais laisse passer les vacances, et peut-etre proposer à la vente mon ESP32 :wink:

Bon voila on sait. Donc le module marchera si le gprs passe. A voir si il existe d’autres modules compatibles 3g ou 4g pour ceux n’ayant pas la couverture qui va bien.

Salut à tous,
J’ai lu tous le sujet et je vois des soucis de 2G avant de commander le module j’ai regardé les antennes free prés de là ou je souhaite l’installer. Comme on peut le voir en bas dans le tableau


les lignes grise correspondant à free n’indique pas de 2G donc je peux oublier votre système ? Merci

bonsoir
je viens de mettre en place la meme config que toi
j’ai le message d’erreur

[21:02:57][W][sim800l:097]: Not ack. 3 ERROR

Par contre une question, tu dois retirer le codepin de la carte sim ?
je vois pas ou tu dois mettre le code dans le code yaml?

merci de ton aide

No ack veut dire pas de réseau.
Oui le code pin doit être enlevé.

La 2G devrai être supprimée dans un avenir proche, il ne faudrai plus acheter de carte 2G

Pas si proche : orange fournit la 2g a Free et prolonge finalement jusqu’a fin 2025 sa 2g (contrat d’itinérance). Free allume des antennes 2g pour préparer l’arrêt de l’itinérance Orange, donc on n’est même pas sûr de l’arrêt par free de la 2g fin 2025.

Cela laisse du temps pour changer sa carte sim800l pour une version 4g.

Par contre, il faut vérifier que l’on est bien dans une zone couverte en 2g par free.

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

Bizarre, car normalement ESPHome détecte les esp32, et n’a pas besoin d’ip fixes.
As tu essayé de tout redémarrer? HA, l’esp32, ton routeurs, etc

Tu peux aussi détruire le composant dans esphome, redémarrer HA et le recréer pour forcer la mise a jour. Mais pas de raison qu’il garde une ancienne adresse.

Je n’ai jamais essayé avec 2 cartes réseaux, cela dit.

Bonjour
J’ai essayé pas mal de choses , effacer et recréer le esp32 directement dans le reseau 192.168.42.x
Ca marche pas !
Cordialement

Essayer ponctuellement avec 1 seule carte réseau ?

Pour moi pas de 2G free donc je peux pas suivre ce tuto.
Il faudrait voir avec cette version.

Bonjour
Avez une seule carte ca marche nikel
Par contre des que je vais changer de reseau, il garde l’ancienne adr quelque part dans esphome
bizarre