Chauffages d'extérieur sur prises 433 MHz : allumage au coucher du soleil depuis une règle via un Pi
Traduit de English par IA ·
La terrasse de notre hôtel dispose de quatre chauffages d’extérieur branchés sur des prises télécommandées 433 MHz bon marché. Le personnel oublie de les allumer le soir et de les éteindre la nuit. J’utilise déjà un Raspberry Pi pour relever la température de la terrasse dans Hermetry.J’ai lu l’astuce consistant à utiliser le Pi comme émetteur FM/RF avec un simple fil sur GPIO4, j’ai d’abord été enthousiaste, puis perdu. Comment cela fonctionne-t-il, une broche GPIO peut-elle vraiment émettre des ondes radio ? Pourrais-je s’en servir pour envoyer les codes des prises ? Et j’aimerais qu’Hermetry le fasse automatiquement : allumage au coucher du soleil, extinction à 23 h 00. Est-ce une règle ou un flow ?
Our hotel terrace has four patio heaters on cheap 433 MHz remote sockets. Staff forget to switch them on in the evening and forget to switch them off at night. I have a Raspberry Pi already doing the terrace temperature for Hermetry.
I read about the « Pi as an FM/RF transmitter with just a wire on GPIO4 » hack and got excited, then confused. How does that even work, can a GPIO pin really transmit radio? Could I use that to send the socket codes? And then I’d like Hermetry to do it automatically: on at sunset, off at 23:00. Is that a rule or a flow?
Traduit de English par IA ·
L’astuce GPIO4 utilise le générateur d’horloge du Pi : il peut produire une onde carrée à quelques dizaines de MHz, et le logiciel en modifie la fréquence pour obtenir de la FM. Une onde carrée est riche en harmoniques, donc vous émettez aussi sur des fréquences que vous n’avez pas le droit d’utiliser. Acceptable pour une démo de labo, mais je ne le mettrais pas sur la terrasse d’un hôtel.
The GPIO4 trick uses the Pi’s clock generator: it can put out a square wave at tens of MHz, and the software wiggles the frequency to make FM. A square wave is full of harmonics, so you’re also transmitting on frequencies you have no right to use. Fine for a lab demo, I wouldn’t put it on a hotel terrace.
Traduit de English par IA ·
Pour les prises, un module émetteur FS1000A 433 MHz à 2 dollars et le paquet Python rpi-rf. Commencez par capturer les codes de la télécommande avec le récepteur correspondant (rpi-rf_receive), puis rejouez-les.
For the sockets, a 2 dollar FS1000A 433 MHz transmitter module plus the rpi-rf Python package. Sniff the remote’s codes with the matching receiver first (rpi-rf_receive), then replay them.
Traduit de English par IA ·
ok, j’ai commandé la paire émetteur + récepteur. La partie Pi est claire, mais comment la déclencher depuis Hermetry au coucher du soleil ?
ok I ordered the transmitter + receiver pair. So the Pi part is clear, but how do I trigger it from Hermetry at sunset?
Traduit de English par IA ·
Carte Règles. J’exécute les plannings de ventilation du labo de cette façon.Commencez par donner au profil du Pi une commande, par exemple heaters.set avec un paramètre Oui/Non on, niveau Basic. Sur le Pi :
from rpi_rf import RFDevice
tx = RFDevice(17); tx.enable_tx()
CODES = {True: [5592405, 5592407, 5592411, 5592413],
False: [5592404, 5592406, 5592410, 5592412]}
def on_rpc(req_id, body):
if body.get("method") == "heaters.set":
for code in CODES[bool(body["params"]["on"])]:
tx.tx_code(code, 1, 350) # protocol 1, pulse length from the sniff
client.publish(f"v1/rpc/res/{req_id}", '{"ok": true}', qos=1)
(Vos codes et la durée d’impulsion proviennent du sniff, les miens sont des valeurs provisoires.)Puis, sur la carte Règles de l’asset terrasse :
- Règle « Heaters on » : When Sunrise or sunset, Sunset, offset -15. Then Send a command
heaters.seton = yes to the Pi. - Règle « Heaters off » : When A time of day 23:00, every day. Then the same with on = no.
Le coucher du soleil nécessite la localisation du lieu : renseignez donc la latitude/longitude sur l’asset terrasse et placez le Pi sous celui-ci, sinon la règle ne sera pas enregistrée. Par ailleurs, le 433 MHz n’offre aucun retour, donc envoyez la commande deux fois à une minute d’intervalle si vous voulez être sûr. Doc : Time, sunrise/sunset, dates and holidays.
Rules card. I run lab ventilation schedules this way.
First give the Pi’s profile a command, e.g. heaters.set with a Yes/no param on, Basic tier. On the Pi:
from rpi_rf import RFDevice
tx = RFDevice(17); tx.enable_tx()
CODES = {True: [5592405, 5592407, 5592411, 5592413],
False: [5592404, 5592406, 5592410, 5592412]}
def on_rpc(req_id, body):
if body.get("method") == "heaters.set":
for code in CODES[bool(body["params"]["on"])]:
tx.tx_code(code, 1, 350) # protocol 1, pulse length from the sniff
client.publish(f"v1/rpc/res/{req_id}", '{"ok": true}', qos=1)
(Your codes and pulse length come from the sniff, mine are placeholders.)
Then on the terrace asset’s Rules card:
- Rule « Heaters on »: When Sunrise or sunset, Sunset, offset -15. Then Send a command
heaters.seton = yes to the Pi. - Rule « Heaters off »: When A time of day 23:00, every day. Then the same with on = no.
Sunset needs the place’s location, so put latitude/longitude on the terrace asset and place the Pi under it, otherwise the rule won’t save. Also, 433 MHz has no feedback, so send the command twice a minute apart if you want to be sure. Doc: Time, sunrise/sunset, dates and holidays.
Traduit de English par IA ·
Ça fonctionne depuis une semaine maintenant ! Le message « Le lever et le coucher du soleil nécessitent la position de ce lieu » était exactement celui que j’ai reçu ; j’ai ajouté les coordonnées et c’est enregistré. J’ai aussi ajouté une deuxième règle d’arrêt à 23 h 05, car une prise rate le code de temps en temps. Le personnel n’a rien remarqué, si ce n’est que les chauffages s’allument simplement quand il faut.
Running for a week now! « Sunrise and sunset need this place’s location » was exactly the message I got, added the coordinates and it saved. I also added a second off rule at 23:05 because one socket misses the code now and then. Staff noticed nothing except the heaters are just on when they should be.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

