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

devices is:

  • 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)
  • WebPages
  • 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:

  • javascript for webpage
  • 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:

Connection Types

  • 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.

Messages

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

Variables

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.

Variable handling is made by the api, for esp, raspberryPi python script, the code can be generated by the wizard, for webPages javascript can be used to change and observe variables, but easiest way is to create out of the box components

more about variables here

Read next