Cooking Hacks Forum
https://www.cooking-hacks.com/forum/

Código "getActuators" Opengarden
https://www.cooking-hacks.com/forum/viewtopic.php?f=34&t=11731
Page 1 of 2

Author:  Maria43 [ Tue Jan 09, 2018 8:06 pm ]
Post subject:  Código "getActuators" Opengarden

Hola,

Cómo me habéis comentado en otras ocasiones, el código "getActuators", tal cual se encuentra, solo funciona cuando en determinados servidores, dependiendo de la respuesta de este.
El problema es que a veces tengo que cambiar de servidor en la nube y aunque cambie el código de "checkData()" y "cleanVector()", de 1, 2, 3 a 5, 6, 7, tal y cómo me indicásteis, no funciona y no se cómo solucionarlo.

Os adjunto el código de cada una de las respuestas a ver si podéis indicarme qué código debo poner:

- Para revc 1,2,3:

$$$set dns name 34.251.228.1
set ip adress 0
set i r 80
set com remote 0
open
GET /get_actuators.php?actuators
Received:HTTP/1.1 400 Bad Request
Date: Tue, 09 Jan 2018 17:44:57 GMT
IRGT1 BADATA
IRGT2 BADATA
IRGT3 BADATA

- Para recv 5, 6, 7:

$$$set dns name 34.251.228.1
set ip adress 0
set i r 80
set com remote 0
open
GET /get_actuators.php?actuators
Received:HTTP/1.1 400 Bad Request
Date: Tue, 09 Jan 2018 18:57:38 GMT
IRGT1 ON
IRGT2 BADATA
IRGT3 ON

Gracias por anticipado

Author:  libelium-dev [ Wed Jan 10, 2018 8:36 am ]
Post subject:  Re: Código "getActuators" Opengarden

Hola Maria43,

Como se puede ver en la respuesta del servidor, obtienes una respuesta con código 400, lo cual significa que algo ha ido mal en la petición, pero no especifica a que es debido el error en la petición.

Cuando todo funciona correctamente se obtiene un código 200. Desconocemos la configuración de tu servidor y hasta donde podemos ver la petición con "GET /get_actuators.php?actuators" se hace de forma correcta, por lo que no podemos saber a que se debe exactamente el error. ¿Puedes probar con otros servidores?

Un saludo.

Author:  Maria43 [ Wed Jan 10, 2018 12:31 pm ]
Post subject:  Re: Código "getActuators" Opengarden

Hola,

El código no es nuevo, estuvo funcionando con un servidor en local y un tiempo con un servidor en la nube, de hecho con este mismo. Por el momento no tengo posibilidad de probar con otro servidor, lo que si he probado es con otro equipo Opengarden y pasa lo mismo.
Desconozco que configuración debería tener mi servidor para que funcione, pero tengo dos sistemas Opengarden que no funcionan, por lo que agradecería que me indicárais que es lo que debo verificar o que información debo pasaros para encontrar una solución.

Gracias por anticipado. Un saludo,

Author:  libelium-dev [ Thu Jan 11, 2018 8:30 am ]
Post subject:  Re: Código "getActuators" Opengarden

Hola Maria43,

en estos casos te recomendamos que envies los comandos uno a uno a mano en modo gateway para observar mejor las respuestas que da el modulo a cada una.

Para ello debes poner los pines del XBee shield en modo USB
Image

Ahora tienes dos opciones, quitar el microcontrolador del arduino, o cargar un sketch "Bare Minimum" que solo incluye la definicion del setup() y el loop().

Ahora puedes seguir los pasos del punto 2 de este tutorial:
https://www.cooking-hacks.com/documenta ... ial/#step2

Lo primero que te recomendamos es que hagas un factory reset del modulo wifi, para ello copia estos comandos:
Code:
$$$
factory RESET
reboot


Un saludo

Author:  Maria43 [ Mon Jan 15, 2018 4:07 pm ]
Post subject:  Re: Código "getActuators" Opengarden

Hola,

La WIFI no da problemas, de hecho se graban perfectamente los datos en BD y aparecen en la app Opengarden. Lo único que no funciona es que no lee los datos de los actuadores.
Adjunto os indico la respuesta que he obtenido después de hacer lo que me habéis indicado:

CMD
factory RESET

Set Factory Defaults
<4.41>
reboot

*Reboot*wifly-EZX Ver: 4.41 Build: r1057, Jan 17 2014 10:23:54 on RN-171
MAC Addr=00:06:66:9c:49:0d
*READY*
CMD

set ip dhcp 1

AOK
<4.41>
set ip protocol 18

AOK
<4.41>
set wlan join 0

AOK
<4.41>
set wlan phrase 4414131084

AOK
<4.41>
set wlan key 4414131084


<4.41> Auto-Assoc ONOE1E6 chan=11 mode=MIXED SCAN OK

Joining ONOE1E6 now..
Associated!
DHCP: Start
DHCP in 6167ms, lease=3600s
IF=UP
DHCP=ON
IP=192.168.1.7:2000
NM=255.255.255.0
GW=192.168.1.1
Listen on 2000

También obtengo la respuesta del servidor Libelium con el código:

Setting Wifi parameters
exit

$$$leave

set ip dhcp 1

set ip protocol 18

set wlan join 0

set wlan phrase 4414131084

join ONOE1E6

Connected to "ONOE1E6"
Wifi succesfully configured
Sending HTTP GET
$$$set i h 0

set d n test.libelium.com

set i r 80

set o f 1

set c r GET$/test-get-post.php?a=1&b=2

open

GET response:"method::get;a::1;b::2;"
Sending HTTP GET
$$$set i h 0

set d n test.libelium.com

set i r 80

set o f 1

set c r GET$/test-get-post.php?a=1&b=2

open

GET response:"method::get;a::1;b::2;"

Para recv 5,6,7 salen estas dos respuestas que cambian de una a otra de menera aleatoria, aunque la que más predomina es la primera:

$$$set dns name 34.251.228.1
set ip adress 0
set i r 80
set com remote 0
open
GET /get_actuators.php?actuators
Received:HTTP/1.1 400 Bad Request
Date: Mon, 15 Jan 2018 15:47:43 GMT
IRGT1 ON
IRGT2 BADATA
IRGT3 ON


$$$set dns name 34.251.228.1
set ip adress 0
set i r 80
set com remote 0
open
GET /get_actuators.php?actuators
Received:GET /get_actuators.php?actuators

ERR: ?-Cmd
<4.41> IRGT1 BADATA
IRGT2 BADATA
IRGT3 BADATA

Author:  libelium-dev [ Tue Jan 16, 2018 9:43 am ]
Post subject:  Re: Código "getActuators" Opengarden

Hola Maria43,

el objetivo de usar los comandos en modo gateway es que envíes los mismos que envía el programa con el codigo getActuators para observar las respuestas. Es decir, envia a mano los siguientes comandos y observa la respuesta, tras haberte conectado a una wifi:
Code:
set dns name 34.251.228.1
set ip adress 0
set i r 80
set com remote 0
open
GET /get_actuators.php?actuators


Si sigues recibiendo el mensaje 400 del servidor prueba a hacer alguna variacion del tipo:
Code:
set d n 34.251.228.1
set i r  80
set o f 1
set c r GET$/get_actuators.php?actuators
open


Un saludo

Author:  Maria43 [ Tue Jan 16, 2018 12:30 pm ]
Post subject:  Re: Código "getActuators" Opengarden

Hola, esta es la respuesta que obtengo para el primer código:

CMD
factory RESET

Set Factory Defaults
<4.41>
reboot

*Reboot*wifly-EZX Ver: 4.41 Build: r1057, Jan 17 2014 10:23:54 on RN-171
MAC Addr=00:06:66:9c:47:5e
*READY*
CMD
set ip dhcp 1set ip protocol 18set ip dhcp 1

AOK
<4.41>
set ip dhcp 1

AOK
<4.41>
set ip protocol 18

AOK
<4.41>
set wlan join 0

AOK
<4.41>
set wlan phrase 4414131084

AOK
<4.41>
join ONOE1E6

<4.41> Auto-Assoc ONOE1E6 chan=11 mode=MIXED SCAN OK

Joining ONOE1E6 now..
Associated!
DHCP: Start
DHCP in 6051ms, lease=3600s
IF=UP
DHCP=ON
IP=192.168.1.2:2000
NM=255.255.255.0
GW=192.168.1.1
Listen on 2000
set dns name 34.251.228.1

AOK
<4.41>
set ip adress 0

AOK
<4.41>
set i r 80

AOK
<4.41>
set com remote 0

AOK
<4.41>
open

<4.41>
*OPEN*ACT::000

Y ya no me deja meter más comandos.


Y esta para el segundo:
CMD
factory RESET

Set Factory Defaults
<4.41>
reboot

*Reboot*wifly-EZX Ver: 4.41 Build: r1057, Jan 17 2014 10:23:54 on RN-171
MAC Addr=00:06:66:9c:47:5e
*READY*
CMD
set ip dhcp 1

AOK
<4.41>
set ip protocol 18

AOK
<4.41>
set wlan join 0

AOK
<4.41>
set wlan phrase 4414131084

AOK
<4.41>
join ONOE1E6

<4.41> Auto-Assoc ONOE1E6 chan=11 mode=MIXED SCAN OK

Joining ONOE1E6 now..
Associated!
DHCP: Start
DHCP in 11117ms, lease=3600s
IF=UP
DHCP=ON
IP=192.168.1.2:2000
NM=255.255.255.0
GW=192.168.1.1
Listen on 2000
set d n 34.251.228.1

AOK
<4.41>
set i r 80

AOK
<4.41>
set o f 1

AOK
<4.41>
set c r GET$/get_actuators.php?actuators

AOK
<4.41>
open

<4.41>
*OPEN*


Si a continuación vuelvo a insertar "set c r GET$/get_actuators.php?actuators" , obtengo:

*OPEN*HTTP/1.1 200 OK
Date: Tue, 16 Jan 2018 13:35:43 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 8
Connection: close
Content-Type: text/html; charset=UTF-8

ACT::000*CLOS*

Y tampoco ya me deja meter más comandos.
Después de un tiempo:

DHCP:Renew

Author:  libelium-dev [ Wed Jan 17, 2018 8:26 am ]
Post subject:  Re: Código "getActuators" Opengarden

Hola Maria43,

como puedes ver, en ambos casos ha funcionado de manera correcta en modo gateway, esta es la respuesta que esperamos del servidor con el estado de los actuadores:
Code:
ACT::000


Donde los '0' indican que los tres actuadores se encuentran apagados. Por ejemplo si el primer actuador estuviera encendido recibirías "ACT::100".

Por tanto si en la funcion checkData() usas el código que coge los bytes 5, 6 y 7 (los tres '0' se encuentran en estas posiciones empezando a contar por el 0) debería funcionar, de este modo, ya que el codigo replica exactamente lo que has hecho en el primer caso:
Code:
  irrigation1_wf= recv[5];
  irrigation2_wf= recv[6];
  irrigation3_wf= recv[7];


Un saludo

Author:  Maria43 [ Wed Jan 17, 2018 1:13 pm ]
Post subject:  Re: Código "getActuators" Opengarden

Pues la respuesta sigue siendo la misma:

$$$set dns name 34.251.228.1
set ip adress 0
set i r 80
set com remote 0
open
GET /get_actuators.php?actuators
Received:HTTP/1.1 400 Bad Request
Date: Wed, 17 Jan 2018 11:56:21 GMT
*CLOS*IRGT1 ON
IRGT2 BADATA
IRGT3 ON

Quisiera adjuntaros el programa completo por si fuera algún problema de codificación, tipo de variables, que hiciera la llamada a las funciones de manera incorrecta o algo.... Hay alguna manera de hacerlo para que sólo fuese visible para vosotros?

Author:  libelium-dev [ Thu Jan 18, 2018 8:38 am ]
Post subject:  Re: Código "getActuators" Opengarden

Hola Maria43,

en vista de que el servidor contesta correctamente a los comandos en modo gateway y no funciona bien el codigo, creemos que se puede tratar de un problema de memoria RAM en arduino Uno (solo tiene 2Kb). Te recomendamos que uses el codigo básico "getActuators" que viene con la librería, cambiando solo lo imprescindible para que funcione con tu servidor y comprobar si así funciona, y entonces ir añadiendo poco a poco el resto de codigo comprobando si sigue funcionando.

Un saludo.

Page 1 of 2 All times are UTC + 1 hour
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/