J’ai bien réussi à configurer sms2mqtt dans un conteneur docker avec une clé USB basée sur un SIM800C et je parviens à envoyer des SMS par des entités comme je le souhaitais, y compris des caractères accentués, chose que je ne parviens pas à faire malgré de nombreux essais avec l’application minicom (linux) qui n’accepte que des caractères ASCII.
Mais je ne vois pas comment gérer les SMS reçus sur ce dongle. Peut-on me détailler avec précision comment procéder ?
Merci AlexHass pour ta réponse ; j’avais déjà vu cette page que j’ai sûrement utilisée pour créer le docker qui fonctionne. J’avais aussi repéré sms2mqtt/received qui est le pendant de ce que j’utilise pour l’envoi (topic: sms2mqtt/send) mais je ne vois pas comment l’implémenter. J’ai peu d’expérience avec HA, en fait.
Je veux transférer ce message sur un autre N°.
Je suis en train de voir les automatisations mais je sèche pour retrouver le contenu du message et le transférer vers l’action à configurer.
ou bien encore avec " Received SMS are published to topic sms2mqtt/received like this : {"datetime":"2021-01-23 13:30:00", "number":"+31415926535", "text":"Hi, Be the Pi with you"}"
Après de nombreuses heures à chercher et tester différents codes, j’ai fini par faire fonctionner les transferts de SMS depuis mon module SIM800C vers un autre numéro de mobile.
Voici le code de l’automation qui fonctionne :
À présent, je bute sur un problème depuis des heures : récupérer des valeurs d’un message mqtt.
Début de l’automatisation :
alias: signal sms
description: afficher la qualité de réception du réseau 2G
trigger:
- platform: mqtt
topic: sms2mqtt/signal
alias: Lorsque la qualité du signal a changé
Je cherchais des complications alors que la réponse était sous mes yeux.
Voici le code de l’automation me permettant de récupérer la force du signal 2G :
alias: signal sms
description: afficher la qualité de réception du réseau 2G
trigger:
- platform: mqtt
topic: sms2mqtt/signal
alias: Lorsque la qualité du signal a changé
condition: []
action:
- service: input_number.set_value
target:
entity_id: input_number.signal_sms
data:
value: "{{ trigger.payload_json['SignalPercent'] }}"
- service: input_number.set_value
target:
entity_id: input_number.signal_sms_db
data:
value: "{{ trigger.payload_json['SignalStrength'] }}"
mode: single
Et voici le résultat dans Lovelace :
Je n’ai pas une très bonne réception mais c’est bien suffisant pour du SMS. Il s’agit du réseau Free avec un forfait à 2 € par mois. Les autres fournisseurs ne font pas mieux en matière de qualité de réseau…
alias: Mise à jour de la qualité du signal SMS
description: Met à jour les valeurs de qualité du signal SMS toutes les 5 minutes
trigger:
- platform: time_pattern
minutes: /5
condition: []
action:
- target:
entity_id: input_number.signal_sms
data:
value: "{{ states('sensor.signal_sms_percent') | float }}"
action: input_number.set_value
- target:
entity_id: input_number.signal_sms_db
data:
value: "{{ states('sensor.signal_sms_strength') | float }}"
action: input_number.set_value
mode: single
Je ne sais pas si c’est clean (Je suis plus sous jeedom) mais cela fonctionne parfaitement