NEWS
433 MHz Fernbedienung via RF-Bridge visualisieren
-
Vorhandene Situation:
Ich empfange über einen 433 MHz-NanoCUL-Stick, welcher an einem separaten HomeMatic-Raspi (ELV-Charly) angeschlossen ist, die Daten meiner 433 MHZ-Wetterstation.
Zusätzlich steuere ich via ioBroker (auf einem anderen Raspi) und die oben genannte Kombination einige 433 MHZ Funksteckdosen von Intertechno.
In vis werden die Schaltzustände dann automatisch angezeigt. Das funktioniert soweit gut mit ioBroker.Problem:
Ich kann die Funksteckdosen natürlich auch mit der originalen Funkfernbedienung schalten.
Allerdings bekommt ioBroker davon nichts mit, ergo wird in vis auch nichts aktualisiert.Lösung:
Ich hatte hier noch eine mit Tasmota geflashte RF-Bridge rumliegen, die ursprünglich für das Schalten der Steckdosen gedacht war, aber das erledigt ja zwischenzeitlich der NanoCUL-Stick.Jetzt verwende ich die RF-Bridge "nur" zum Empfangen der Fernbedienungs-Signale.
Dazu ist in ioBroker der Sonoff-Adapter installiert, welcher die Signale der RF-Bridge via MQTT empfängt.
Der empfangene Code wird dann als Zahl im Datenpunkt sonoff.0.RF-Bridge.RfReceived_Data dargestellt.Es werden natürlich auch andere 433 MHz-Signale empfangen, wie z.B die Daten meiner Wetterstation und was sonst noch so aus der Nachbarschaft sendet.
Mich interessieren aber nur die Daten der Steckdosen-Fernbedienung.
Also habe ich ein recht simples JavaScript geschrieben, welches diese Daten über if-Abfragen ausfiltert.Zuerst legt das Script die entspr. Datenpunkte ( Typ bool/boolean ) für jede Steckdose an.
Dann müssen allerdings die jeweiligen An-/Aus-Codes für jede! Steckdose, bzw. Tastenkombination ermittelt werden.
Dazu drücke ich kurz die entspr. Taste auf der FB und im Datenpunkt sonoff.0.RF-Bridge.RfReceived_Data wird dann der entspr. Code angezeigt ( oder auch im angehängten view).
Diese Codes trage ich dann alle manuell in die entspr. if-Abfragen ein.Wenn alle Codes eingetragen sind und dann ein entspr. FB-Code empfangen wird, wird der zugehörige State auf true/false gesetzt. Diesen State kann ich dann in vis auswerten.
Anbei das JavaScript:
//##################################################################### // 433 MHz - Signale empfangen und filtern ueber Sonoff RF-Bridge //##################################################################### var pfad = 'javascript.0.intertechno_fb.'; // Objekt-Kanal, wo die Objekte fuer die einzelnen Onjekte/States abgelegt werden const empfangen = 'sonoff.0.RF-Bridge.RfReceived_Data' // vorhandener Datenpunkt fuer empfangene 433 MHz-Daten von der RF-Bridge // Datenpunkte fuer die vorhandenen Funksteckdosen anlegen createState(pfad + 'fb_couch_joerg', {name: 'FB empfangen Couch Joerg', desc: 'FB empfangen Couch Joerg', type: 'boolean' }); //Erster Datenpunkt createState(pfad + 'fb_couch_renate', {name: 'FB empfangen Couch Renate', desc: 'FB empfangen Couch Renate', type: 'boolean' }); //ZweiterDatenpunkt createState(pfad + 'fb_wandspots', {name: 'FB empfangen Wandspots', desc: 'FB empfangen Wandspots', type: 'boolean' }); //Dritter Datenpunkt createState(pfad + 'fb_palme_regal', {name: 'FB empfangen Palme Regal', desc: 'FB empfangen Palme Regal', type: 'boolean' }); //Vierter Datenpunkt createState(pfad + 'fb_regallicht', {name: 'FB empfangen Regal-Licht', desc: 'FB empfangen Regal-Licht', type: 'boolean' }); //Fuenfter Darenpunkt // Bei Aenderung von sonoff.0.RF-Bridge.RfReceived_Data den 433 MHz-Empfangscode auswerten on({id: empfangen, change: "any"},function(obj) { var empf_code = getState(empfangen).val ; // log ("empf_code: " + empf_code); // loggt empfangenen Code / Zum Ermitteln der Codes diese Zeile aktivieren // In den folgenden if-Abfragen muss fuer jede Steckdose der entspr. An-/Aus-Code manuell eingetragen werden! if(empf_code == 4194325) { setState (pfad + 'fb_couch_joerg', true, true); } //an if(empf_code == 4194324) { setState (pfad + 'fb_couch_joerg', false, true);} //aus if(empf_code == 16405) { setState (pfad + 'fb_couch_renate', true, true); } //an if(empf_code == 16404) { setState (pfad + 'fb_couch_renate', false, true); } //aus if(empf_code == 5259285) { setState (pfad + 'fb_wandspots', true, true); } //an if(empf_code == 5259284) { setState (pfad + 'fb_wandspots', false, true); } //aus if(empf_code == 5242901) { setState (pfad + 'fb_palme_regal', true, true); } //an if(empf_code == 5242900) { setState (pfad + 'fb_palme_regal', false, true); } //aus if(empf_code == 4117) { setState (pfad + 'fb_regallicht', true, true); } //an if(empf_code == 4116) { setState (pfad + 'fb_regallicht', false, true); } //aus }); // Ende on(id)
Hier noch ein entspr. View zum Testen:
fb-test-view.zipund die im view enthaltenen Bildchen.
Evtl. kann das ja jemand von Euch gebrauchen?
Gruß
Jörg__
P.S.
Das funktioniert nur mit den "üblichen" Fernbedienungen/Steckdosen, die immer die gleichen Codes verwenden, aber nicht mit Fernbedienungen, welche Rolling Code (sich ändernden Code) verwenden. -
@joergeli sagte in 433 MHz Fernbedienung via RF-Bridge visualisieren:
originalen
Hallo Jörg, ich habe das Ganze mal übernommen, da ich auch die 433 MHz Singale per iobroker/VIS abfangen möchte.
Leider ändert sich die Lampe im VIS nicht.. Der gesendete Code wird korrekt angezeigt.. Hast du ggf. eine Idee, was ich falsch mache?
Siehst du eine Möglichkeit, nicht nur die Signale zu empfangen, sondern auch zu sende und die FB an bzw. aus zuschalten? (jedoch auch weiterhin mit der original FB). -
@Kochen
Hallo,
hast Du die Datenpunkte, wie z.B. javascript.0.intertechno_fb.fb_couch_joerg auf Deine Gegebenheiten angepasst?
Tut sich in den Datenpunkten etwas, wenn Du auf der FB eine Taste drückst?
Virtuelle Lampen:
Die Object-IDs der Lampen-Widgets (hqwidgets - On/Off) müssen auf diese Datenpunkte verweisen.Aber wie gesagt, das Ganze dient nur dazu, die Signale der originalen FB im vis anzuzeigen. ( also: ist Lampe xy an/aus?). Es lassen sich auch nur max. 16 Signale anlernen.
Aus dem vis Schalten kann man mit dieser Konstellation nicht!.@Kochen sagte in 433 MHz Fernbedienung via RF-Bridge visualisieren:
Siehst du eine Möglichkeit, nicht nur die Signale zu empfangen, sondern auch zu sende und die FB an bzw. aus zuschalten? (jedoch auch weiterhin mit der original FB).
Ja, ich verwende dazu (zusätzlich zur RF-Bridge) einen Broadlink RM Pro+, an den man via ioBroker Broadlink-Adapter sowohl Infrarot-, als auch 433 MHz-Signale anlernen kann.
Die angelernten Signale kann man anschließend über ioBroker (z.B. via vis) senden und somit z.B. Funksteckdosen (433 MHz), oder auch TV o.ä. via IR schalten.
Hinweis: Der Broadlink RM Pro+ kann selbst nichts senden, das geht nur über den ioBroker Broadlink-Adapter.Das Ganze ist bei mir ein wenig "von hinten durch die Brust in's Auge", also RF-Bridge plus Broadlink plus 433 MHz Nano CUL.
Die 433 MHZ -Funksteckdosen werden über kurz oder lang, wahrscheinlich sowieso durch Shelly WLAN-Zwischenstecker ersetzt. Momentan läuft das nur wegen dem WAF noch über 433 MHz, d.h. Frau hantiert lieber mit der originalen FB, als mit vis vom Tablet.
Ich würde also nicht unbedingt empfehlen, dieses IR-/Funk-Geraffel einzusetzen (irgendwann blickt man selbst nicht mehr durch, wer da was wo sendet/empfängt)
Evtl. eignet sich ja auch eine Logitech Harmony Universal-FB mit dem entspr. ioBoker-Adapter besser?
Aber dazu kann ich leider nichts sagen, musst mal hier im Forum suchen.Gruß
Jörg -
@joergeli sagte in 433 MHz Fernbedienung via RF-Bridge visualisieren:
fb
Hallo,
ich werde es die Tage noch einmal probieren bzw. mir überlegen, ob ich die 433MHz Sachen nicht gegen modernes Zeug tauscheBesten Gruß