Http Get request

Ah, ok, I see what you are trying to do.

The quick answer to just have the SIM800 talk to your API directly and dont use hologram webhooks / data routing. What you are looking to do is not what data routing is for.

Hologram Data Routing
The most common use for M2M simcards is data collection. Things like asset trackers that send a server their location and maybe some sensor data, weather stations that send temperature and pressure at intervals, etc. Data tends to heavily go Device–>Cloud with much rarer data from Cloud–> Device, mostly for software updates and occasional commands.

The data routing is a way to provide an endpoint appropriate for low power embedded systems over high cost (relatively) data links while being able to send data to more advanced endpoints. Its use is solely Device–>Cloud, not Cloud–>Device.

This is useful since you can send Hologram’s data router an unencrypted 20-byte message, pay for 20-bytes of data (+~500bytes of TCP overhead) and Hologram will translate that into a 5kB HTTPS request to some 3rd party storage engine such as Amazon S3, or anything else you want. This is good for 2 reasons

  1. Hologram data is pretty cheap, but still like 5,000x more expensive than data once you are hardwired to the internet. For example AWS charges $0.09/GB for data leaving their system where Hologram charges $400/GB (at their on-demand rate).
  2. Cellular connected devices tend to have low CPU power and often cannot handle the required encryption algorithms for HTTPS and other secure protocols that clouds tend to require.

Since the purpose of the data router is to collect data, the only response it sends back to the Device is basically that it accepted the data sent to it and closes the connection. This is good as your device can successfully deliver data without having to wait for the processing and handshaking between Hologram’s cloud and the 3rd party API but it means your device does not get any data back from the API.

The reason hologram’s webhook is using POST (this is configurable by the way, atleast in the advanced webhook) is again that is more the purpose of the the data router, to POST data collected by the Device to an API for storage / analysis / aggregation / etc.

What you are trying to do
It sounds like you aren’t trying to deliver data from your device to some cloud service but instead are trying to request data for your device to use. The important data is the JSON response from this 3rd party API. In that case you should use the SIM800 HTTP Library and query the API directly. Dont use the Hologram data router as it is not designed to be a proxy in between cell devices and API’s, there are no mechanisms to send data back to the device.

Does that make sense?

1 Like