Pocsag ( Bip Pompier)

Bonjour
je pense depuis quelques années à créer un scenario idéal pour les pompier volontaires.
à savoir la détection du bip ( Protocol POCSAG)
pour déverrouiller la porte d’entré , allumer la lumiere , prechauffer la voirute , ouvri la porte de garage ect.
il est possible d’écouter la fréquence et de filtrer par numéro de récepteur. en utilisant une clée SDR ( et des project comme https://github.com/cmar0ck/RasPOC)
serait il possible de creer un pluggin qui gere cela et pourrais servir de declencheur au scenario?

bonne journée
julien

1 « J'aime »

Hello @jules.35,

Super idée de scenario ! Ca pourrait même être généralisé pour d’autres type des système d’alerte d’astreintes etc. Par contre, il me semble qu’il faut avoir une licence RadioAmateur, ne serait-ce que pour avoir le droit d’écouter une fréquence réservée (si un RadioAm peut confirmer), donc attention.

Après un peu de lecture sur « comment » récupérer les trames Pocsag :

https://www.ronan.bzh/p/decoding-pocsag-on-ubuntu-with-a-rtl-sdr-dongle/

Ce ne serait pas impossible de faire quelque chose, mais on rentre dans des paramètres radio complexe (fréquence, dérive du récepteur, seuil de détection, etc) qui ne sont pas à la porté du premier venu et rendraient le système « peu fiable ».

Perso, je partirais plutôt sur un simple Bouton de commande Z-Wave Plus rouge Fibaro (sur la table de chevet ou le bureau) qui lui lancerait le scenario.
Si on entend pas l’alerte, pas de scenario certes, mais ça fait le job de façon sûre sinon.

Bad

je suis pas doué en programation mais à priori la sortie ressemble à ca : ( dans un fichier texte par exemple)
POCSAG1200: Address: 34940 Function: 3 Alpha: MERCI DE RAPPELER LE STANDAR
et si on fait un filtre sur 34940. on est avertti que quand on est concerné par l’appel.

Comme écrit plus haut, la partie VRAIMENT compliquée est de récupérer le message.

Si tu trouves une façon de le récupérer (par exemple dans un fichier texte), ce sera simple de le transformer en alerte ou action dans Jeedom.

Pour te donner une analogie de la complexité que ça représente :
Tu veux remplir le réservoir de ta voiture et tu as un jerrican et du pétrole brut. Tu dois donc transformer ton pétrole brut en Sans Plomb 98, c’est ça le problème, pas de verser du SP98 dans la voiture à partir du jerrican :wink:

Bonsoir je me renseigne dés que je croise la personne qui récupère déjà les trames pocsag pour les réutiliser je reviens vers vous avec plus d’explications dés que j’en ai …

Bad la clef SDR joue déjà un gros rôle de raffinage … :joy:

nb La SDR est pratique j’ai dans l’idée de m’en servir pour intercepter le relevé de mes compteurs d’eau … du moins c’est dans ma todo liste

Bonsoir
cool
si besoin je peut mettre à dispo un raspberry avec un sdr et une antenne. pour les besoin du développement.
et si on s’organise je peut emettre des trames de test depuis le centre de secour.

Bonsoir,
C’est super, mais je propose juste de prendre des renseignements prêt d’un SPV qui recupère déja ces trames pour les utiliser pour autre chose que Jeedom, je ne sais plus trop quoi mais…
Donc de voir avec lui ce que je peux glaner pour aider des personnes qui connaissent bien le développement de plugin. Car moi je ne suis pas encore à ce niveau.

Mais ta proposition va peut être intéresser un dev, si en plus on lui trouve le moyen de faire (la rpi + SDR) =(raffinerie plus distributeur de carburant) cela peut être bien :grin:

Bonjour,
Voici un fichier script sh permettant de récupérer les trames POCSAG via une clé SDR depuis un Raspberry Pi et de les renvoyer dans un fichier txt pour les traiter et les transmettre en SMS

#!/bin/bash
#lancement du système d'alerte par SMS	
	#exec &>> debug.log
	#commande de décodage avec log dans fichier alert_output.txt
	rtl_fm -A lut -s 22050 -p 45 -f 173.512.5M - | multimon-ng -t raw -a POCSAG512 -a POCSAG1200 -a POCSAG2400 -f alpha /dev/stdin >>./alert_output.txt&

	#boucle de lecture du fichier alerte
	while read line;
	do
		# On récupère l'id contact type 26xxxx
		contact_id=`echo $line | cut -d " " -f 3`
		# On affiche le numéro de bip à contacter
		echo BIP_ALERT : $contact_id

		#on vérifie si un fichier de liste de contact lui est attribué
		if [ ! -e ./contact/$contact_id.txt ]
		then
			#s'il n'y en a pas on retour une erreur
			echo "Aucune liste de contacts trouvée pour $contact_id"
		else
			#sinon :
			# On récupère le message alpa en retirant le nul à la fin
			message=`echo $line | cut -d : -f 5,6 | cut -d "<" -f -1`
			echo MESSAGE : $message

			# On appel maintenant le script d'envoi de SMS pour envoyer l'alerte
			echo "Envoi message : $message à la luste de contact pour $contact_id"
				if [ "$message" != "" ] && [ "$message" != "." ]
					then 
						./send_sms.sh ./contact/$contact_id.txt "$message"
						gpio mode 21 out && gpio write 21 1
						sleep 1
						gpio write 21 0
					else
						echo « message vide »
				fi
            #./send_sms.sh ./contact/$contact_id.txt "$message"

		fi

	done < <(tail -2f ./alert_output.txt)	

Concernant l’émission des trames, elles sont facilement possible via un RPI avec l’outil RPITX et un fil connecté à une broche du GPIO afin de faire office d’antenne

2 « J'aime »

Pour envoyer un message MQTT en shell, tu peux utiliser mosquitto_pub de la façon suivante :

broker = "192.168.x.x" # IP du Broker
base_topic = "pocsag" # Topic de base

# $message is "safe"/ascii
mosquitto_pub -h $broker -t $base_topic/$contact_id -m "$message"

# $message is "unsafe"/binary
echo -n $message | mosquitto_pub -h $broker -t $base_topic/$contact_id --stdin-file

Ca doit être possible de positionner cet envoi au niveau de #./send_sms.sh [...]

1 « J'aime »

Merci
Tom super réactif jules.35 va pouvoir avancer grâce à toi. :+1: :+1:

A défaut d’un plugin il va pouvoir l’avoir sa super télécommande …
Tiens nous au courant jules.35

super . merci à vous , vous etes super réactif.
j’ai laissé tourner le script de tom et j’attend que le fichier txt se remplisse
c’est toi qui à fait le script tom?
je vous tiens au courant
pour vous le mieu c’est de faire tourner sur un raspberry puis de transmettre à ma box jeedom via un appel http?
ou de le faire tourner sur ma box jeedom atlas?( je risque de perdre le support si je trifouille en ssh?

Oui, le script est de moi,
Fait le tourner sur un RPI avec une clé SDR

Remplace dans mon script l’appel au script send_sms.sh par un petit script qui te lances un scénario

Si tu Utilises MQTT tu peux utiliser la solution donnée par Bad.
Je suis Fan de cette solution car elle permet la liaison entre plein de choses qui peuvent être très hétérogènes

2 « J'aime »

Salut a tous ,

on a des nouvelles de @jules.35 ? ca fonctionne ? je veux bien un petit tuto ou lien pour m’aider je decode tout ca deja sur mon pc

je veux passer ma cle sur un rpi et transmettre a jeedom

petite question est-il possibble de transmettre uniquement certains messages ?

merci de votre aide