|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
![]()
Buenas noches Amigos, desde hace unos días he tenido una idea que he estado desarrollando, a pesar de que he logrado algunas cosas no he podido llegar al 100% de lo que busco.
Desde hace algún tiempo he comenzado con la idea de hacer algo que sea realmente accesible en precio para todos y en esa búsqueda me encontré con los dispositivos de broadlink, entre ellos hay algunos controladores de señales IR y RF y es precisamente con ellos que estoy trabajando. Por fortuna existe un plugin, del que se ha hablado entre poco y nada en el foro, que sirve para enviar los comandos al control Broadlink y que este a su vez los envie en forma de RF o IR. Nuevamente en la idea, lo que estoy tratando de hacer es algo parecido a una iniciativa que leí hace algún tiempo, donde un taskero creaba una rutina de acción respuesta con voz para hacer actividades (encender wifi, pagar bt, etc) lo he hecho por 2 rutas diferentes: 1-) Capto los comandos de Google now por %avcomm y luego con comandos if busco que contienen, por ejemplo digo: "encender la tv de la sala" y si %avcomm = *encender* And+ %avcomm=*tv* And+ %avcomm=*sala* envio el comando de encender la tv de la sala 2-) De la misma forma capto el comando en %avcomm y la meto en una variable %Ordenando y creo una tarea de enviar el comando de encender la tv, que se ejecuta si %Ordenando = *encender* And+ %Ordenando=*tv* And+ %Ordenando=*sala* En general ambas rutas funcionan, también como si creara comando directos a ejecutar la acción con la ayuda de Autovoice y con la ventaja que doy palabras alternativas para que el comando funcione como *tv/*televisión*/*televisor* Sin embargo, hay 2 cosas que no he logrado idear como ejecutar y es porque creo que no estoy haciéndolo de la manera correcta. Que pasa si entro a la habitación y quiero dar un comando más largo que tenga más de una orden, por ejemplo: "enciende el tv y el aire de la sala". En este caso siempre prioriza la primera actividad que este en el código de programación por aquello del else) Lo otro que no se me ocurre es que tal si le digo "pon el canal 310", recordemos que en un control marcar el 310 implicaría 3 ordenes diferentes como marcar el 3, marcar el 1 y marcar el 0 Bueno le cuento un poco lo que hecho y espero que ademas de ayudarme con algo de luz para terminarlo, les sirva a otros para animarse a crear algo similar y poder sumarle ideas de control saludos Ramón |
|
#2
|
||||
|
||||
La verdad es que no tengo ni idea sobre broadlink ni señales ir,etc. Supongo que el controlador es como un traductor, entre el movil y los aparatos no?
Sobre lo de dar varias ordenes creo que te podría ayudar el asistente de voz que idee en su día con ayuda del compañero GraphicAdventure: http://www.htcmania.com/showthread.php?t=977475 Sobre lo de marcar, no te entiendo muy bien. Supongo que puedes usar regex para separar los numeros y meter cada digito en una variable. Exactamente en un array que es lo que te da la acción "buscar y reemplazar variable". Enviado desde mi T1-701u mediante Tapatalk
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
#3
|
||||
|
||||
hola mlesir; es sencillo, cuando hablo de señales IR o RF son las señales de los controles remotos (infrarrojo y radio frecuencia). Ese pequeño equipo de Broadlink de 35 dolares, lo que hace es copiar las señales de tus controles remotos y repetirla por medio de una app propia o como en este caso por ordenes de tasker.
En la noche hago algunas pruebas con tu ayuda y te comento que tal sale. saludo |
#4
|
||||
|
||||
hay 2 cosas que no he logrado idear como ejecutar y es porque creo que no estoy haciéndolo de la manera correcta. Que pasa si entro a la habitación y quiero dar un comando más largo que tenga más de una orden, por ejemplo: "enciende el tv y el aire de la sala".
![]() Código:
- Si %avcomm ~ *tv*/*televisión*/*televisor* And+ %avcomm~*sala*/*salita* - Enviar el comando de encender la tv de la sala, si %avcomm ~ *encender*/*enciende* - Enviar el comando de apagar la tv de la sala Si %avcomm ~ *apagar/apaga* - Endif - Si %avcomm=*aire* And+ %avcomm=*sala*/*salita* - Enviar el comando de encender el aire de la sala, si %avcomm ~ *encender*/*enciende* - Enviar el comando de apagar el aire de la sala Si %avcomm ~ *apagar/apaga* - Endif Has planteado un sistema que no tiene en cuenta el orden de las palabras, por lo cual se montaría un buen follón al decir "enciende el tv y apaga el aire de la sala". La tarea no detecta cuál aparato hay que encender y cuál hay que apagar. Te sugiero que previamente pongas algún chequeo para evitar órdenes que incluyan información contradictoria, del tipo siguiente: Código:
- Si %avcomm ~ *encender*/*enciende* And+ %avcomm ~*apagar*/*apaga* - Emitir mensaje de error. - Detener tarea. - Finsi Código:
- Si %avcomm ~ *pon*/*poner* And+ %avcomm~*canal* - Localizar y aislar la serie numérica que va justo detrás de la palabra "canal" ("310", en el ejemplo) - Comprobar que el número es válido (supierior a cero e inferior a un millón o lo que corresponda). - Detectar cuántos dígitos tiene esa serie numérica (3, en este ejemplo) - Bucle for para cada uno de esos dígitos - Enviar el comando u orden correspondiente a ese dígito. - Fin del bucle For - Endif
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 09/06/16 a las 00:29:29. |
![]() |
![]() |
||||||
|