Broadlink als IR + HF gateway

Begonnen von palicaj, 17 Juni 2015, 15:42:39

Vorheriges Thema - Nächstes Thema

palicaj

Ist moeglich Broadlink  - http://www.ibroadlink.com/ als IR und HF gateway nutrzen?

fhemHolli

#1
Die RM Pro Serie von Brodlink (RM1, RM2) kann seit kurzem über eine Android APP <RM Bridge> angesprochen werden.
Das wird teilweise schon von anderen Hausautomatisierungslösungen genutzt.
Auch mit fhem ist es möglich Kommandos über <RM Bridge> an den RM Pro zu senden, der dann z.B. eine Intertechno Steckdose an oder ab schaltet.
Ich warte schon seit langem auf eine Lösung den RM Pro von Broadlink in meine fhem Installation zu integrieren, jetzt ist es möglich...
...aber nur über den Umweg einer Android APP was ich eigentlich nicht will.
Ich würde den RM Pro gerne direkt über ein fhem Modul ansprechen, oder wenigstens über eine Linux Anwendung, damit ich nicht noch ein Android Handy oder eine Android TV Box mitlaufen lassen muss.

Hier einige Links zum Thema
http://milillicuti.com/an-api-to-connect-your-broadlink-rm-pro-irrf-wifi-bridge-to-your-home-automation-system/
https://play.google.com/store/apps/details?id=de.fun2code.android.rmbridge
http://rm-bridge.fun2code.de/

Zusätzlich gibt es jetzt auch ein Tasker Plugin womit der RM Pro direkt angesteuert werden kann
Womit wir schon wieder beim Thema Android sind...
Broadlink RM Tasker Plugin
https://play.google.com/store/apps/details?id=us.originally.tasker

Ich mag den Broadlink RM Pro sehr, für kleines Geld eine tolle Hardware, aber der Hersteller wert sich mit Händen und Füßen gegen eine Offenlegung der api.

Da für Android das Eis jetzt gebrochen ist, werde ich halt noch ein halbes Jahr warten, dann hat es einer auf Linux oder Windows portiert.  ;)

Noch ein halbes Jahr weiter gibt es dann ein passendes fhem Modul  8)
TS-453mini, QTS 4.3.6, fhem-5.9
MaxCun, HMLAN (das Original), Broadlink RM2
Homematic & Max Heizungs Gedöns
Intertechno Licht / Steckdosen

YellowBall

#2
Hallo zusammen,

gibt's schon was Neues zu Broadlink & Co.?

Die günstigen Komponenten gibt es hier: http://de.aliexpress.com/wholesale?catId=0&initiative_id=SB_20160407065905&SearchText=broadlink

Fehlt nur noch ein schickes FHEM-Modul...
Raspi 0,1,2,3,4 | HMUART | Broadlink | Harmony | Xiaomi | Milight | Homematic | Somfy | Sonos | Meross  | Sonoff  | Shelly | Comet DECT  | ioBroker

Kebbo

Ich pushe das mal hier hoch,

Wäre auch sehr interessiert an einen Modul

Gibt es schon was neues?

Ist überhaupt ein modul in Arbeit?

Becky92

Hi,
ich bin neu im Forum und habe mit FHEM noch nichts realisiert. Allerdings würde auch ich gerne per FHEM mein Boradlink RM Pro steuern und bin dazu auf folgendes gestoßen:
https://github.com/mjg59/python-broadlink
Phyton sollte man per FHEM doch ansteuern können...
Wenn es damit funktioniert, wäre es schön wenn jemand eine kurze Anleitung schreiben könnte.
Bitte antwortet ob es brauchbar ist.

jostereo

Ich hatte auch schonmal ein wenig gebastelt und in einem anderen Thread mich mit dem Thema beschäftigt.

Falls dort jemand auch mal was zu lesen will -> https://forum.fhem.de/index.php/topic,54334.msg534563.html#msg534563

Ich habe mir zu Testzwecken einen Python Webservice gebaut der auf URL aufrufe reagiert und dann mit dem Modul HTTPMod aus FHEM zu steuern ist.

Bei Interesse kann ich mal versuchen dazu etwas zusammenzuschreiben.

Becky92

Danke joestereo,
Eine kleine Zusammenschrift wäre für mich sicher sehr hilfreich.

jostereo

!!!WICHTIG - Das Ganze ist etwas gebastelt und ist noch nicht sehr "userfreundlich", also es gibt ein bischen Arbeit für euch.

Was bekommt Ihr:
Durch die Installation der Tools und anlegen der Scripts, könnt Ihr für jeden Broadlink einen Webservice starten und diesen z.B. von FHEM aus per HTTPDMod steuern.
Es geht natürlich logischerweise auch über den Browser

Vorraussetzungen

  • Ihr solltet auf jedenfall ein wenig Ahnung von Linux haben / Euch gut Sachen zusammengooglen können  ;D
  • IP und MAC Adresse des Broadlink in eurem Netzwerk

Installation

  • Installation der Broadlink API aus dem GitHub https://github.com/mjg59/python-broadlink
  • Nach der Installation sollte ein Ordner "python-broadlink" vorhanden sein mit ein paar Dateien und Ordnern
  • Installation des web.px Frameworks (Wurde benutzt um die Erstellung des Webservices zu beschleunigen). Anleitung hier http://webpy.org/
  • Kopieren der angefügten Dateien auf das Dateisystem

Beschreibung der Dateien

bl_webservices.py
Hauptdatei die über das web.py Framework einen Webservice für einen Broadlink bereitstellt.

Aufgerufen wird die Datei mit folgender Syntax:
python bl_webservice.py  <webservice_port> <broadLinkIP> <broadLinkMac>
<webservice_port> - Ist der Port auf dem Ihr auf den Webservice zugreifen könnt (bspw: http://localhost:1234)
<broadLinkIP>        - IP Adresse eures Broadlinks (bspw: 192.168.100.2)
<broadLinkMac>     - MAC Adresse eueres Broadlinks (bspw: aa:11:22:33:cc)

IR_Gateway_01_start.sh
Beispiel Startscript für einen Broadlink.
Die Variablen müssen einfach mit euren Daten ergänzt werden.
Der Start erzeugt auch eine PID Datei für jeden Prozess, so dass ihr den Webservice direktüber "kill PID" beenden könnt.
Um mehrere Broadlinks zu steuern, einfach das Script kopieren und die Daten anpassen (Port muss natürlich unterschiedlich sein.

Wie steuer ich nun meine Geräte?
Versucht erstmal einen Zugriff auf euren PC, wo die Sachen gerade installiert wurden auf den konfigurierten Port.
bspw: http://localhost:1234/command?cmd=list
Das sollte euch im Browser Text anzeigen über die verfügbaren Befehle.

Um nun einen Befehl zu lernen (bzw. den HexCode des Befehls auszulesen) ruft einfach folgende URL auf:
http://localhost:1234/command?cmd=learncode
An eurem Broadlink sollte nun die weiße LED angehen.
Nun habt ihr knapp 3 Sekunden Zeit den Knopf auf der Fernbedienung zu drücken und natürlich die Fernbedieung Richtung Broadlink zu richten.
Wenn das "anlernen" erfolgreich war, zeigt euch der Browser eine sehr lange Folge von Zeichen an.
Diese Folge ist der HexCode für den Befehl. Speichert euch diesen weg.

Möchtet Ihr nun den Befehl senden, müsst Ihr einfach folgende URL aufrufen:
http://localhost:1234/command?cmd=senddata&hexvalue=$val

$val ist dann der HexCode.
Nun sollte der Broadlink den Befehl senden.

Steuerung über HTTPDMod sollte nun kein Problem mehr sein.

Wie gesagt wollt Ihr mehrere Broadlinks steuern, legt euch einfach mehrere .sh Scripte mit den Parametern an (Port bitte ändern) und dann könnt Ihr auf Sie zugreifen

Welchen Vorteil habe ich über den Webservice

  • Gekapselter Zugriff auf den Broadlink von verschiedenen Fremdsystemen
  • Benutzung des Moduls HTTPMOD in FHEM
  • Es muss nicht für jeden Befehl ein Verbindungsaufbau zum Broadlink gemacht werden. Der Webservice hält die Verbindung offen und sendet nur noch Befehle an den Broadlink. Dadurch werden Befehle sehr schnell ausgeführt[/i]
Aktuelle Probleme
- Leider scheint das .sh Script noch nicht ganz in Ordnung zu sein, da Meldungen auf die Console geloggt werden. Vielleicht kann sich da ja mal ein Linux Pro ransetzen.
- Ich habe noch nicht getestet ob für das Script der Root Zugang / sudo Berechtigungen notwendig sind.

Becky92

Vielen Dank jostereo,
das probiere ich direkt nach der lästigen Klausurenphase mal aus [emoji1360]


Gesendet von iPhone mit Tapatalk

EnderPhilipp

Für welche Broadlinks (RM1, RM2, RM3)funktioniert den die Anleitung ?
¡¡¡ANFÄNGERALARM!!!
Raspberry Pi 3 (Hauptsystem)
Raspberry Pi B+ (Kellersonde)
Homematic,Philips Hue, LD382, nanoCul 433/868mhz, MPD, Intertechno, FIRMATA, EspEasy, SSCAM, STV, HDMI-CEC, EchoDot

jostereo

Zitat von: EnderPhilipp am 13 Februar 2017, 14:36:40
Für welche Broadlinks (RM1, RM2, RM3)funktioniert den die Anleitung ?

Also getestet habe ich zu Hause mit einem RM3 Mini.

Sollte aber auch mit einem RM3 und RM2 funktionieren.
Falls es mit einem RM2 nicht direkt funktioniert, müsste eine Zeile Code angepasst werden.
Leider habe ich keinen um das zu testen.

westsidex

Zitat von: jostereo am 10 Februar 2017, 21:25:55
!!!WICHTIG - Das Ganze ist etwas gebastelt und ist noch nicht sehr "userfreundlich", also es gibt ein bischen Arbeit für euch.

Was bekommt Ihr:
Durch die Installation der Tools und anlegen der Scripts, könnt Ihr für jeden Broadlink einen Webservice starten und diesen z.B. von FHEM aus per HTTPDMod steuern.
Es geht natürlich logischerweise auch über den Browser

Vorraussetzungen

  • Ihr solltet auf jedenfall ein wenig Ahnung von Linux haben / Euch gut Sachen zusammengooglen können  ;D
  • IP und MAC Adresse des Broadlink in eurem Netzwerk

Installation

  • Installation der Broadlink API aus dem GitHub https://github.com/mjg59/python-broadlink
  • Nach der Installation sollte ein Ordner "python-broadlink" vorhanden sein mit ein paar Dateien und Ordnern
  • Installation des web.px Frameworks (Wurde benutzt um die Erstellung des Webservices zu beschleunigen). Anleitung hier http://webpy.org/
  • Kopieren der angefügten Dateien auf das Dateisystem

Beschreibung der Dateien

bl_webservices.py
Hauptdatei die über das web.py Framework einen Webservice für einen Broadlink bereitstellt.

Aufgerufen wird die Datei mit folgender Syntax:
python bl_webservice.py  <webservice_port> <broadLinkIP> <broadLinkMac>
<webservice_port> - Ist der Port auf dem Ihr auf den Webservice zugreifen könnt (bspw: http://localhost:1234)
<broadLinkIP>        - IP Adresse eures Broadlinks (bspw: 192.168.100.2)
<broadLinkMac>     - MAC Adresse eueres Broadlinks (bspw: aa:11:22:33:cc)

IR_Gateway_01_start.sh
Beispiel Startscript für einen Broadlink.
Die Variablen müssen einfach mit euren Daten ergänzt werden.
Der Start erzeugt auch eine PID Datei für jeden Prozess, so dass ihr den Webservice direktüber "kill PID" beenden könnt.
Um mehrere Broadlinks zu steuern, einfach das Script kopieren und die Daten anpassen (Port muss natürlich unterschiedlich sein.

Wie steuer ich nun meine Geräte?
Versucht erstmal einen Zugriff auf euren PC, wo die Sachen gerade installiert wurden auf den konfigurierten Port.
bspw: http://localhost:1234/command?cmd=list
Das sollte euch im Browser Text anzeigen über die verfügbaren Befehle.

Um nun einen Befehl zu lernen (bzw. den HexCode des Befehls auszulesen) ruft einfach folgende URL auf:
http://localhost:1234/command?cmd=learncode
An eurem Broadlink sollte nun die weiße LED angehen.
Nun habt ihr knapp 3 Sekunden Zeit den Knopf auf der Fernbedienung zu drücken und natürlich die Fernbedieung Richtung Broadlink zu richten.
Wenn das "anlernen" erfolgreich war, zeigt euch der Browser eine sehr lange Folge von Zeichen an.
Diese Folge ist der HexCode für den Befehl. Speichert euch diesen weg.

Möchtet Ihr nun den Befehl senden, müsst Ihr einfach folgende URL aufrufen:
http://localhost:1234/command?cmd=senddata&hexvalue=$val

$val ist dann der HexCode.
Nun sollte der Broadlink den Befehl senden.

Steuerung über HTTPDMod sollte nun kein Problem mehr sein.

Wie gesagt wollt Ihr mehrere Broadlinks steuern, legt euch einfach mehrere .sh Scripte mit den Parametern an (Port bitte ändern) und dann könnt Ihr auf Sie zugreifen

Welchen Vorteil habe ich über den Webservice

  • Gekapselter Zugriff auf den Broadlink von verschiedenen Fremdsystemen
  • Benutzung des Moduls HTTPMOD in FHEM
  • Es muss nicht für jeden Befehl ein Verbindungsaufbau zum Broadlink gemacht werden. Der Webservice hält die Verbindung offen und sendet nur noch Befehle an den Broadlink. Dadurch werden Befehle sehr schnell ausgeführt[/i]
Aktuelle Probleme
- Leider scheint das .sh Script noch nicht ganz in Ordnung zu sein, da Meldungen auf die Console geloggt werden. Vielleicht kann sich da ja mal ein Linux Pro ransetzen.
- Ich habe noch nicht getestet ob für das Script der Root Zugang / sudo Berechtigungen notwendig sind.


Hast du einen Tip wie ich mit dem HTTPMOD die Rückgabe von learncode als reading speichere, wie zb. Command01 = 0xABCDEF


jostereo

Du bekommst den Code ja bei HTTPMod als Internal "buf" zurück.
Das ist ja der Rückgabewert des Aufrufs.

Da mein Python-Script nur den HexCode ausgibt.
Steht dort in dem Internal z.B.:

HTTP/1.1 200 OK Date: Fri, 17 Feb 2017 18:46:08 -0000 Server: localhost 2600600000012893141114111312131115111312131114371336143614371336143614361436141114111436141114111411141114111312133713121336143614361436143614361300051f0001294815000c5500012a4815000c5800012b4814000d050000000000000000

Das ist ein Beispiel von meiner Fernbedienung.

Nun sieht man ja eigentlich direkt das der HexCode "2600600000012893141114111312131115111312131114371336143614371336143614361436141114111436141114111411141114111312133713121336143614361436143614361300051f0001294815000c5500012a4815000c5800012b4814000d050000000000000000" lautet.

Wie man das in ein Reading bekommt, da bin ich gerade überfragt.

westsidex

Hallo an alle,

gestern ist mein Rm-mini3 angekommen. Jedoch scheitere ich schon beim konfigurieren durch die normale App.
Wenn ich die Broadlink App öffne, Add Device und dort nach Eingabe meines WLAN Passworts  auf Configure drücke passiert nichts.
Das ding rattert und ratter, also der Zeitkreis dort läuft und sobald dieser voll ist kommt eine Fehlermeldung das ich das Gerät reseten soll.
Nach dem dies getan wurde -> immer noch der gleiche Fehler.
Nur durch den AP-Mode(Auswahl oben rechts möglich) kriege ich das Gerät in mein WLAN(erfolgreiche Nachricht in der App und ich sehe das Gerät im WLAN), jedoch wird es mir immer noch nicht in der Broadlink Devicelist aufgezeigt.

rr725

für 39€ hatte ich mir das Teil einmal bei Amaz.. bestellt.  Die Lieferung- obwohl aus GB geliefert, nach zwei Tagen geliefert.
Zwei Apps auf´s Handy. Anlernen von IR und 433MHZ RF funktioniert auf Anhieb. Nun gut...wie immer muss man sich durch Google wühlen um zu erfahren "was geht".
Mittels Bridge kann man die erlernten Codes anzeigen lassen, welche sich als HTTP Request via fhem, ha bridge, oder ccu2 abschicken lassen.
ich bin hin- und weg...zu dem preis, geiles teil. kann man nur empfehlen.....