[Article] SMS et appels avec HA sans internet

Non, juste « update all » après avoir mis à jour l’addon, et tout se fait tout seul en wifi :slight_smile:

1 « J'aime »

Merci pour le partage, j’ai ajouté la LED interne sur le Gpio 13 pour avoir un retour sur l’ESP32

esphome:
  name: esp-sim800

esp32:
  board: esp-wrover-kit
  framework:
    type: arduino

# Enable logging
logger:
  baud_rate: 0 # disable uart logger on esp 8266 
  
# Enable 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;'
  - 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;"

ota:


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-7Ba600"
    password: "iqozLsSjuW45"

captive_portal:
uart:
  baud_rate: 9600
  tx_pin: 27
  rx_pin: 26

#sim800l:
#  on_sms_received:
#    - logger.log:
#        format: "Received '%s' from %s"
#        args: [ 'message.c_str()', 'sender.c_str()' ]

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: "Sim800L RSSI"

binary_sensor:
  - platform: sim800l
    registered:
      name: "Sim800L Registered"
# statut
#  - platform: status
#    id: esp_sim800_statut
#    name: "Statut"      

output:
  - platform: gpio
    pin: 13
    id: "Internal_LED"
  
light:
  - platform: binary
    output: "Internal_LED"
    name: "Internal_LED"

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
  - platform: restart
    id: esp_sim800_restart
    name: "Redémarrage"

Ce qui donne pour le script l’appel vocal (sans les 3 SMS)

alias: Alerte - Appel vocal
description: Appel vocal destinataire
sequence:
  - type: turn_on
    device_id: dbxxxxxxxxxxxxxxxxxxxxxxxxxx8e   [en fonction de votre config]
    entity_id: light.internal_led
    domain: light
  - service: esp-sim800_dial
    data:
      recipient: '06xxxxx'
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - type: turn_off
    device_id: dbxxxxxxxxxxxxxxxxxxxxxc8e   [en fonction de votre config]
    entity_id: light.internal_led
    domain: light
mode: single
icon: mdi:message-alert-outline

2 « J'aime »

Je vois que la version 2022.3.1 de l’addon est obsolète :

ESPHome
Current version: 2022.3.1 → DEPRECATED - ESPHome.

Ils disent : Please add the ESPHome repo GitHub - esphome/home-assistant-addon: ESPHome Home Assistant Add-on and install the ESPHome add-on from there to continue getting updates.

Donc l’idée c’est de supprimer l’addon obsolète et d’installer l’addon avec le nouveau repo ? Mais du coup ca va pas faire perdre les ESP déjà installés via l’addon obsolète ? J’imagine que la suppression de l’addon va aussi supprimer les composants liés

J’ai regardé les breaking change et je ne vois pas de point sur cette migration et les impacts :thinking:

Effectivement, Nabucasa a racheté ESPHome, et du coup, ils l’ont en bonne logique intégré dans les add-on officiels, et ne le supporte plus dans les addons de la communauté.
Je viens de vérifier, la version courante dans le nouveau dépôt est toujours la même : 2022.3.1 Donc il n’y a aucune urgence. Par contre il faudra effectivement passer sur ce nouveau dépôt pour les prochaines mises à jour.

Concernant la migration, effectivement, rien dans la documentation. A priori, on peut supprimer l’addon et le recharger, et les composants seront retrouvés. Et au pire il est très facile de les recréer à partir des fichiers yaml présents dans le répertoire esphome. Mais je n’ai pas encore testé et le ferais prochainement.

Super. Merci pour les infos ! :pray:

En ce qui concerne mon changement d’antenne : j’ai gagné en db (de 5 à 15/20) mais il y a toujours ce bug aléatoire de sms qu’il faut renvoyer. A voir si comme tu le disais c’est le module qui se met en veille ou bien le problème est côté opérateur. L’important c’est que ça marche plutôt bien en général et que c’est facile à utiliser :wink:

Tu as peut être vu que j’avais testé le changement de dépôt, qui se passe très bien.
A voir dans la durée, mais il semble que cela règle notre pb de prise en compte des SMS. Si tu peux tester aussi… :blush:

j’ai modifié pour passer en MQTT, cela fonctionne plutôt bien dans l’ensemble. comme ceci

mqtt:
  topic_prefix: SIM800L
  discovery: false
  broker: 192.168.1.xxx
  port: 1883
  username: xxxxx
  password: xxxx
  discovery_prefix: homeassistant

  on_message:
    - topic: SIM800L/light/internal_led
      payload: 'ON'
      then:
        - logger.log: "incoming MQTT : ON"
        - output.turn_on : Internal_LED
    - topic: SIM800L/light/internal_led
      payload: 'OFF'
      then:
        - logger.log: "incoming MQTT : OFF"
        - output.turn_off : Internal_LED

  on_json_message:
    - topic: SIM800L/sensor/sms_message
      then:
        - logger.log: "MQTT message => Send Message"
        - sim800l.send_sms:
            recipient: !lambda |-
              if (x.containsKey("destinataire") ) {
              return x["destinataire"];
              }else{
                return "+33xxxxxx";
              }
              

            message: !lambda |-
              if (x.containsKey("message") ) {
              return x["message"];
              }else{
                return "None";
              }
              

J’ai juste un bug lorsque le message MQTT est vide.

[08:59:24][W][json:079]: Increasing memory allocation.

Auriez-vous une idée?

hello

je n’ai toujours pas retrouvé de connexion avec ma SIM Free mobile alors que ma sim Orange c’est OK.
je penche sur une mauvaise réception…

as tu un lien pour l’antenne que tu as acheté?

merci

Salut @carfnann , n’espère pas de miracle avec l’antenne, j’en ai commandé une pour tester et le gain n’a été que de 3 dBm en moyenne, l’orientation joue pas mal, pour ma part j’ai commandé l’antenne dédié au SIM800L.

@+

merci, j’ai tenté avec des antennes que j’avais sous la main mais pas mieux.
au vu de ton retour je préfère quitter Free Mobile, je vais me prendre un petit forfait chez Sosh

On peut ajouter une condition dans les automatisations, pour éviter les sms non sollicités à destination de Home Assistant.

alias: SIM800L - Test SMS
description: Retourne le SMS avec *Test ok* quand on envoie le SMS *Test* (test d'émission réception)
trigger:
  - platform: state
    entity_id: sensor.esp_sim800_sms_message
    to: Test
condition:
  - condition: state
    entity_id: sensor.sms_expediteur
    state: '+33888888888'
action:
  - service: esphome.esp_sim800_reply_sms_ok
mode: single
2 « J'aime »

Hello ,

Tout marche top pour moi ! Merci.

Toutfois j’aimerais savoir si il n’était pas possible de communiquer avec l’esp par le biais du cable usb et non wifi ?

Je voudrais le brancher directement sur Ha pour avoir moins de latance ou que ca marche quand il n’y a plus de wifi

Merci pour votre aide

1 « J'aime »

Aies, je ne crois pas. Par le cable, c’est juste une connexion série pour le chargement des binaires et les logs, et pas le protocole client-serveur ESPHome.

Salut.
Pas certain qu’il y ait beaucoup à gagner sur la latence cable vs wifi quand un SMS mets plusieurs secondes à arriver

A défaut au moins que cela continue à fonctionner sans wifi. Je tends à me passer du wifi en domotique

Bon c’est dommage de se passer de ESPHome, qui permet de faire pleins de choses spécifiques DIY. Après j’ai reçu et dois tester un ESP32 équipé d’une prise ethernet…. :wink:

j’attend qu’ils sortent une wt32-sim900 :sweat_smile:

j’ai un message d’erreur direct au boot :

INFO Reading configuration /config/esphome/lilygo-sim800l-01.yaml...
INFO Detected timezone 'Europe/Paris'
WARNING GPIO4 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from esp-sim800-01.local using esphome API
INFO Successfully connected to esp-sim800-01.local
[20:03:59][I][app:102]: ESPHome version 2022.6.2 compiled on Jul 30 2022, 19:15:28
[20:04:02][W][sim800l:065]: Not ack. 3 +CME ERROR: SIM PIN required

pourtant, j’ai bien vérifié que j’avais 0000 comme PIN sur un vieux téléphone…

des idées ???

Le pb est le code pin qu’il faut désactiver, et pas juste passer a 0000

C’est bien ca, je l’ai modifié sur un Samsung et désactivé sur un Wiko.
le binary_sensor registered est bien passé à on.

1 « J'aime »