Raspberry Pi : réception télécom. 433 MHz avec RFSniffer + script Python

Avec notre RFSniffer modifié, nous savons désormais comment recevoir un code dans un fichier stocké dans /home/pi/recu.txt, un processus mis en tâche de fond.

Voyons maintenant comment, au moyen d’un simple script rx2.py, placé dans /home/pi, nous allons pouvoir lancer des actions en fonction du code reçu (pensez à recréer les identations nécessaires à Python, WordPress a la faculté de tout bousiller lors d’un copier/coller, désolé…).

Nous allons commencer par copier recu.txt dans un fichier temporaire, temp.txt. Ouvrons alors ce fichier, lisons son code et lançons alors les actions appropriées :

  • allumage du salon (un script .sh tout simple exécuté en arrière plan)
  • extinction du salon
  • activation du relai 0 du PiFace, sous forme de pression : j’appuie, je relâche, comme s’il s’agissait d’une pression sur une télécommande
  • activation du relai 1 du PiFace

Pensez à créer un fichier /home/pi/zero.txt contenant juste le chiffre 0 (zero) sans rien d’autre.

Lancez le script simplement :

python3 rx2.py

Si vous voulez le faire tourner en tache de fond, ajoutez simplement un # devant les lignes contenant print, de façon à ce qu’aucun affichage ne vienne vous déranger, puis lancez le :

python3 rx2.py &

 

Je suis conscient qu’il doit être possible de faire un script beaucoup plus « pro » : je ne suis pas programmeur, je l’assume pleinement, mais le script fonctionne, n’est-ce pas l’essentiel ?

Et puis Blogwifi reste ouvert pour la publication de vos améliorations, c’est le principe d’un travail sans licence commerciale, non ? 😉

A vos scripts, prêts, partez !!

raspidomo1

#!/usr/bin/python3
#
# Lecture du code de télécommande reçu par RFSniffer (version modifiée, en tâche de fond)
# le code reçu se trouve dans /home/pi/recu.txt
#
import os
#
# Boucle de detection sans fin
#
# var = 1
while True :
#
# on copie recu.txt dans temp.txt pour éviter de le lire alors que le processus RFSniffer l'utilise (plantage assuré)
#
os.system('sudo cp /home/pi/recu.txt /home/pi/temp.txt')
#
# Ouverture et lecture de temp.txt
#
f = open('/home/pi/temp.txt', encoding='utf-8')
g = int(f.read())
#
# détection du code
# puis remise à zero de recu.txt en copiant zero.txt à sa place
# (zero.txt contient un simple 0)
#

#
# activation relai 0 du PiFace : ON puis OFF
#
if g == 4195665:
print ("Relai 0")
os.system('sudo python /home/pi/output.py 0')
os.system('sudo cp /home/pi/zero.txt /home/pi/recu.txt')

#
# activation relai 1 du PiFace : ON puis OFF
#
if g == 4195668:
print ("Relai 1")
os.system('sudo python /home/pi/output.py 1')
os.system('sudo cp /home/pi/zero.txt /home/pi/recu.txt')

#
# télécommande du salon, lancement des scripts salon_on ou salon_off (envoi de trappes SNMP à un contrôleur 10 relais)
# à modifier selon les besoins, le code est indiqué dans g == xxxxxxxx: xxxxxxx = code de télécommande
#
elif g == 4198737:
print ("salon on")
os.system('sudo sh /home/pi/salon_on.sh &')
os.system('sudo cp /home/pi/zero.txt /home/pi/recu.txt')

elif g == 4198740:
print ("salon off")
os.system('sudo sh /home/pi/salon_off.sh &')
os.system('sudo cp /home/pi/zero.txt /home/pi/recu.txt')

Publications similaires

  • FreeWiFi limité

    C’est UniversFreebox qui lève le lièvre : FreeWifi, le réseau communautaire des abonnés à Free ADSL,limite désormais son utilisation à un et un seul connecté. Bien entendu, tout ceci s’est fait sans communiqué officielle de l’opérateur autiste, connu pour ne pas être véritablement prolixe quant aux changements appliqués avec discrétion, tel cet insidieux filtrage des services Google qui génère une grogne de plus en plus grande chez les abonnés. A ce sujet, une pétition circule, pétition que je vous invite…

  • Webcampak Cloud : première vidéo

    Et voici venir la toute première vidéo HD 720p compilée grace à Webcampak Cloud, le nouveau produit de Time lapse actuellement en développement. La vidéo n’a pas de son, la date n’est pas à l’heure : il ne s’agit que d’un test pour démontrer la faisabilité du principe, proposer une solution de Time Lapse simple et économique, récupérant des images en http ou rtsp depuis n’importe quelle caméra IP. Dans cet exemple, nous avons un cliché toutes les minutes, transmis…

  • Sosh : roaming 365j/an et forfait bloqué

    Sosh lance une version bloquée de son forfait à 4,99 : Le forfait 4,99€ disponible en version bloquée !  A partir du 2 octobre, le forfait bloqué à 4,99€/mois sera disponible et comprendra :   2h de communications nationales des SMS/MMS illimités Pas de mauvaises surprises : fini le hors forfait, vous contrôlez votre budget. Tous les autres usages sont bloqués (internet mobile, numéros surtaxés, SMS+, appels à l’international, etc.). Si vous le souhaitez, il est évidemment possible de les débloquer. Il…

  • Bouygues ADSL : 19,99 €, sous conditions

    Martin Bouygues l’a annoncé ce matin : Bouygues Telecom va proposer dès Mars 2014 son offre ADSL à 19,99 € : Toutefois, attention aux détails : pas d’appels sur les mobiles (6 € en sus) uniquement sur les DSLAM dégroupés Bouygues Telecom, tout comme l’offre B-and-You, ce qui limite sérieusement les clients potentiellement touchés par une telle offre Bbox ancienne génération : on recycle, on recycle 🙂 165 chaines TV, un disque dur 40 Go. Une option à 6€ par…

  • Joe Mobile : data pour tous !

    Communiqué de Joe Mobile :  » Joe améliore le forfait personnalisable en incluant de la data pour tous  Plus économique, plus généreux et toujours plus connecté, le forfait personnalisable évolue !  Dès aujourd’hui, le forfait personnalisable inclut 2h d’appels, SMS/MMS illimités et désormais 100 Mo de Data H+ au prix inchangé de 5€ par mois. Envie de plus de data ? A vous de créer la combinaison qui vous convient et pourquoi pas, opter pour un forfait inédit incluant 2h d’appels, SMS/MMS illimités et 2 Go de…