[84_IrBlaster] - Modul zur Ansteuerung des (360 Grad) IR WLAN Gateways

Begonnen von viegener, 05 Dezember 2017, 00:06:48

Vorheriges Thema - Nächstes Thema

Benni

Hallo,

ich wollte mich nur schnell für das Modul bedanken!

Ich habe es seit heute mit dem IRBlaster und meinen Billig-LED-Teelichtern aus China im Einsatz.
Einrichtung war einfach und läuft wie geschmiert!  8)

Danke!

gb#

mi.ke

Hab jetzt auch das Modul installiert.

Vielen Dank dafür

Grüße

mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

wagenkna

Hallo allerseits,

ich habe zwei Module seit Weihnachten im Einsatz. Das empfangen und senden klappt soweit und die Geräte sind angelernt. Ich möchte über ein DOIF mit einer Fernbedienung 3 Infrarotempfänger ansteuern. (Dreambox, Beamer, Leinwand)
Leider bekomme ich das DOIF nicht zum laufen. Bei der Recherche fiel mir folgender Hinweis auf.

"Auf die Änderungen von CR0x_JSON_... kann dann entsprechend reagiert werden. Die Funktion ist aber derzeit noch nicht wirklich stabil und vor allem für eine zeitnahe Auswertung von empfangenen Codes zu langsam, zudem ist der Code-Interpreter im ESP8266 nicht sehr sicher und liefert viele Fake-Codes. Dessen Funktion ist eigentlich auch nur zur einmaligen Ermittlung von IR-Codes vorhandener Fernbedienungen gedacht.
"

Ist das vielleicht irgendwann mal angedacht, gibt es hierfür eine Lösung?? Es wäre schon eine schöne smarte Lösung per Infrarot doif auslösen zu können.

Besten Dank, auch für das Modul

Grüße

Axel
Homematic mit CCU2, Fensterkontakt, Thermostaten, Steckdosen, Regen.-Bewegung.-Wassermelder (76) Devices)
Raspberry2 und 3 Mit KNX, OWL, Fritzbox, Unifi, Luftmessungmodul

Pfriemler

Ein funktionierendes DOIF zu bauen ist kein Problem. Ich nutze z.B. sowas:
define di_IR_Blaster_Wz_Received_Commands DOIF ([KVP_IR_Blaster_Wz:CR01_Json_Local_IP] =~ "'data':'FF20DF', 'type':'NEC") (set set IRWz send KerzenAUS)

Das eigentliche Problem liegt in der Firmware des Blasters: Er erkennt zuviel was nicht da ist. Das lässt sich auch aus FHEM nicht wirklich abfangen.


Tipp:
Um auch im WebIF ein freundlicher lesbares Ergebnis zu bekommen, habe ich mir ein userReading gebaut:
attr KVP_IR_Blaster_Wz userReadings lastCode {\
my $v = "-";;\
if (ReadingsVal($name,'CR01_Json_Local_IP','0')  =~ /data':'(.+?)'/) {$v = $1};;\
if (ReadingsVal($name,'CR01_Json_Local_IP','0')  =~ /type':'(.+?)'/) {$v = $1."-".$v};;\
$v\
}

Das wird dann mit attr KVP_IR_Blaster_Wz stateFormat [$name:lastCode] ([$name:lastCode:t])
im Webfrontend angezeigt - Data, Type und den Zeitstempel. So kannst Du schon mal besser beobachten was da reinschippert...

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

wagenkna

Hallo Pfriemler,

Danke für den Hinweis, ich probiere es die Tage mal aus und gebe nocheinmal Bescheid.

winterliche Grüße

Axel
Homematic mit CCU2, Fensterkontakt, Thermostaten, Steckdosen, Regen.-Bewegung.-Wassermelder (76) Devices)
Raspberry2 und 3 Mit KNX, OWL, Fritzbox, Unifi, Luftmessungmodul

CatWeazle

Hallo viegener,

ich finde das Modul 84_IrBlaster ist schon mal recht praktisch.

Neue Befehle anlegen per Copy & Paste aus dem Terminal heraus ist eigentlich okay, aber bitte, das kannst du besser!

Ich nutze immer noch MiniIrCUL, der wirklich gut ist, einziger Nachteil, wenn man überhaupt von einem Nachteil reden kann, er besteht aus einem ESP und einem AVR.
Aber darin sehe ich kein echtes Problem. Als alter Bastler (habe schon mit Germanium Transistoren gebastelt) schuster ich mir meine Klamotten eh gerne auf Lochraster zusammen. :-)

Ja aber ein echtes Highlight des alten MiniIrCul .... ist ... " set myir irLearnForSec "   

Also das ist mein Osterwunsch: " set IrBlaster irLearnForSec "   


Bis Ostern bekommst du das sicher hin ... hope so :-)

Grüße, Mike

*****************************************
********  Wird Zeit für besser Wetter !  ********
*****************************************

Pfriemler

Wieso Terminal? Ich habe da so ein KVP-Device definiert, da sehe ich die letzten Codes vom Blaster direkt in FHEM. Gut, umkopieren muss man sie dann auch einmal ...

Wenn wir schon bei einer Wunschliste sind: Viel besser fände ich, eine Art externe Datenbank einzurichten. Ich nutze künftig 3 Blaster und mit etwas search&replace und Raw definition kriegt man schon kopiert, aber trotzdem - eine Datenbank wäre besser...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

RaspiLED

#37
Hi,
ja genau entweder die lirc (was: Kirche) Definitionen anzapfen oder Die Logitech Harmony DB anzapfen ;-)
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Pfriemler

Ein Hoch auf die Autokorrektur. ...   ;D
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

RaspiLED

Naja lirc -> Kirche ist schon schön ;-) Aber dafür gibt es ja die Beichte zur Autokorrektur!

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Pfriemler

Amen, Bruder, Amen. Leider weiß jetzt keiner mehr warum Du die Kirche anzapfen wolltest...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

vbs

Hallo zusammen, von mir auch vielen Dank für das Modul und nachträglich frohes Fest & frohes Neues :D

An einem Problem hänge ich gerade:
Da mein LG TV keine eigenen IR-Kommandos kennt, um z.B. den Bildmodus umzuschalten, muss ich recht komplexe IR-Abläuft ausführen und mich durch die Bildschirm-Oberfläche hangeln (z.B. Menü, 3x hoch, OK, 2x links, OK, OK...). Zwischen bestimmten IR-Kommandos, muss man sleeps einbauen, um dem TV Zeit zu geben, auf die neue GUI-Seite zu wechseln. Eigentlich klappt das auch ganz gut.

Aber:
Das Modul schickt ja bei jedem Befehl einen HTTP-Request an den Blaster. Manchmal (ganz grob 1 Mal bei 50 Befehlen), gibt es irgendwo einen Hänger und der HTTP-Request kommt erst nach einer Sekunde zurück. Evtl. weitere IR-Kommandos, die man in der Zeit absetzen wollte, werden ja im Modul gequeuet. Wenn dann der hängende Befehl ausgeführt wurde, dann werden alle weiteren (die Gequeueten) nacheinander ohne Pause rausgefeuert (weil die verwendeten fhem-sleeps nicht mehr wie geplanten greifen). Das ist dann in meinem Fall ein Problem.

Beispiel für eine Befehlsfolge:
set wz_irblaster _send IR_LG_TV_Input;sleep 1;set wz_irblaster _send IR_LG_TV_Up;sleep 1;set wz_irblaster _send IR_LG_TV_OK;sleep 3.0;set wz_irblaster _send IR_LG_TV_Right;set wz_irblaster _send IR_LG_TV_Right;set wz_irblaster _send IR_LG_TV_OK;set wz_irblaster _send IR_LG_TV_ProgUp;set wz_irblaster _send IR_LG_TV_ProgUp;set wz_irblaster _send IR_LG_TV_ProgUp;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_Down;set wz_irblaster _send IR_LG_TV_OK;sleep 1;set wz_irblaster _send IR_LG_TV_Exit

Frage:
Gibt es eine Chance, eine solche Pause in eine Befehlskette einzuqueuen, die auch eingehalten wird, wenn es mal einen Hänger gab. Wenn nicht: haltet ihr es für sinnvoll, sowas einzubauen (könnte ich probieren).
Oder gibt es andere/bessere Ansätze für eine solche Problematik?

CarstenF

Moin Moin,
Ich wollte mir mal eine Backup Instanz für meine Rollosteuerung schaffen und komm gerade nicht weiter. Bislang nutze ich lediglich die 360° IR Gateways in SW - Version 1.41 oder sowas ähnliches und verbinde das ganze mit DOIFS/GetHttpFile. Das läuft auch schon lange sehr zufriedenstellend.
Als Software a.d. Gateway  hab ich nun mal die V 2.5 aufgespielt. Das Modul habe ich in Fhem eingebunden. Modul und Gateway sprechen auch miteinander.
Jetzt versuche ich gerade meine "bekannten" Rollo-Befehle dem Modul beizubringen. Ich erhalte bei Aufruf aus FHEM (set send) jedoch immer einen http-Error 401.

Wenn ich die "gehörten" Befehle vom Gateway aus der Weboberfläche der Gateway Software heraus kopiere und im Browser einsetze, wird der Befehl vom Gateway korrekt umgesetzt und gesendet.

Ich glaube jede erdenkliche Version schon durchprobiert zu haben, deshalb meine Frage, wo mein Fehler liegen könnte.
Hier mal ein List meines Device
Internals:
   CFGFN     
   DEF        192.168.1.195 IR_ acbdef
   FUUID      60125dc4-f33f-d709-67f1-c5ba61fbde564b1b
   HOST       192.168.1.195
   INTERVAL   60
   NAME       irblaster
   NR         10658
   PASS       acbdef
   PREFIX     IR_
   STATE      present
   TIMEOUT    300
   TYPE       IrBlaster
   VERSION    0.0.5
   doStatus   
   lastresponse HTTP-Error returned: 401
   HU_SR_PARAMS:
     NAME       
     action     /json?plain=[{'data':[3800,550, 3750,550, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3700, 550,3750, 600,3700, 600,3700, 600,3700, 550,3750, 600], 'type':'raw', 'khz':38}]
     addr       http://192.168.1.195:80
     auth       0
     buf       
     compress   1
     conn       
     displayurl http://192.168.1.195:80/json?plain=%5b%7b%27data%27%3a%5b3800%2c550%2c%203750%2c550%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3700%2c%20550%2c3750%2c%20600%2c3700%2c%20600%2c3700%2c%20600%2c3700%2c%20550%2c3750%2c%20600%5d%2c%20%27type%27%3a%27raw%27%2c%20%27khz%27%3a38%7d%5d&pass=acbdef
     header     
     host       192.168.1.195
     httpheader HTTP/1.1 401 Unauthorized
Content-Type: text/html
Content-Length: 16
Connection: close
Access-Control-Allow-Origin: *
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     loglevel   4
     method     GET
     path       /json?plain=%5b%7b%27data%27%3a%5b3800%2c550%2c%203750%2c550%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3700%2c%20550%2c3750%2c%20600%2c3700%2c%20600%2c3700%2c%20600%2c3700%2c%20550%2c3750%2c%20600%5d%2c%20%27type%27%3a%27raw%27%2c%20%27khz%27%3a38%7d%5d&pass=acbdef
     protocol   http
     redirects  0
     timeout    30
     url        http://192.168.1.195:80/json?plain=%5b%7b%27data%27%3a%5b3800%2c550%2c%203750%2c550%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3750%2c%20600%2c3700%2c%20550%2c3750%2c%20600%2c3700%2c%20600%2c3700%2c%20600%2c3700%2c%20550%2c3750%2c%20600%5d%2c%20%27type%27%3a%27raw%27%2c%20%27khz%27%3a38%7d%5d&pass=acbdef
     SR_READINGS:
     args:
       [{'data':[3800,550, 3750,550, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3700, 550,3750, 600,3700, 600,3700, 600,3700, 550,3750, 600], 'type':'raw', 'khz':38}]
       1611822545.11847
       undef
       1
     hash:
     sslargs:
   READINGS:
     2021-01-28 09:38:28   presence        present
     2021-01-28 09:29:05   requestAction   /json?plain=[{'data':[3800,550, 3750,550, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3700, 550,3750, 600,3700, 600,3700, 600,3700, 550,3750, 600], 'type':'raw', 'khz':38}]
     2021-01-28 09:29:05   requestResult   HTTP-Error returned: 401
     2021-01-28 09:38:28   state           present
   actionQueue:
   helper:
Attributes:
   IR_R_AZ_Code [{'data':[3800,550, 3750,550, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3750, 600,3700, 550,3750, 600,3700, 600,3700, 600,3700, 550,3750, 600], 'type':'raw', 'khz':38}]
   IR_R_AZ_HOCH [{'data'[3850,500,3850,500,650,3650,650,3650,650,3650,650,3650,650,3650,650,3700,650,3650,650,3650,650,3650,650,3650,3850,500,3850,500,3800,500,3850,500,650,3650,650], 'type':'raw', 'khz':38}]
   interval   60
   room       System
   userattr   IR_.* IR_IR_R_AZ_HOCH IR_R_AZ_Code IR_R_AZ_HOCH
   widgetOverride IR_R_AZ_Code:textField-long


Gruß Carsten
Raspberry Pi4
CUL 868, CUL 433, LaCrosse Gateway, Zigbeetomqtt2, HUE, Homematic
Max-Cube umgeflasht
MAX!, FhemtoFhem, Homebridge, FhemConnector, IR_Gateway und sonst auch noch allerlei Spielzeug....

Pfriemler

a) ich bin nicht sicher, ob Leerzeichen (noch) ein Problem in den RAW-Datenblöcken sind
b) im IR_R_AZ_HOCH fehlt hinter 'data' ein :
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

CarstenF

Zitat von: Pfriemler am 28 Januar 2021, 11:07:38
a) ich bin nicht sicher, ob Leerzeichen (noch) ein Problem in den RAW-Datenblöcken sind
b) im IR_R_AZ_HOCH fehlt hinter 'data' ein :
Danke für Deine Antwort.
a) Das mit den Leerzeichen hatte ich nur mal als eine mögliche Variante probiert, weil es so im "Help" des Moduls steht. Auch ohne Leerzeichen gehts nicht.
b) mit IR_R_AZ_HOCH probiere ich gar nicht rum, solange das  erste attr  nicht funktioniert, das hatte ich nur schon mal so eingefügt.
Trotzdem erstmal Danke.
Raspberry Pi4
CUL 868, CUL 433, LaCrosse Gateway, Zigbeetomqtt2, HUE, Homematic
Max-Cube umgeflasht
MAX!, FhemtoFhem, Homebridge, FhemConnector, IR_Gateway und sonst auch noch allerlei Spielzeug....