MQTT or REST or simply a (PHP/PY) script that writes a query string to a file?

I have a project where I collect data from bee hives, in the first step a private activity but otzer beekeeper had signaled interest also so it could become a kind of community and a platform for sharing and comparing data.

Now I wonder what the best approach should be to bring data from the Arduinos (Nodes) over radio to a GSM/Wifi/Ethernet Gateway and then to an internet server. The connection Arduino to GSM Gateway is ready in a prototpye version as a RFM69 radio connection.

Now the question is what to use from a GSM or Wifi Gateway to the server? In case it is a Wifi/Ethernet gateway with a permanent internet connection and permanent power connection I would say MQTT is the way to go: fast, lightweight, economical (regarding traffic). So it is good for permanent connected devices because MQTT needs a keep alive connection.

But its not so good for temporary disconnected devices like GSM modems. Adafruit writes about their REST API

https://github.com/adafruit/Adafruit_IO_Arduino

This is a good library for simple send and receive access to Adafruit IO feeds. Unlike MQTT the REST API does not require a connection to be kept alive so it's good for things to periodically need to connect and send/receive values. For example a sensor device that sends sensor measurements to AIO and then enters deep power-saving sleep for a period is perfect to use with this library.

I wonder also if it perhaps sufficient to have a small (PHP/PY) script that writes data via a http request / query string like

http://example.com/input/index.php?date=201501162013&weight=53.510&temp=23.5 as a new line / dataset to a csv file: 2015/01/16 20:13 53.510 23.5

Is REST overkill? Is MQTT necessary or better than REST for my needs?

The following question (perhaps for a new thread) would be: What IoT platform should/can I use?

Seems this question is too complicated or too un-intresting. ;-) I try to break it down:

When makes it sens to use MQTT, when REST?

We had a discussion yesterday in our project about the "kept alive" connection. Why is it better to use REST on a battery powered device? I can also use a MQTT connection and close the connection by going in a sleep state and re-establish the connection after waking up or is there a problem? Allways in the case I will send data only from node to gateway and not receive.

Clemens:
Seems this question is too complicated or too un-intresting. :wink: I try to break it down:

When makes it sens to use MQTT, when REST?

We had a discussion yesterday in our project about the “kept alive” connection. Why is it better to use REST on a battery powered device? I can also use a MQTT connection and close the connection by going in a sleep state and re-establish the connection after waking up or is there a problem? Allways in the case I will send data only from node to gateway and not receive.

MQTT is lighter than http, then ligther than REST.

http://litmusautomation.com/2014/05/rest-good-mqtt-better/