Terrassenheizstrahler an 433-MHz-Steckdosen: Schalten bei Sonnenuntergang über eine Regel auf dem Pi
Von English mit KI übersetzt ·
Unsere Hotelterrasse hat vier Terrassenheizstrahler an günstigen 433-MHz-Funksteckdosen. Das Personal vergisst abends, sie einzuschalten, und nachts, sie wieder auszuschalten. Ich betreibe bereits einen Raspberry Pi, der für Hermetry die Terrassentemperatur erfasst.Ich habe über den Trick gelesen, einen Pi mit nur einem Draht an GPIO4 als FM/RF-Sender zu verwenden, und war zuerst begeistert, dann verwirrt. Wie funktioniert das überhaupt, kann ein GPIO-Pin tatsächlich Funk senden? Könnte ich damit die Steckdosencodes senden? Und ich möchte, dass Hermetry das automatisch erledigt: bei Sonnenuntergang einschalten, um 23:00 Uhr ausschalten. Ist das eine Regel oder ein 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?
Von English mit KI übersetzt ·
Der GPIO4-Trick nutzt den Taktgenerator des Pi: Er kann ein Rechtecksignal mit einigen zehn MHz ausgeben, und die Software verändert die Frequenz, um FM zu erzeugen. Ein Rechtecksignal besteht aus vielen Oberwellen, daher sendest du auch auf Frequenzen, für die du keine Nutzungsberechtigung hast. Für eine Labordemo ist das in Ordnung, aber ich würde das nicht auf einer Hotelterrasse einsetzen.
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.
Von English mit KI übersetzt ·
Für die Steckdosen ein 2-Dollar-Sendemodul FS1000A 433 MHz plus das Python-Paket rpi-rf. Zuerst die Codes der Fernbedienung mit dem passenden Empfänger mitschneiden (rpi-rf_receive), dann abspielen.
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.
Von English mit KI übersetzt ·
ok, ich habe das Sender- + Empfänger-Paar bestellt. Den Pi-Teil verstehe ich jetzt, aber wie löse ich das von Hermetry aus bei Sonnenuntergang aus?
ok I ordered the transmitter + receiver pair. So the Pi part is clear, but how do I trigger it from Hermetry at sunset?
Von English mit KI übersetzt ·
Regelkarte. Ich betreibe Lüftungspläne im Labor auf diese Weise.Gib zuerst dem Profil des Pi einen Befehl, z. B. heaters.set mit einem Ja/Nein-Parameter on, Basic-Stufe. Auf dem 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)
(Deine Codes und die Pulslänge stammen aus dem Sniff, meine sind Platzhalter.)Dann auf der Regelkarte des Terrassen-Assets:
- Regel „Heaters on“: When Sunrise or sunset, Sunset, offset -15. Then Send a command
heaters.seton = yes to the Pi. - Regel „Heaters off“: When A time of day 23:00, every day. Then the same with on = no.
Für den Sonnenuntergang wird der Standort benötigt. Trage daher Breiten- und Längengrad am Terrassen-Asset ein und ordne den Pi darunter an, sonst wird die Regel nicht gespeichert. Außerdem gibt es bei 433 MHz keine Rückmeldung. Wenn du sicher gehen willst, sende den Befehl zweimal mit einer Minute Abstand. Doku: 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.
Von English mit KI übersetzt ·
Läuft jetzt seit einer Woche! Die Meldung „Für Sonnenaufgang und Sonnenuntergang wird der Standort dieses Ortes benötigt“ habe ich genau so bekommen, die Koordinaten hinzugefügt, und es wurde gespeichert. Außerdem habe ich eine zweite Ausschaltregel um 23:05 ergänzt, weil eine Steckdose den Code inzwischen ab und zu verpasst. Das Personal hat nichts bemerkt, außer dass die Heizstrahler jetzt einfach dann an sind, wenn sie sollen.
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.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

