Hello folks,
I always got good advice or direction in here, so I am back again before decision making.
I am currently building control system for my house central heating. Control system it self is not subject of topic.
The subject is remote control protocol selection. I want to be able to control my heating remotely from internet, and of course I did lot of Google reserch about possible options.
Below is list I made with some kind of selfevaluation. However I would like to know your experience and opinion, or any advice. Maybe some good option missing on my list...etc..
A bit more background:
Intended remote control should be very simple concept like a "serial monitor" controlled by text commands, basically I wanna to mirror serial communication to remote.
I am going to control just one CPU which will serve as "gateway" and communicate with other by HopeRF because of Wifi range limitations.
Options I know so far:
GSM module controled by SMS
Pros: secure (only selected GSM number will be permited to control), does not need Internet connection, reliable
Cons: limited SMS length for reports, SMS are paid but cost is very little and I am going to use it just from time to time, not daily
OpenVPN to access local web server
Pros: full access to other services (NVR, NAS, etc..)
Cons: Public IP address is costy (12USD per month), using 3rd party dDNS seems to be not reliable for long term run
Telegram Bot chat
Pros: existing library for years, simple integration
Cons: rely on 3rd party service which is not encripted in case of Chat Bot
Signal Bot chat
Pros: should be encripted
Cons: I could find only one 3rd party provider, seems to be still under development
Gmail email chat
Pros: email account protected by 2 stage authentication, rely on Google service = quite reliable and secure in my opinion
Cons: all libraries needed are quite heavy, souce code to handle email lists and extract text is not one of simplies
XMPP/Jabber messaging
Pros: service working for ages, I have used Jabber IM when I was a kid
Cons: rely on 3rd party provider, not sure about protocol security
My current personal feeling is that "GSM SMS" will be most simple and reliable solution with tax of limited message size.
What is your pinion and preffered option? Do you know any better option which is not mentioned?
you can try using GUI-O and ESP32 / ESP8266 (there are tutorials) in MQTT mode.
Migrate to custom MQTT broker (also tutorial for HiveMQ free plan) if you don't trust the default one.
Communication is encrypted. GUI-O requires no sign-in. Currently available for Android only.
at first, thank you for interest. Sorry for delay, it was terrible week...
I did not realize those two options! Thank you for your proposal.
Blynk seems to be nice and easy UI, I did not know it can run over internet. I was thinking it is just for local control.
I have heard about MQTT in past, but I thought it will be too complex for my coding skills.. I will take a look again.
But both of these options rely on 3rd party server. It is my most worry point with this subject.
My point is, now I setup my remote control, but what if 3rd party server stop its service 5 or 10 years later? or just change something in the protocol, version upgrade, and so on...
I wan something what will run for decade. I do not want to develop new communication protocol when I will be retired Due those worries, GSM or Gmail seems to be still my favorite option yet.
By the way, anyone has done control over emails? Or is it that silly Idea?
Yep, but I suppose it is feasible only with public IP, am I wrong? Opening ports on my Linux server would bring cyber security concerns I might not be able to take care:(
Yes, you would need to allow the MQTT traffic through your firewall to use a broker on you local network. Only you can make the decision as to how safe that is
you can always migrate to another MQTT broker by just changing some basic parameters (server url / ip, port, user name and password).
Worst case, you can setup your own MQTT broker. You can take various measures to increase security and decrease the attack surface (e.g., use non-standard port, use TLS with your custom server / client certificate... Many other ways to make your server more secure).
I don't know about Blynk, but with GUI-O you can always migrate to any other MQTT broker... In any case, you don't need to implement MQTT protocol - you can just use it...
Personally, I don't like apps like Blynk, which require sign-in to use.