martinhej / robopoint
robopoint is the gateway to robocloud for simple devices.
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 2
Type:project
pkg:composer/martinhej/robopoint
Requires
- php: ^7.1.3
- ext-iconv: *
- aws/aws-sdk-php: ^3.52
- friendsofsymfony/rest-bundle: ^2.3
- martinhej/robocloud: @dev
- sensio/framework-extra-bundle: ^5.1
- symfony/asset: ^4.0
- symfony/console: ^4.0
- symfony/debug-pack: *
- symfony/expression-language: ^4.0
- symfony/flex: ^1.0
- symfony/form: ^4.0
- symfony/framework-bundle: ^4.0
- symfony/lts: ^4@dev
- symfony/monolog-bundle: ^3.1
- symfony/orm-pack: *
- symfony/process: ^4.0
- symfony/security-bundle: ^4.0
- symfony/serializer-pack: ^1.0
- symfony/swiftmailer-bundle: ^3.1
- symfony/twig-bundle: ^4.0
- symfony/validator: ^4.0
- symfony/web-link: ^4.0
- symfony/webpack-encore-pack: *
- symfony/yaml: ^4.0
Requires (Dev)
- symfony/browser-kit: ^4.0
- symfony/css-selector: ^4.0
- symfony/dotenv: ^4.0
- symfony/maker-bundle: ^1.0
- symfony/phpunit-bridge: ^4.0
- symfony/profiler-pack: *
- symfony/web-server-bundle: ^4.0
Conflicts
This package is not auto-updated.
Last update: 2025-10-26 10:47:26 UTC
README
As the headline suggests the purpose of this web app is to provide easier access to robocloud for devices for which it would be too difficult to interact directly. Here are a few concrete examples:
- A simple unit based on an ESP chip is sending meteorology measurement data to robocloud for further processing.
- Robotic mouse that is following a line is seeking a buddy to get help to find the lost line.
- Two maze solvers want to share info on the shortest track to get through a maze.
Installation
- 
Make sure you read the robocloud README.md file first (https://github.com/martinhej/robocloud/blob/master/README.md) to learn about the basics. 
- 
In your symfony project run: 
composer require martinhej/robopoint
- 
Copy the robopoint.yaml.disttorobopoint.yaml. You can also move a copy of the file into desiredpackagesdirectory to handle environment specific configuration.
- 
After addressing Kinesis specific settings (and DynamoDB in case you are going to store messages in DynamoDB table) make sure the message_schema_dirandrecovery_filepath settings are correct.
- 
Deploy to a server of your choice or use the Symfony server bundle bin/console server:run.
Push messages to stream
At this moment the only reference point for available endpoints is the
robopoint\Controller\Api\V1\MessageController class. The REST API is far from what
it should be and its initial structure is in progress.
POST at the /messages/ endpoint your first message into the stream. I.e. try
{
  "messages":
  	[
      {
          "roboId":"robogarden",
          "purpose":"garden.water_pump.start",
          "data":{
              "pumpId":"demo",
              "runTime":"3200"
          }
      }
	]
}
If you get 200 response it should contain the message id and time:
{
"messages": 
    [
        {
            "messageId": "92089bf40a4ed3a623ba6140fa2a520ab77fcb6d",
            "messageTime": "2018-05-30T15:13:21+0000"
        }
    ]
}
Read messages
Visit api/v1/messages/robo1/read-by-purpose/garden.water_pump.start to read
the message you just sent.
The response contains messages and lag. The lag is the time in microseconds
behind the latest message in the stream.