Remoteme.org is system which helps you sending messages to your deivces. (Also through the internet)
RemoteMe its also a library set which can be used at webPages,arduino, RasbperryPI and helps You communicate with system itself. We also provide a space for You webPages which can be used to control your devices.
Simple diagram shows registration process
- any device connected to remoteme.org cloud such as ESP8266, ESP32
- RasbperryPi device
- inside Rasbperry pi devices are located and management python scripts ( sincle python script is also a device)
- smartphone application
Each of device has to have:
- deviceId – has to be unique this is also a deviceAddress in remoteMe.org
- a name – does not have to be unique
If you plan to connect several ESP to the system they should have independent deviceId.
Each device has implementet libraries:
- remoteMe, and remoteUtils for arduino it can be installed from Manager library at arduino IDE
- python library attomaticly added while installation on RasbperryPI
This libraries should be used to communicate with remoteme.org, there are several wizards which helps You to generate code and functions. Knowledge of this libraries are usefull for advanced users.
Devices are moslty connected to the system using plain socket protocol (ESP) or websockets for WebPages and RasbeprryPI, Mainly connections are established and implemented by libraries, and end users should not think about it.
Connection status is shown next to device name in devices tab:
- Websocket/Socket is standard way to connect devices to the remoteMe, remoteMe in this case is a “hub” which resend messages to specified device.
- Direct connection ESP <-> web page, when ESP and webPage are at the same local network, and are configured corectly webPage are sending messages directly to the ESP and skiping remoteMe.org system
- WebRTC this kind of connection is direct connection beetwen webPage device and RasbperryPI. In some cases (firewall, NAT) is needed extra turn server. WebRTC connect directly webPage and RAsbperryPi even if they are in diffrent local network. Its great to send low latency video, or sending control commands.
RemoteMe.org send messages beetwen Your devices, and or remoteMe system. There are several types of messaging ( to know excatly what is send check source code ). Most of them are for keeping remoteme.org working like register deviceType, notify about variable change, ping message etc. User can send two types of messages:
- Direct message asynchronous – message send by the api to the specified device, max message size is 4089 bytes. Mostly can be used to control one device by another
- Direct message synchronous – message send by api and sender get response. Can be used to read sensor values
The easiest way to use remoteMe is instead of sending messages changing variables state
Its kind of publish subscriber paradigm, in remoteMe its called variables. At remoteMe You can created variables, connected devices observe specified variables for change, when variable value is changed ( by other device or by scheduler) Observing devices are getting notifications.
more about variables here