360 Grad IR WLAN Gateway

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

Vorheriges Thema - Nächstes Thema

Pfriemler

Hat mich jetzt neugierig gemacht. Eigentlich reicht ja zu prüfen, ob das 1. Reading in der KVP-Liste passenden Code enthält:


defmod KVP_IRBlaster_DOIF_1 DOIF ([KVP_IRBlaster:CR01_Json_Local_IP] =~ "'data':'C1AA8976',.'type':'NEC'") (set HUE_HUEDevice4 on)


Bei mir funktioniert allerdings nur RC5 überhaupt, und das recht lausig ...
"Ä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 ..."

Frank_Huber

Wäre es nicht einfacher im KVPUDP ein Userreading zu erzeugen welches nur die Daten enthält? also "C1AA8976"?

RegEx müsste mit data':'(.+?)' funktionieren.

Mad-at

Entschuldigt die späte Antwort, ich war im Dienst.
Frank, das mit dem KVPUDP ändern ist eine tolle Idee, aber übersteigt glaube ich meine Fähigkeiten. Muss mich einlesen.
Auf die Schnelle funktioniert der Vorschlag von Pfriemler gerade extrem gut, danke :D

Pfriemler

Zitat von: Frank_Huber am 16 März 2018, 07:24:57
Wäre es nicht einfacher im KVPUDP ein Userreading zu erzeugen welches nur die Daten enthält? also "C1AA8976"?
RegEx müsste mit data':'(.+?)' funktionieren.
das filtert das "data':" mit aus. Abgesehen davon bin ich offenbar zu doof, eine userReadings-Def zu bauen, die den Match ausschneidet.
Ich hasse Perl ...
"Ä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 ..."

Frank_Huber

Zitat von: Pfriemler am 17 März 2018, 13:43:41
das filtert das "data':" mit aus. Abgesehen davon bin ich offenbar zu doof, eine userReadings-Def zu bauen, die den Match ausschneidet.
Ich hasse Perl ...

Bitteschön:
attr KeyValueProtocol_IR_Blaster_3967570 userReadings IR_code {if (ReadingsVal($name,'CR01_Json_Local_IP','0')  =~ /data':'(.+?)'/) {return $1}}

musste aber auch ne Weile pfriemeln bis das gepasst hat.

Das Reading IR_code bekommt so immer den zuletzt empfangen data string. ohne "data" und all die anderen Zeichen.

Hier noch ein gekürztes List:
Internals:
   DEF        IR_Blaster 3967570
   ID         IR_Blaster_3967570
   IODev      myKVPUDP
   LASTInputDev myKVPUDP
   MSGCNT     20653
   NAME       KeyValueProtocol_IR_Blaster_3967570
   NR         98
   STATE      Initialized
   TYPE       KeyValueProtocol
   model      IR_Blaster
   myKVPUDP_IP 192.168.12.181
   myKVPUDP_MSGCNT 21001
   myKVPUDP_TIME 2018-03-17 15:08:46
   READINGS:
     2018-03-17 15:08:46   CR01_Json_Local_IP http://192.168.12.181:80/json?plain=[{'data':'E0E08877', 'type':'SAMSUNG', 'length':32}]
          2018-03-17 15:08:46   IR_code         E0E08877
      2018-03-17 15:05:32   Version         v2.7.6
Attributes:
   DbLogExclude .*
   IODev      myKVPUDP
   room       KeyValueProtocol
   userReadings IR_code {if (ReadingsVal($name,'CR01_Json_Local_IP','0')  =~ /data':'(.+?)'/) {return $1}}

Pfriemler

[quote]{if (ReadingsVal($name,'CR01_Json_Local_IP','0')  =~ /data':'(.+?)'/) {return $1}}
[/quote]
if und return $1 war der Trick, der mir fehlte. Danke!


Gesendet von meinem SM-G900FD mit Tapatalk

"Ä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 ..."

Mad-at

Das funktioniert ganz hervorragend, Danke euch Beiden!
8)

giovanne

#487
ich habe den IR Blaster Sketch etwas erweitert, sodass ich von aussen gesteurt den ESP in den deepsleep Modus schicken kann, um den Stromverbrauch zu minimieren.

Allerdings muss iregndetwas im IR Blaster Funktionsumfang den ESP ab und an daran hindern zu der vorgegebenen Zeit wieder aufzuwachen.

Ich habe dann einen zweiten Sketch mit identischem DeepSleep geflasht, um zu vergleichen ob da da zuverlässig funktioniert.

Nun ist es tatsächlich so, dass der minimierte Sketch zuverlässig zu der vorgegebenen Zeit aufwacht (gerzeit schicke ich die immer für 15min. in DeepSleep)

Der IR Blaster wacht mal nach 15min auch, mal nach 30 min, kann aber auch mal erst nach 1 oder 2 Stunden wieder aufwachen.

Also aufwachten tut er nur halt zu spät.

Hat jemand eine Idee, was an dem IR Blaster Code dazu führen könnte?

Ich habe die beiden Sketche beigefügt. DeepSleep wird durch
"server.on("/deepsleep", []() {
  ...
  Handle_DeepSleep();
}

und
void Handle_DeepSleep()
{
  server.sendHeader("Connection", "close");
  server.send(200, "text/html", F("going into DeepSleep ..."));
  delay(500);
  //MOD-01: convert to microseconds
  ESP.deepSleep(sleepMinutes * 60 * 1000000);
}

"
Aber müsste ja etwas aus dem IRBlaster Funktionsumfang sein !?

Die Sketche in Anlage.

Edit: Hat sich erledigt. Sketche entfernt

accessburn

Jemand eine Idee warum mir folgendes DOIF-Teilstück einen Fehler ausgibt?


DOELSEIF ([IR_COMMAND] eq "VENTI_PWR")   ({GetHttpFile("192.168.178.55","/json?plain=[{'data':[1318,420,1292,420,442,1256,1292,420,1292,420,428,1268,432,1266,430,1266,432,1264,430,1266,432,1264,1292,7334,1292,422,1290,420,430,1266,1292,420,1290,422,428,1266,430,1266,430,1266,430,1268,430,1266,430,1266,1290,7334,1290,422,1292,420,432,1266,1290,422,1264,448,430,1266,430,1266,430,1266,430,1268,430,1270,428,1264,1264,7362,1290,422,1290,420,430,1266,1292,420,1290,422,404,1292,404,1292,430,1266,428,1266,430,1266,432,1264,1292,7334,1292,422,1290], 'type':'raw', 'khz':38}]")})

Zitat
{GetHttpFile("192.168.178.55","/json?plain=[{'data':[1318,420,1292,420,442,1256,1292,420,1292,420,428,1268,432,1266,430,1266,432,1264,430,1266,432,1264,1292,7334,1292,422,1290,420,430,1266,1292,420,1290,422,428,1266,430,1266,430,1266,430,1268,430,1266,430,1266,1290,7334,1290,422,1292,420,432,1266,1290,422,1264,448,430,1266,430,1266,430,1266,430,1268,430,1270,428,1264,1264,7362,1290,422,1290,420,430,1266,1292,420,1290,422,404,1292,404,1292,430,1266,428,1266,430,1266,432,1264,1292,7334,1292,422,1290], 'type':'raw', 'khz':38}]")}: JSON parsing failed

Das DOIF selbst funktioniert tadellos.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Pfriemler

Mach mal die Leerzeichen aus dem gesamten GetHTTPFile-Kommando raus (beginnend vor 'type')
"Ä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 ..."

accessburn

Zitat von: Pfriemler am 20 April 2018, 19:41:46
Mach mal die Leerzeichen aus dem gesamten GetHTTPFile-Kommando raus (beginnend vor 'type')

Moaarrrr... Die hab ich nicht gesehen  8) Danke...
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Pfriemler

Zitat von: giovanne am 19 April 2018, 19:51:55
ich habe den IR Blaster Sketch etwas erweitert, sodass ich von aussen gesteurt den ESP in den deepsleep Modus schicken kann, um den Stromverbrauch zu minimieren.

Ohne in die Tiefe gegangen zu sein: zwecks welchen Behufes? Ich brauche das Ding eigentlich pronto. Ich könnte mir höchstens 5-10-sekündige Sleeps vorstellen, die das Modul 84_IrBlaster dann überbrückt ohne dass Codes verlorengehen. Stromersparnis ist generell sehr gut, aber so? (kopfkratz)
"Ä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 ..."

accessburn

Hat denn jemand schon mal eine RemoteControl damit ohne die FTUI-Oberfläche gebastelt? Hab es per "remotecontrol"-Modul versucht, jedoch hab ich es nun sein lassen. Hab eine DOIF-Steuerung damit nicht auf die Reihe bekommen.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

giovanne

Zitat von: Pfriemler am 20 April 2018, 19:47:34
Ohne in die Tiefe gegangen zu sein: zwecks welchen Behufes? Ich brauche das Ding eigentlich pronto. Ich könnte mir höchstens 5-10-sekündige Sleeps vorstellen, die das Modul 84_IrBlaster dann überbrückt ohne dass Codes verlorengehen. Stromersparnis ist generell sehr gut, aber so? (kopfkratz)
Hat sich für mich erledigt. Habe den funktionierenden Sketch nun verwendet und um die IR Befehl erweitert die ich benötige. Damit funktioniert der DeepSleep.
Das Du keine Verwendung dafür hast ist mir eigentlich egal. Mache haben andere Anforderungen und bei mir soll er nun mal in den nicht benötigte Zeiten der Saugroboter in den DeepSleep gehen, um den Akku des Saugers zu schonen. Hatte den Sketch der Einfachheit wegen für den Verwendungszweck eingesetzt. Nun halt umgestiegen :)
Wäre ja interessant gewesen, warum der IR Blaster Sketch nicht zuverlässig aufwacht, aber ist mir nun egal - funktioniert ja mit anderem Sketch.

Pfriemler


Na ... nich so grantig ...

Zitat von: giovanne am 21 April 2018, 16:38:11
... bei mir soll er nun mal in den nicht benötigte Zeiten der Saugroboter in den DeepSleep gehen, um den Akku des Saugers zu schonen. Hatte den Sketch der Einfachheit wegen für den Verwendungszweck eingesetzt.

Aha. Da macht das mal wirklich Sinn.




Gesendet von meinem SM-G900FD mit Tapatalk

"Ä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 ..."