360 Grad IR WLAN Gateway

Begonnen von gloob, 08 Juni 2017, 21:16:36

Vorheriges Thema - Nächstes Thema

Klinki

Guten Morgen,

Zunächst einmal: geniales Projekt!

Ich habe den Transceiver mit einem Empfänger und einer Sende-Diode mal nachgebaut. Senden/Empfangen funktioniert auch soweit mit meinem LG TV.
Jetzt war die Idee auch Klimageräte damit zu steuern. Namentlich Samsung und Hitachi. Aber jedes Mal wenn man versucht einen IR-Code zu empfangen stürzt der ESP ab und startet neu.
Ein Puffer-Überlauf??

Anfang des Jahres postete Philipp etwas in dieser Richtung (Antwort 407,408 in diesem Thread).

Hat das Thema noch jemand auf dem Schirm?

gruß
klinki

gloob

Zitat von: Klinki am 06 September 2018, 07:13:44
Guten Morgen,

Zunächst einmal: geniales Projekt!

Ich habe den Transceiver mit einem Empfänger und einer Sende-Diode mal nachgebaut. Senden/Empfangen funktioniert auch soweit mit meinem LG TV.
Jetzt war die Idee auch Klimageräte damit zu steuern. Namentlich Samsung und Hitachi. Aber jedes Mal wenn man versucht einen IR-Code zu empfangen stürzt der ESP ab und startet neu.
Ein Puffer-Überlauf??

Anfang des Jahres postete Philipp etwas in dieser Richtung (Antwort 407,408 in diesem Thread).

Hat das Thema noch jemand auf dem Schirm?

gruß
klinki

Bei Klimaanlagen ist oft das Problem, dass sämtliche Einstellung in der Fernbedienung gespeichert werden und beim Senden übertragen werden. Die Nachrichten sind damit oft sehr groß bzw. zu groß für den Empfangspuffer im ESP.
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

Klinki

Zitat von: gloob am 06 September 2018, 07:22:49
Bei Klimaanlagen ist oft das Problem, dass sämtliche Einstellung in der Fernbedienung gespeichert werden und beim Senden übertragen werden. Die Nachrichten sind damit oft sehr groß bzw. zu groß für den Empfangspuffer im ESP.

Hatte ich befürchtet. Schade....
Ich hatte gehofft, dass wenigstens ein Ein/Aus funktionieren würde. Aber stimmt schon: ohne einen Rückkanal muss die FB ja jedes Mal alle Parameter an die Klimaanlage übertragen (Temperatur, Modus, usw. ).

Danke für die Info

Frank_Huber

Könnte man nicht den Empfangspuffer irgendwie erhöhen?


Gesendet von meinem Doogee S60 mit Tapatalk


Klinki

#529
Zitat von: Frank_Huber am 06 September 2018, 08:08:34
Könnte man nicht den Empfangspuffer irgendwie erhöhen?

Das habe ich gerade mal gemacht: die Konstante RAWBUF auf 800 erhöht.
Ein kurzer Test mit einer Phillips HiFi Anlage war erfolgreich. Einfache Codes werden also nach wie vor empfangen und können gesendet werden.

Nach der Buffer-Vergrößerung empfängt er jetzt auch die Codes von der Hitachi-Klimaanlage....jaa....laaaange Codes...
Ob das Klimagerät auch auf auf die vom Blaster gesendeten Codes reagiert muss ich noch ausprobieren. Habe nur eine FB hier und nicht das passende Gerät. Vielleicht heute abend...

EDIT: Ja, es funktioniert. Habe es mit meiner Samsung Klimaanlage zu Hause ausprobiert: IR Code mit FB empfangen; 3 Mal hintereinander den gleichen Code (also: Ein/20°/Modus:Kühlen). In den raw-Daten war jedes Mal der gleiche Inhalt. Dann die raw-Daten per json auf den Blaster geschickt -> Klimaanlage geht an!
Es ist wird jetzt zwar etwas Arbeit, alle Konstellationen von Parametern einzeln zu hinterlegen - aber so viele Einstellungen muss man an einer Klimaanlage ja nun auch nicht machen um glücklich zu werden.
- es sei denn, man erklärt seiner Frau, dass man im Winter auch damit heizen kann  ::)

gruß
klinki


Klinki

Heute Morgen habe ich es auch mal mit der Hitachi-Anlage versucht. Diese sendet sogar noch größere Befehls-Folgen als Samsung.
Deshalb gab es beim Senden über das Web-Frontend einen JSON-Fehler "JSO: JSON parsing failed".

Ich kenne mich mit der JSON-Bibliothek nicht aus, aber eigentlich sollte der Puffer dynamisch sein
DynamicJsonBuffer jsonBuffer;
Das scheint aber nicht zu funktionieren. Daher habe ich die Puffergröße über eine Konstante
(Zeile 109)
const size_t jsonBufSize = 600;
von Hand gesetzt.

Dann in der Setup-Routine die Initialisierung mit Übergabe der Puffergröße gemacht, also
(Zeile 408)
DynamicJsonBuffer jsonBuffer(jsonBufSize);

Jetzt funktioniert´s auch mit der Hitachi-Anlage.

Ich habe kein fundiertes Wissen über Arduino und C++. Meine Änderungen sind daher vielleicht nur Zufallstreffer. Jedenfalls konnte ich bisher keine negativen Auswirkungen feststellen.


Rheingold

#531
Hi,
quasi über Nacht habe ich ein Problem mit dem sonst so stabil und zuverlässig funktionierenden IR Gateway bekommen. Gestern Morgen lief er einwandfrei, heute nicht mehr. Updates habe ich in der Zeit keine durchgeführt. Neustart von FHEM sowie des IR Gateways brachten keine Verbesserung. In Fhem erhalte ich folgende Ausgabe.

Zitat2018-09-09 10:00:33 DOIF IR_Remote_Yamaha error: {GetHttpFile("192.168.178.80","/json?plain=[{'data':[8950,4550,600,600,550,1700,550,600,550,1750,550,1750,550,1750,550,1750,500,650,550,1700,550,600,550,1700,550,600,550,600,550,600,600,600,550,1700,550,600,550,1750,550,1750,550,600,550,600,550,600,550,650,550,600,550,1700,550,600,550,600,550,1750,550,1750,550,1750,550,1700,550,600,550],'type':'raw','khz':38}]")}: File Not Found  URI: /json Method: GET Arguments: 1  plain: [{'data':[8950,4550,600,600,550,1700,550,600,550,1750,550,1750,550,1750,550,1750,500,650,550,1700,550,600,550,1700,550,600,550,600,550,600,600,600,550,1700,550,600,550,1750,550,1750,550,600,550,600,550,600,550,650,550,600,550,1700,550,600,550,600,550,1750,550,1750,550,1750,550,1700,550,600,550],'type':'raw','khz':38}] 

Den Gateway erreiche ich ganz normal per Webseite. Also im WLAN ist er richtig eingebunden. Rufe ich die URL 192.168.178.80/json?plain=[{'data':[8950,4550,600,600,550,1700,550,600,550,1750,550,1750,550,1750,550,1750,500,650,550,1700,550,600,550,1700,550,600,550,600,550,600,600,600,550,1700,550,600,550,1750,550,1750,550,600,550,600,550,600,550,650,550,600,550,1700,550,600,550,600,550,1750,550,1750,550,1750,550,1700,550,600,550],'type':'raw','khz':38}] Kommt eine 404 :(

Hat jemand einen Tipp wie ich das Ding wieder ans laufen bekomme? :(


Hier der vollständige Code des Doif.

define IR_Remote_Yamaha DOIF ([IR_Yamaha]eq"Yamaha_On")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[9000,4550,600,600,550,1750,550,1750,550,1750,550,1750,550,1750,550,1750,550,600,550,1700,550,600,550,600,550,600,550,600,600,600,550,650,550,1750,550,600,550,1700,550,1700,550,1700,550,1700,550,1700,550,1700,550,600,550,1700,550,600,550,600,550,600,550,600,550,600,550,600,550,1700,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_Off")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[9000,4550,550,600,550,1700,550,1700,550,1700,550,1700,550,1700,550,1700,550,600,550,1700,550,600,550,600,550,600,550,600,550,650,550,600,550,1700,600,1700,550,1700,550,1700,550,1700,550,1700,550,1700,550,1700,550,600,550,600,550,600,550,600,600,600,550,600,550,600,550,600,550,1750,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_Lauter")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[9000,4550,550,600,550,1700,600,600,550,1750,550,1700,550,1750,550,1700,550,600,550,1700,550,600,550,1700,550,600,550,650,550,600,550,600,550,1700,600,600,550,1750,550,600,550,1700,550,1700,550,600,550,600,550,600,550,1700,550,600,550,1700,550,600,550,650,550,1700,550,1700,550,1700,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_Leiser")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[9000,4550,550,650,500,1750,500,650,550,1750,550,1750,550,1750,550,1750,550,650,550,1750,550,650,500,1750,500,650,550,650,550,650,550,650,500,1750,500,1750,550,1750,500,600,550,1700,550,1750,550,600,550,650,500,650,550,650,550,650,500,1750,500,650,550,650,550,1700,550,1750,550,1750,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_Raspi_Film")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[9000,4550,550,600,550,1700,600,600,550,1700,600,1700,550,1700,550,1700,550,600,550,1750,550,650,550,1700,550,600,550,600,550,600,550,600,550,1700,550,600,550,600,550,600,550,600,550,600,550,650,550,600,550,600,550,1700,550,1700,550,1700,550,1700,550,1700,550,1700,550,1700,550,600,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_Raspi_Musik")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[8950,4550,600,600,550,1700,550,600,550,1750,550,1750,550,1750,550,1750,500,650,550,1700,550,600,550,1700,550,600,550,600,550,600,600,600,550,1700,550,600,550,1750,550,1750,550,600,550,600,550,600,550,650,550,600,550,1700,550,600,550,600,550,1750,550,1750,550,1750,550,1700,550,600,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_BluRay")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[9000,4550,550,650,550,1750,550,600,550,1700,550,1700,550,1700,550,1700,550,600,550,1700,600,600,550,1750,550,600,550,600,550,600,550,600,550,1700,550,1700,600,1700,550,600,600,600,550,600,550,600,550,600,550,600,550,600,550,600,550,1700,600,1700,600,1700,550,1700,550,1700,550,600,550],'type':'raw','khz':38}]")})\
DOELSEIF([IR_Yamaha]eq"Yamaha_ChromeCst")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[8950,4500,550,650,550,1750,550,650,550,1750,550,1750,550,1750,550,1750,550,650,550,1750,550,650,550,1750,550,650,550,600,550,650,550,650,550,1750,550,1750,550,650,550,650,550,1750,550,650,550,650,550,650,550,650,550,600,550,1750,550,1700,550,650,550,1750,550,1750,550,1750,550,650,550],'type':'raw','khz':38}]")})
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Klinki

Dann ist es kein Problem des doifs.
Ist die Weboberfläche des Irblasters erreichbar?
Ist die die Config Seite aufrufbar?
Wurde die IP Adresse des Blasters durch einen Namen ersetzt?

Check das mal und gib bescheid!

Gruß
Klinki

Rheingold

- Weboberfläche: ja
- Welche Config Seite? Die von z. B. Dem wifi oder den Infos klappt problemlos.
- Nein, keine Änderung im Netzwerk. Habe auch die fritz.box kontrolliert. Dies Firmware wurde vor ca 2 Wochen zuletzt aktualisiert, kann sich also damit auch keine Änderung eingeschlichen haben.

Das liefert die Info Seite:

Chip ID
4573201
Flash Chip ID
1458415
IDE Flash Size
4194304 bytes
Real Flash Size
4194304 bytes
Soft AP IP
192.168.4.1
Soft AP MAC
62:01:94:45:C8:11
Station MAC
60:01:94:45:C8:11
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Klinki

Ich bin jetzt auch kein Profi, aber bist du sicher, dass das Modul im WLAN Client-Modus ist?
Der von Dir eingefügte Code-Block erzählt was von AP-Modus...

Kannst Du das Modul mal seriell (über USB) anschließen und ein Terminal-Programm starten - bzw. den Monitor-Modus in der Arduino IDE.

Zitat von: Rheingold am 09 September 2018, 16:19:57

Soft AP IP
192.168.4.1


Rheingold

Mit dem Seriellen Monitor der Arduino IDE kann ich mich verbinden und sehe z.B. empfangene IR-Signale.
Auch wenn ich per Weboberfläche ein empfangenes Signal mir anzeigen lasse, und den HTTP-Aufruf durchführe klappt alles. Z.B:
http://192.168.178.80:80/json?plain=[{'data':[8950,4550, 550,700, 500,600, 550,600, 550,700, 500,600, 550,600, 500,700, 500,600, 550,1750, 550,1750, 500,1750, 550,1750, 550,1750, 500,1750, 550,1750, 550,1750, 500,700, 500,650, 550,1750, 550,1750, 500,700, 500,600, 550,600, 500,700, 500,1750, 500,1800, 550,600, 500,700, 500,1750, 550,1750, 550,1750, 500,1750, 500], 'type':'raw', 'khz':38}]

Rufe ich die gleiche URL per Befehl in FHEM, mit der folgenden (unveränderten) Zeile auf, gibt es ein Problem.
([IR_LED_Buero]eq"LED_DIY1")({GetHttpFile("192.168.178.80","/json?plain=[{'data':[8900,4550,500,700,550,600,550,650,500,700,550,600,550,650,500,700,550,600,550,1750,550,1750,500,1800,550,1750,550,1750,500,1750,600,1750,550,1750,500,700,550,600,600,1750,550,1700,500,700,550,600,550,600,500,700,550,1750,500,1800,550,600,500,700,550,1750,500,1800,550,1750,550,1750,500],'type':'raw','khz':38}]")})

Ich bin gerade etwas ratlos....
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Frank_Huber

Vielleicht zu lang für die GetHttpFile Routine?

Gesendet von meinem Doogee S60 mit Tapatalk


Rheingold

Hm, ich glaube das Problem ist "gefunden". Es hatte nichts mit meiner Konfiguration der Doifs, oder ähnlichem zu tun.

Grund war: per Autocreate habe ich irgend ein Gerät vom Nachbarn aufgeschnappt. Dieses hat dazu geführt, dass ich viele komische Logeinträge erhalten habe und die Log-Datei über 1 GB groß war (normal sind 1-2 MB :D :D). Nachdem ich die Logdatei gelöscht und Fhem neu gestartet habe klappt nun wieder alles... ach und die Fehlermeldung bleibt bestehen. Trotzdem klappt alles wieder :)
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Rheingold

#538
Kommando zurück :( Das Problem mit der Logdatei legte den Raspi lahm, aber hatte nichts mit dem Funktionieren des IR-Blaster zu tun.

Heute funktioniert er mal wieder nicht. Habe ihn per Kabel mit dem PC verbunden und bekomme per Seriellem Monitor im Arduino IDE nichts angezeigt. Auch wenn ich mit einer Fernbedienung ein Signal sende, kommt nichts beim Gerät an. Auf Webseite im lokalen Netzwerk wird nichts angezeigt. Erst nach einigen Minuten und mehreren Neustarts funktioniert er mal wieder zum empfangen und senden.

Kann hier evtl. ein Defekt vorliegen?  :o

Anbei zwei Screenshots. Bei beiden war der IR-Blaster mit dem PC direkt verbunden. Die URL ist unverändert, ich habe lediglich F5 gedrückt.
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Morgennebel

Moin Moin,


ich bitte um Hilfe, scheitere gerade an der Steuerung von Krinner Lumix Weihnachtsbeleuchtung.

Es handelt sich um diese Version: https://smile.amazon.de/gp/product/B012NKKSQK - die kommt mit einer Fernbedienung.

Der 360 Blaster läuft mit V2.5, wurde erfolgreich in FHEM eingebunden.

Für das Anschalten auf Kanal B erhalte ich in der Weboberfläche dieses Kommando:

http://irblaster0.local:80/json?plain=[{'data':[2000,1000, 500,1000, 500,400, 1100,1000, 500,1000, 500,1000, 500,400, 1050,400, 1100,400, 2050,4900, 2050,1000, 500,1000, 500,400, 1050,1000, 500,1000, 500,1000, 500,400, 1100,400, 1050,400, 2050,4900, 2050,1000, 500,1000, 500,400, 1100,1000, 500,1000, 500,1000, 500,400, 1100,400, 1050,400, 2050], 'type':'raw', 'khz':38}]

Und zum Ausschalten dieses:

http://irblaster0.local:80/json?plain=[{'data':[2000,1000, 500,1000, 500,400, 1100,1000, 500,1000, 500,1000, 500,400, 1050,400, 1100,400, 2050,4900, 2050,1000, 500,1000, 500,400, 1050,1000, 500,1000, 500,1000, 500,400, 1100,400, 1050,400, 2050,4900, 2050,1000, 500,1000, 500,400, 1100,1000, 500,1000, 500,1000, 500,400, 1100,400, 1050,400, 2050], 'type':'raw', 'khz':38}]

die sehen für mich identisch aus - und leider schalten beide Befehle die Lampe aus, aber ich kann sie nicht einschalten.

Wenn ich die Befehle von der Fernbedienung aus initiiere, sehe ich auf der Weboberfläche des 360 IR Blasters eine neue Zeile - mit genau diesen Werten. Offenbar kann der IR Blase den Einschaltbefehl nicht sehen/identifizieren.

Was kann ich ändern, damit dies funktioniert?

Danke, -MN


Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA