Günstige Infrarotfernbedienung mit Broadlink RM Mini3 Black Bean

Hallo miteinander,
ich habe eine günstige Möglichkeit für die Steuerung von Geräten mit Infrarotfernbedienung gesucht und habe o.g. Gerät dafür eingebunden. (IR-Trans war mir deutlich zu teuer)
Basis ist folgendes Projekt:
https://github.com/mjg59/python-broadlink

Getestet habe ich nur IPS auf Raspberry. Mit python unter Windows habe ich keine Erfahrungen.

  1. Gerät mit der regulären Smartphone-App in Betrieb genommen und getestet.
  2. Mit broadlink_discovery die Daten des RM Mini3 abrufen
  3. broadlink_cli nach /usr/bin kopieren
  4. Skripte:
    learn.php
<?
$host = "192.168.X.X";
$mac = "XXXXXXXXXXXX"; //mac ohne doppelpunkte
$type = "0x2737";
$result = shell_exec("broadlink_cli --type $type --host $host --mac $mac --learn");
echo $result;    

?>

Skript learn ausführen, Knopf auf Fernbedienung drücken und zurückgegebenen Code kopieren

tv_power_onoff.php

<?
$host = "192.168.X.X";
$mac = "XXXXXXXXXXXX"; //mac ohne doppelpunkte
$type = "0x2737";
$command = "hier kopierten code von learn.php einfügen";
$result = shell_exec("broadlink_cli --type $type --host $host --mac $mac --send $command");
echo $result;    

?>

Eine native Unterstützung in IPS wäre mit natürlich lieber, aber da bin ich noch nicht so weit das zu programmieren.
Weiterentwicklungen, Verbesserungen, sonstiges sind erwünscht.

Grüße

Also das Zip habe ich von github herunter zu laden und entpackt. Dann habe ich in das Verzeichnis gewechselt und habe dort


sudo python setup.py install

eingegeben.
Dann ist auch was installiert worden.

Erste Auffälligkeit ist das die MAC die mir broadlink_discovery zurückgibt eine andere ist als im DHCP Server.
Aber ich habe dann das trotzdem mit der MAC und der Learn.php probiert und bekomme auch einen Code als Response.

Sollte beim Absenden eines Befehls theoretisch ein Response kommen? Wenn ich was sende, entsprechend Deinem Beispiel, kommt als $result nur NULL.

Eine Rückmeldung kommt nur, wenn ein Fehler auftritt.

Das Problem saß vor dem Bildschirm, ich hatte die falsche Funktion benutzt bzw. es wahr ein Fehler in der bat Datei. Jetzt klappt das auch mit Windows.

Folgendermaßen bin ich unter Windows vorgegangen.

[ul]
[li]Zip File von https://github.com/mjg59/python-broadlink heruntergeladen und auf der Festplatte entpackt. In einen Ordner abgelegt z.B. D:\Broadlink[/li][li]Python falls noch nicht vorhanden herunterladen und installieren Python 2.7[/li][li]Microsoft Visual C++ Compiler for Python 2.7 herunterladen und installieren[/li][li]In das Verzeichnis wechseln in das das Zip entpackt wurde und unter dem die setup.py liegt[/li][/ul]

Ausführen CMD öffnen und


python pip install broadlink

eingeben und ausführen.
Es wird dann alles notwendige installiert.

Jetzt erstellt man sich noch eine bat Datei broadlink_discovery.bat z.B. unter dem Verzeichnis Broadlink.


cd D:\Broadlink\cli
python broadlink_discovery

In IP-Symcon erstellt man nun ein Skript das die bat Datei aufruft


$result = shell_exec("D:/Broadlink/broadlink_discovery.bat");
print_r($result);

Dann bekommt man beim Ausführen des Skripts die Werte die man dann für Lernen bzw. zum Senden braucht. Der Rest dann analog oben wie von steppe beschrieben. Am einfachsten einen bat erstellen und die Parameter an die bat Datei übergeben.
Theoretisch geht das auch ohne Python, aber da würde ich auf PHP 7 warten weil dann ist Libsodium verfügbar, ansonsten baut man etwas was dann mit PHP 7 sowieso wieder überholt ist.

Das ist schön, dass das auch unter Windows funktioniert und hier die Anleitung dazu gepostet wurde.

Toll wäre dennoch die native Unterstützung durch IP-Symcon :slight_smile:

Grüße

Eine Sache ist mir noch aufgefallen. IR Codes lassen sich ohne Probleme anlernen, kann man theoretisch auch direkt ohne Python in IP-Symcon machen. Was bei mir bei einem Test mit dem Gerät vom Nachbarn und einer Intertechno Steckdose Probleme bereitet ist das Anlernen von Funkcodes der Steckdose. Bei IR drücke ich einfach einen Taste und schon ist der IR Code angelernt, bei der Intertechno Steckdose gibt mit das Python Skript No data received aus.

Hast Du auch Funkgeräte über das Skript anlernen können, gibt es da irgendwas spezielles zu beachten?

Ich würde mal behaupten, dass die Steckdosen mit Funk-Fernbedienungen funktionieren, da ja auch meistens irgendwo hinter einem Schrank oder sonstwo.
Der Blackbean kann natürlich nur Infrarot-Signale verarbeiten und keine Funksignale. (433 oder 866MHz)

Ja das komische ist irgendwie das er den Funkcode nicht sofort erkennt beim Anlernvorgang. Bei IR geht das indem ich die Taste ein einziges mal drücke. Bei Funk, in dem Fall Intertechno, kann ich zig mal drücken, es passiert oft nix. Wenn ich das Anlernen mehrmals wiederhole und dann auch mehrmals die Fernbedienung z.B. an und aus schalte dann lernt er auch irgendwann einen Code der funktioniert. Das Problem sehe ich darin das es nicht gleich funktioniert und ich nicht genau weis wenn ich abwechselnd ein/aus drücke welchen Code der Broadlink denn nun angelernt hat. Etwas umständlich, aber wenn der Code einmal erkannt wurde, dann funktioniert es zumindest auch.

Hier mal ein Entwurf zum Ausprobieren
IPSymconBroadlinkRM

Hallo,

eine Frage

Funkt das auf dem Raspi oder Windows oder beiden?

Bekomme auf meinem Winows Server Visual Compiler für Pyton nicht installiert

Probiere einfach
IPSymconBroadlinkRM
aus, dann brauchst Du auch überhaupt kein Python, das macht dann IP-Symcon ganz alleine. Da das ein PHP Modul ist funktioniert das ab IP-Symcon 4.1

Bei einer älteren IPS Version kannst Du Weg über Python gehen, das geht sowohl auf einem Raspberry als auch auf Windows. Auf dem Raspberry ist das etwas einfacher in Betrieb zu nehmen mit Python.

Hi,

die frage war RasPi.

Dort habe ich installiert und bekomme etliche Fehlermeldungen

Wo trage ich den die Datem von dem IR-Sender ein ?

wer lesen kann ist im Vorteil :banghead: