Seite 1 von 1
Geräte per Infrarot steuern - Alternative zu Broadlink ?
Verfasst: 3. Feb 2019 13:45
von dergroddi
Hallo zusammen,
kürzlich kaufte ich einen BroadLink RM mini 3, um diesen an mein OpenHab anzubinden und damit TV+Receiver etc. schalten zu lassen. Dummerweise habe ich erst hinterher gelernt dass man im WLAN Kennwort KEINE Sonderzeichen verwenden darf, sonst verbindet sich das lustige Broadlink-Teil nämlich gar nicht. Da ich mein Kennwort nicht "unsicherer" machen möchte werde ich somit auf den Broadlink verzichten.
Kennt jemand sinnvolle Alternativen (gekauft oder selbstgebaut) um Infrarot-Befehle vom Raspi zu verschicken?
Danke
Re: Geräte per Infrarot steuern - Alternative zu Broadlink ?
Verfasst: 3. Feb 2019 16:26
von udo1toni
Ein Passwort ohne Sonderzeichen ist nicht weniger sicher als eines mit Sonderzeichen
Wichtiger ist die Länge des Passwortes.
"Dies ist ein sicheres Passwort" oder "DiesisteintotalsicheresPasswort" ist besser als "P4s5wort!" oder "Pa55!Wor7!" WPA2 gestattet bis zu 63 Zeichen, das sollte auch ohne Sonderzeichen ausreichend sicher sein.
Re: Geräte per Infrarot steuern - Alternative zu Broadlink ?
Verfasst: 14. Aug 2019 08:36
von lordslash
Hallo, hast du dein Broadlink benutzt? Wenn nicht, würde ich es gerne von dir kaufen!
Re: Geräte per Infrarot steuern - Alternative zu Broadlink ?
Verfasst: 17. Aug 2019 02:38
von eiGelbGeek
Ich nutze dazu einen Wemos D1 Mini mit einer IR Diode
Kostenpunkt liegt bei wenigen Euros.
Befehle sende ich per MQTT an den Wemos.
Natürlich kannst du auch einen Raspberry dafür nehmen.... aber ich würde es für OverDressed halten... IR braucht keine "Rechnenpower"
Das z.b. ist mein Arduino Code für einen Teufel Subwoofer, den ich auseinander gebaut habe und den Wemos mit IR Diode direkt im Subwoofer versenkt
PS: Der Code geht bestimmt noch einfacher und sauberer, aber er funktioniert bis dato ohne Aussetzer
Code: Alles auswählen
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
const char* ssid = "SSID";
const char* password = "WLANPASSWORT";
const char* mqtt_server = "IP-DES-MQTT-SERVER";
const char* mqtt_channel = "/MQTT/CHANNEL/subwoofer/ir";
#define IR_LED 4 // (D2)
IRsend irsend(IR_LED);
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void callback(char* topic, byte* payload, unsigned int length) {
// handle message arrived
byte* p = (byte*)malloc(length);
//Byte to String
std::string message ( reinterpret_cast<char const*>(payload), length ) ;
Serial.println();
if (message == "Sub_Init") {
//Set 140Hz
irsend.sendNEC(0x1FE9867, 32);
//80 Times Volume Down
for (int i=0; i<80; i++){
irsend.sendNEC(0x1FEE817, 32);
}
//60 Times Volume Up
for (int i=0; i<60; i++){
irsend.sendNEC(0x1FEC837, 32);
}
Serial.println("Sub_Init");
}
if (message == "Volume_Up") {
irsend.sendNEC(0x1FEC837, 32);
Serial.println("Volume_Up");
}
if (message == "Volume_Down") {
irsend.sendNEC(0x1FEE817, 32);
Serial.println("Volume_Down");
}
if (message == "140Hz") {
irsend.sendNEC(0x1FE9867, 32);
Serial.println("140Hz");
}
if (message == "110Hz") {
irsend.sendNEC(0x1FE28D7, 32);
Serial.println("110Hz");
}
if (message == "80Hz") {
irsend.sendNEC(0x1FE58A7, 32);
Serial.println("80Hz");
}
if (message == "50Hz") {
irsend.sendNEC(0x1FE38C7, 32);
Serial.println("50Hz");
}
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Create a random client ID
String clientId = "WeMos_TeufelSubwoofer_IR";
// Attempt to connect
if (client.connect(clientId.c_str())) {
Serial.println("connected");
client.subscribe(mqtt_channel);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
irsend.begin();
//Wait for Subwoofer BootUp
delay(4000);
//Sub_Start_Up
//Set 140Hz
irsend.sendNEC(0x1FE9867, 32);
//20 Times Volume Up
for (int i=0; i<20; i++){
irsend.sendNEC(0x1FEC837, 32);
}
Serial.println("Sub_Start_Up");
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
setup_wifi();
}
if (!client.connected()) {
reconnect();
}
client.loop();
}