don’t worry, you don’t have to be a firmware genius to get something nice up and running.
When you say you want to get the results on your phone, how do you plan on doing that? Are you going to build an app, or perhaps use a website? Depending on what you choose, there’ll be different options.
If you’re going to use
Spark.variable(), then you have to make sure your Core is always online, or you won’t be able to poll it. This means it has to have WiFi and the controller activated non-stop, so there’s no energy savings there.
Spark.publish() on the other hand will require the exact opposite. You’ll need to have your receiver listening at all times. If that’s an app, the app will need to be on in order to receive the information. The same is true for a website.
With a website however, there is the option to integrate this into the server end, if you have (access to) one. I’m currently using a Node.js setup to capture SSE from my Core with a DHT22, and log that to a database. When I want to see the current values I try go get them straight from my Core, or when it’s asleep, use the latest value from the database.
What it comes down to is the following, either your Core, or your receiver will have to be enabled at all times. The Core if you want to poll data, or the receiver if you want to catch sent events. If you’re planning on running the Core on a battery, you’d be better of with the latter option, since that will allow you to let the Core sleep with intervals. If it publishes once per minute, you could let it sleep in the mean time, conserving energy. This means you’ll need to have a receiver listening continuously.
I’m not really sure what you mean by “which is more effiecient?”, but if that’s referring to possible battery life, then definitely SSEs, since those allow you to sleep.
I hope that was somewhat helpful, but feel free to ask if you’d like more information.