Autor Thema: 360 Grad IR WLAN Gateway  (Gelesen 48084 mal)

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 1948
360 Grad IR WLAN Gateway
« am: 08 Juni 2017, 21:16:36 »
Aktuelle Firmware:
https://forum.fhem.de/index.php/topic,72950.msg739254.html#msg739254



Hallo,

Um selbst ein wenig den Überblick zu behalten würde ich euch gerne ein neues 360° IR-WLAN-Gateway vorstellen.

Die Platine besitzt 7 IR LEDs die kreisförmig angeordnet sind. Dadurch muss nicht mehr genau auf den Empfänger "gezielt" werden.
Als Processor wird ein Wemos D1 verbaut.

Für das Einbinden ins WLAN wird der WiFiManager (https://github.com/tzapu/WiFiManager) benutzt und bietet so eine einfache GUI zum Einstellen der Parameter.

Für das Empfangen von IR Codes muss nur eine serielle Console mit der Arduino IDE geöffnet werden. Ein umfashen der Firmware ist notwendig.

*WM: AutoConnect
*WM: Connecting as wifi client...
*WM: Using last saved values, should be faster
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.1.9
WiFi manager setup finished
WLAN-IR-Gateway connected. IP Address: 192.168.1.9
MDNS responder started
HTTP server started
Setup finished
Encoding  : SAMSUNG
Code      : E0E0E01F (32 bits)
Timing[67]:
     +4600, -4450     + 650, -1650     + 650, -1650     + 650, -1650
     + 650, - 550     + 650, - 500     + 650, - 550     + 650, - 500
     + 650, - 550     + 650, -1650     + 650, -1650     + 650, -1650
     + 650, - 550     + 650, - 550     + 650, - 550     + 650, - 550
     + 650, - 550     + 650, -1650     + 650, -1650     + 650, -1650
     + 650, - 550     + 650, - 550     + 650, - 550     + 600, - 550
     + 600, - 550     + 600, - 550     + 600, - 550     + 600, - 550
     + 600, -1650     + 650, -1650     + 650, -1650     + 650, -1650
     + 650, -1650     + 650
unsigned int  rawData[67] = {4600,4450, 650,1650, 650,1650, 650,1650, 650,550, 650,500, 650,550, 650,500, 650,550, 650,1650, 650,1650, 650,1650, 650,550, 650,550, 650,550, 650,550, 650,550, 650,1650, 650,1650, 650,1650, 650,550, 650,550, 650,550, 600,550, 600,550, 600,550, 600,550, 600,550, 600,1650, 650,1650, 650,1650, 650,1650, 650,1650, 650};  // SAMSUNG E0E0E01F
unsigned int  data = 0xE0E0E01F;

Encoding  : SAMSUNG
Code      : E0E0D02F (32 bits)
Timing[67]:
     +4600, -4500     + 650, -1650     + 650, -1650     + 600, -1650
     + 600, - 550     + 600, - 550     + 600, - 550     + 600, - 550
     + 600, - 550     + 650, -1650     + 650, -1650     + 650, -1650
     + 650, - 550     + 650, - 550     + 650, - 550     + 600, - 550
     + 600, - 550     + 600, -1650     + 650, -1650     + 650, - 500
     + 600, -1650     + 650, - 550     + 650, - 550     + 650, - 500
     + 650, - 550     + 650, - 550     + 600, - 550     + 600, -1650
     + 650, - 550     + 600, -1650     + 650, -1650     + 650, -1650
     + 650, -1650     + 650
unsigned int  rawData[67] = {4600,4500, 650,1650, 650,1650, 600,1650, 600,550, 600,550, 600,550, 600,550, 600,550, 650,1650, 650,1650, 650,1650, 650,550, 650,550, 650,550, 600,550, 600,550, 600,1650, 650,1650, 650,500, 600,1650, 650,550, 650,550, 650,500, 650,550, 650,550, 600,550, 600,1650, 650,550, 600,1650, 650,1650, 650,1650, 650,1650, 650};  // SAMSUNG E0E0D02F
unsigned int  data = 0xE0E0D02F;

Die Ergebnisse des Empfängers können direkt für das Senden genutzt werden:

http://192.168.1.9/ir?code=E0E040BF&bits=32&protocol=Samsunghttp://192.168.1.9/ir?raw=4600,4500,650,1650,650,1650,600,1650,600,550,600,550,600,550,600,550,600,550,650,1650,650,1650,650,1650,650,550,650,550,650,550,600,550,600,550,600,1650,650,1650,650,500,600,1650,650,550,650,550,650,500,650,550,650,550,600,550,600,1650,650,550,600,1650,650,1650,650,1650,650,1650,650

Der Code wird als HEX Wert gesetzt, so wie es der Empfänger Output ausgibt.

Die aktuelle Firmware werde ich hier immer als zip-Datei anhängen.



Integration in FHEM:
define IR_COMMAND dummy
attr IR_COMMAND group IR
attr IR_COMMAND setList RADIO_POWER TV_POWER RAW_POWER

define DOIF_IR_COMMANDS DOIF ([IR_COMMAND] eq "RADIO_POWER") ({GetHttpFile("http://192.168.112.232","/ir?code=FF08F7&bits=32&protocol=NEC")})\
DOELSEIF ([IR_COMMAND] eq "TV_POWER") ({GetHttpFile("192.168.112.232","/ir?code=FF08F7&bits=32&protocol=NEC")})
DOELSEIF ([IR_COMMAND] eq "RAW_POWER") ({GetHttpFile("192.168.112.232","/ir?raw=600,3700,650,3700,650,3700,650,3700,650,3700,650,3700,600,3700,600,3700,650,3700,650,3700,650,3700,650,3700,650,3700,600,3700,600,3700,650,3700,650,3700,650")})
attr DOIF_IR_COMMANDS do always
attr DOIF_IR_COMMANDS group IR
attr DOIF_IR_COMMANDS verbose 0

oder hier: https://forum.fhem.de/index.php/topic,72950.msg658213.html#msg658213


Changelog:

V1.1
  • Update auf neueste IR Bibliothek
V1.2
  • Senden von Raw Messages implementiert
V1.3
  • Bugfix: Rückkanal beim senden einer Raw Message implementiert
V1.4
V1.4.1
  • Ausgabe der aktuell verwendeten IP Adresse in der Konsole beim Dekodieren
V2.2
  • Neues Web Interface
  • Support für IR Sequenzen
  • "Over the air" Update
  • Dekodierte IR Signale über KeyValueProtocol in FHEM
V2.3
  • cdelay = Zeit zwischen 2 Commands in ms
V2.4
  • Anzeige der Update und Reset-URL in FHEM über KVP
V2.5
  • Support für negative RAW Werte

Beschreibung der neuesten Firmware: https://forum.fhem.de/index.php/topic,72950.msg661265.html#msg661265
« Letzte Änderung: 31 Dezember 2017, 12:02:47 von gloob »
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway
Gefällt mir Gefällt mir x 6 Liste anzeigen

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 1948
Antw:360 Grad IR WLAN Gateway
« Antwort #1 am: 08 Juni 2017, 22:02:29 »
Genauere Infos zur Hardware folgen am Wochenende, wenn Bedarf besteht.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #2 am: 08 Juni 2017, 22:09:20 »
Eine kleine Frage hätte ich da schon mal.....:-).  Ist die IR Bibliothek eigentlich "begrenzt" , oder kann der CUL auch bislang unbekannte Geräte entschlüsseln? Ok, es sind zwei Fragen... Wenn man neue Geräte über die serielle Konsole angelernt hat, muß man dann die Firmware neu flashen, damit die Befehle auch vom CUL gesendet werden können? Gruß C.


Gesendet von iPad mit Tapatalk
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 1948
Antw:360 Grad IR WLAN Gateway
« Antwort #3 am: 08 Juni 2017, 22:18:48 »
Folgende Protokolle sind im Moment in der Firmware implementiert:

if (protocol == "NEC")
if (protocol == "LG")
if (protocol == "Whynter")
if (protocol == "Sony")
if (protocol == "RC5")
if (protocol == "RC6")
if (protocol == "Panasonic")
if (protocol == "Samsung")
if (protocol == "SharpRaw")
if (protocol == "Sharp")
if (protocol == "DISH")
if (protocol == "JVC")
if (protocol == "COOLIX")
if (protocol == "DENON")
if (protocol == "Sherwood")
if (protocol == "RCMM")

Das heißt die Codes können gesendet und empfangen werden. Sollte eine Fernbedienung mit einem unbekannten Protokoll genutzt werden, wird das Ergebnis als "UNKNOWN" ausgegeben. Inwieweit solche Geräte unterstützt werden können muss ich noch testen und mir was für die Firmware überlegen.

Die Firmware muss nicht angepasst werden, wenn ein neues Gerät "angelernt" wird. Anlernen ist hier auch der falsche Begriff, die Firmware im Gateway sagt dir nur, welches Protokoll und welcher Code für den Aufruf von FHEM aus genutzt werden muss. Es werden keine Daten im Gateway über die Geräte gespeichert.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #4 am: 08 Juni 2017, 22:28:32 »
Danke schon mal für die Vorab-Info. Freue mich schon aufs experimentieren.
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline locutus

  • Sr. Member
  • ****
  • Beiträge: 815
  • No support over PM! Please use the thread ...
Antw:360 Grad IR WLAN Gateway
« Antwort #5 am: 08 Juni 2017, 22:36:34 »
Eine kleine Frage hätte ich da schon mal.....:-).  Ist die IR Bibliothek eigentlich "begrenzt" , oder kann der CUL auch bislang unbekannte Geräte entschlüsseln? Ok, es sind zwei Fragen... Wenn man neue Geräte über die serielle Konsole angelernt hat, muß man dann die Firmware neu flashen, damit die Befehle auch vom CUL gesendet werden können? Gruß C.
Ich denke, du verwechselst zwei verschiedene Geräte.
Gloobs IR-WLAN-Gateway basiert auf ESP8266 und verwendet diese IR-Library:
https://github.com/markszabo/IRremoteESP8266

Ein CUL basiert auf einem AVR-Prozessor. Die dazugehörige IR-Library:
https://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/clib/irsndconfig.h
https://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/clib/irmpconfig.h
Produktivsystem: Raspberry Pi 3, Add-On Board mit 1.8" TFT LCD, FHEM V5.8, miniCUL-WLAN, FS20, ESA2000, Oregon, Sonoff, JeeLink Clone, LaCrosse, EMT7110, 1-Wire, WiFi LED Controller, Yamaha AVR
Testumgebung: NanoPi Neo, ESP8266, HMIP, LaCrosseGateway, mapleCUL, Tablet UI, RaspberryMatic

Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #6 am: 08 Juni 2017, 22:47:20 »
Danke für die Info locutus. Da kann man schnell mal was durcheinanderwürfeln. Sind ja mittlerweile doch einige Sender und Gateways im Umlauf.


Gesendet von iPad mit Tapatalk
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #7 am: 12 Juni 2017, 16:50:02 »
Hi,

Gateway ist in Betrieb und läuft auch. Sehr geile Konstruktion. Jetzt gehts los mit den "Unknown" Protokollen.
@gloob: Siehst Du eine Möglichkeit wie man unbekannte Protokolle einbinden kann, oder hättest Du zumindest einen Tip für mich, wie man das macht?

Gruß Carsten
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 1948
Antw:360 Grad IR WLAN Gateway
« Antwort #8 am: 12 Juni 2017, 17:29:15 »
Ich wollte mich irgendwann mal dran setzen und es ins Protokoll beim Aufruf mit Integrieren.
Mir schwebt etwas vor wie:

Zitat
http://192.168.1.9/ir?raw=32,321,32,32,432,54,65,675,76,32,54,65,432,453&bits=32&protocol=unknown

Man müsste nur schauen wie man es im Code parsen kann und in die richtige Struktur packt.

irsend.sendRaw(raw,100,38);
Ich plane auch noch die IR Lib auf die neue Version zu heben, allerdings hat sich das Interface etwas geändert. Vielleicht schaffe ich zumindest das Morgen.
« Letzte Änderung: 12 Juni 2017, 17:32:58 von gloob »
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #9 am: 12 Juni 2017, 18:49:03 »
Hört sich doch super an. Wollte aber keinen Streß erzeugen  :)
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 2234
Antw:360 Grad IR WLAN Gateway
« Antwort #10 am: 12 Juni 2017, 22:14:30 »
So, im Netzwerk ist dash Ding. Wie bekomm ich ihm denn jetzt in fhem zum Befehle senden?

Gesendet von meinem S3_32 mit Tapatalk


Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #11 am: 13 Juni 2017, 04:44:50 »
Erstmal mußt Du mal schauen, welche Befehle Deine Fernbedienung so abschickt. Wenn Du die Arduino Programmierumgebung aufrufst , das IR Gateway verbindest und dann einen seriellen Monitor mit 57600 Baud startest, solltest Du auslesen können, welche Kodierungen über das Gateway so ankommen. Dann kann man diese anhand des Beispiels von gloob und von Locutus als http Befehl über den Browser testen. In Fhem kann man das später über einen dummy / notify hinterlegen.
Sollte so klappen. Bin auch noch in der Probierphase.

C.
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 1948
Antw:360 Grad IR WLAN Gateway
« Antwort #12 am: 13 Juni 2017, 09:02:55 »
Carsten hat eigentlich alles gesagt.

Ich habe gerade den Sketch auf die neue Version der IR Bibliothek angepasst und arbeite gerade an der Umsetzung für die Raw Daten Unterstützung.
Im Moment sieht es gut aus. Sollte nichts dagegen sprechen.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Offline CarstenF

  • Full Member
  • ***
  • Beiträge: 309
Antw:360 Grad IR WLAN Gateway
« Antwort #13 am: 13 Juni 2017, 09:25:51 »
Da warst Du jetzt aber schnell....bin schon gespannt.
Raspberry Pi 3
CUL 868, CUL 433
Max-Cube umgeflasht
2x Jeelink mit PCA 301 Sketch und Lacrosse Sketch
sowie FhemtoFhem Installation

Offline Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 2234
Antw:360 Grad IR WLAN Gateway
« Antwort #14 am: 13 Juni 2017, 10:31:46 »
Erstmal mußt Du mal schauen, welche Befehle Deine Fernbedienung so abschickt. Wenn Du die Arduino Programmierumgebung aufrufst , das IR Gateway verbindest und dann einen seriellen Monitor mit 57600 Baud startest, solltest Du auslesen können, welche Kodierungen über das Gateway so ankommen. Dann kann man diese anhand des Beispiels von gloob und von Locutus als http Befehl über den Browser testen. In Fhem kann man das später über einen dummy / notify hinterlegen.
Sollte so klappen. Bin auch noch in der Probierphase.

Danke läuft! :)
kann einlesen und manuell abschicken.

 

decade-submarginal