[Article] SMS et appels avec HA sans internet

Hello,
Désolé pour ma réponse tardive. Il s’agit la d’un script et non d’une automatisation. Le script peut ensuite être appelé sous forme d’un service la ou une alerte doit être générée (par exemple une automatisation qui se déclenche quand il y a un incendie).
Cela n’est pas forcément clair dans mon post et je vais le préciser.

Salut vous utilisez quoi comme alim pour ces modules car j’ai vu que ça comsommait pas mal.

Salut, pour ma part un chargeur usb 2,4A :wink:

Merci :v:
J’ai essayé il y a quelques temps avec ce module mais sans succès. Impossible de le connecter au réseau.
Je vais partir être tenter le coup avec ce modèle.

Bonjour
Tout d abord bravo pour ce forum une mine d info :+1:t2:
Et ce tuto en particulier très complet

Je test ce module esp32+sim800l sur esphome
SMS nickel j envoi et reçois
Pour l appel en revanche j ai rien
J ai vu qu il fallait un speaker 8 ohms, y a une commande particulière à faire?
Est ce qu il faut le micro en même temps ? (J en ai pas sous la main)

Autre question ce module accepte une batterie lion (si plus de courant par exemple)
J ai vu qu il y a une commande AT qui permet de récupérer le voltage restant est ce c est intégré avec esphome ?
D avance merci

1 « J'aime »

Hello,
La voix n’est malheureusement pas supportée par le module (a moins que cela ait changé). J’utilise les appels uniquement pour avertir, par exemple en cas d’incendie (faire sonner le tel). L’utilisation première reste les sms en bidirectionnelle.
Pour l’alimentation par batterie, je n’ai pas regardé.

Merci Argonaute, la voix n’est pas un pré requis pour moi mais c’était pour test … je vais essayer de creuser
est ce qu’il est possible d’envoyer des commands AT via ESPHOME ?

J’avais pas mal cherché à l’époque et n’avait pas trouvé. Après cela a pu changer, mais j’ai des doutes. Sur l’intégration ESPHome, il n’y a toujours que la fonction « dial », mais sans voix.

merci
je pense qu’il faut que je regarde vers l’UART bus…

Merci pour le tuto et la découverte de ce module que je ne connaissais pas. Jusqu’à présent j’utilise le NadHat de garatronic

Concernant le code pin de la sim, j’imagine qu’il faut le supprimer en le mettant la SIM dans un téléphone ?

Je ne connaissais pas le NadHat. Peux t’il faire des appels avec la voix ? L’as tu intégré a HA ?
Autrement oui, il faut enlever le code PIN.

OK merci. Non pas d’appels. Je l’ai pas vraiment intégré à HA. Vu que ça tourne avec Raspbian/Raspberry Pi OS, je déclenche des scripts (platform: command_line) avec HA comme envoyer un sms si détection de fumée. Le module est super stable.

Après ta solution m’intéresse parceque ça ne nécessite pas de Raspberry dédié et ça semble plus simple pour réagir selon un sms envoyé

Je cherche à créer une automation qui permet de renvoyer une valeur comme une température ou l’état de l’alarme

Quelqu’un à déjà fait ça ?

Merci !

Si ta question est comment renvoyer la valeur d’un capteur par SMS, voici un exemple d’automatisation (envoie d’une température à une heure fixe). Attention, les caractères spéciaux ne sont à priori pas supportés par le module.

alias: Envoi température
trigger:
 - platform: time
   at: '19:17:00'
action:
 - service: esphome.esp_sim800_send_sms
   data:
     recipient: '0611121314'
     message: '{{ states(''sensor.temperature'') }} celcius'
mode: single

Et si tu veux renvoyer la température à la réception d’un SMS type « Temperature » (sans caractères spéciaux et en respectant la case), il faut mettre ce trigger.

trigger:
  - platform: state
    entity_id: sensor.esp_sim800_sms_message
    to: Temperature
1 « J'aime »

Top merci beaucoup ! Module reçu aujourd’hui hâte de tester !

Petit retour suite à la réception du module : La procédure est impeccable, on suit les étapes et ça fonctionne. Aucun problème pour ce qui est du Test et de l’activation d’un périphérique (dans mon cas ouverture du portail).

Par contre j’ai un bug étrange en ce qui concerne le renvoi de la valeur d’un capteur suite à l’envoi d’un sms. Dans mon cas un capteur de température. Ca fonctionne, mais pas tout le temps.
J’ai remarqué que si j’utilise l’automation de Test et que juste après j’utilise mon automation qui renvoi la valeur de mon capteur de température (envoi du sms « Temp ») alors ça fonctionne :

[08:10:40][D][sim800l:132]: RSSI: 20
[08:10:45][D][sim800l:132]: RSSI: 20
[08:10:50][D][sim800l:132]: RSSI: 20
[08:10:52][D][sim800l:177]: Received SMS from: +33123456789
[08:10:52][D][sim800l:178]: Temp
[08:10:52][D][text_sensor:067]: 'Sms Expediteur': Sending state '+33123456789'
[08:10:52][D][text_sensor:067]: 'Sms Message': Sending state 'Temp'
[08:10:52][D][main:082]: Received 'Temp' from +33123456789
[08:11:00][D][sim800l:132]: RSSI: 14
[08:11:05][D][sim800l:132]: RSSI: 20
[08:11:10][D][sim800l:132]: RSSI: 20
[08:11:15][D][sim800l:132]: RSSI: 20
[08:11:18][D][sim800l:177]: Received SMS from: +33123456789
[08:11:18][D][sim800l:178]: Test
[08:11:18][D][text_sensor:067]: 'Sms Expediteur': Sending state '+33123456789'
[08:11:18][D][text_sensor:067]: 'Sms Message': Sending state 'Test'
[08:11:18][D][main:082]: Received 'Test' from +33123456789
[08:11:18][D][text_sensor:067]: 'Sms Message': Sending state 'Test OK'
[08:11:18][D][sim800l:272]: Sending to +33123456789: Test OK
[08:11:20][D][sim800l:199]: Sending message: 'Test OK'
[08:11:23][D][sim800l:212]: SMS Sent OK: +CMGS: 54
[08:11:25][D][sim800l:132]: RSSI: 14
[08:11:26][D][text_sensor:067]: 'Sms Message': Sending state 'Test OK'
[08:11:30][D][sim800l:132]: RSSI: 14
[08:11:35][D][text_sensor:067]: 'Sms Expediteur': Sending state '+33123456789'
[08:11:35][D][sim800l:132]: RSSI: 14
[08:11:40][D][sim800l:132]: RSSI: 20
[08:11:45][D][sim800l:132]: RSSI: 20
[08:11:50][D][sim800l:132]: RSSI: 20
[08:11:55][D][sim800l:132]: RSSI: 20
[08:11:56][D][sim800l:177]: Received SMS from: +33123456789
[08:11:56][D][sim800l:178]: Temp
[08:11:56][D][text_sensor:067]: 'Sms Expediteur': Sending state '+33123456789'
[08:11:56][D][text_sensor:067]: 'Sms Message': Sending state 'Temp'
[08:11:56][D][main:082]: Received 'Temp' from +33123456789
[08:11:56][D][sim800l:272]: Sending to 06123456789: Temperature is: 14.7
[08:12:00][D][sim800l:199]: Sending message: 'Temperature is: 14.7'
[08:12:03][D][sim800l:212]: SMS Sent OK: +CMGS: 55
[08:12:05][D][sim800l:132]: RSSI: 12
[08:12:10][D][sim800l:132]: RSSI: 12

Comme on peut voir, le sms « Temp » de 08:10:52 n’est pas pris en compte et rien n’est renvoyé, alors que le sms « Temp » de 08:11:56 est bien pris en compte et renvoi bien la valeur

Voici l’automation :

- id: '1646839419734'
  alias: ESP_Messenger_Temp
  description: ''
  trigger:
  - platform: state
    entity_id: sensor.sms_message
    to: Temp
  condition: []
  action:
  - service: esphome.esp_sim800_send_sms
    data:
      recipient: 06123456789
      message: 'Temperature is: {{ states("sensor.temp_salon") }}'
  mode: single

Je sais pas si tu as même comportement @Argonaute ?

Ha zut. L’automatisation se déclenche si sensor.sms_message change sa valeur en « temp », et ne se déclenche pas si le sensor a déjà temp (donc lors du deuxième appel).

Actuellement, sensor.sms_message contient la valeur du dernier message reçu seulement. Une solution serait qu’il contienne la valeur du dernier message reçu OU envoyé.
Pour cela, il faut juste modifier le code de la procédure d’envoie du message dans le code ESPHome et rajouter en fin de procédure une ligne en c++ (lambda) : id(esp_sim800_sms_message).publish_state(message);

Ci-dessous la nouvelle procédure d’envoie des SMS à corriger dans ESPHome, avec la ligne de code lambda rajoutée :

# Home Assistant API
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);

La mise à jour du module se fait en OTA (wifi).
Je te laisse tester et voir si cela résous ton problème.

1 « J'aime »

Top ! Merci pour l’explication et la solution. Ca marche parfaitement maintenant :grinning:

1 « J'aime »

un petit passage pour remercier @Argonaute de ce topic.
cela fait un moment que je cherche une solution pour ne plus utiliser JPI

c’est un vrai bonheur de gérer cela avec un ESP et ESPHOME.
juste bien galère de flash le module sous MAC, j’ai du installer d’autres driver.

par contre, j’ai des soucis d’encodage pour mes SMS.
par exemple, mes é sorte en @@

peut être est ce du au fait que je gére cela sous Nodered. faut que je vérifie.

1 « J'aime »

Salut, c’est pas lié à nodered pour les @, c’est pareil sous HA, les accents deviennent des @ :wink: