{"id":22868491,"url":"https://github.com/datavenueliveobjects/sigfox-live-objects-connector","last_synced_at":"2025-03-31T10:50:54.158Z","repository":{"id":46809518,"uuid":"343174027","full_name":"DatavenueLiveObjects/Sigfox-Live-Objects-connector","owner":"DatavenueLiveObjects","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-17T07:13:10.000Z","size":522,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T15:53:31.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DatavenueLiveObjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-28T17:55:35.000Z","updated_at":"2023-08-13T09:20:28.000Z","dependencies_parsed_at":"2023-02-10T08:16:00.591Z","dependency_job_id":null,"html_url":"https://github.com/DatavenueLiveObjects/Sigfox-Live-Objects-connector","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FSigfox-Live-Objects-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FSigfox-Live-Objects-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FSigfox-Live-Objects-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FSigfox-Live-Objects-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DatavenueLiveObjects","download_url":"https://codeload.github.com/DatavenueLiveObjects/Sigfox-Live-Objects-connector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246458022,"owners_count":20780675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T12:35:22.230Z","updated_at":"2025-03-31T10:50:54.141Z","avatar_url":"https://github.com/DatavenueLiveObjects.png","language":"Java","readme":"## Table of contents\n* [General info](#general-info)\n* [Technologies](#technologies)\n* [Requirements](#requirements)\n* [Getting the installation package](#getting-the-installation-package)\n* [Installation](#installation)\n* [Configuration](#configuration)\n  * [Connector side](#connector-side) \n    * [Application](#application)\n    * [Synchronization of undelivered callbacks](#synchronization-of-undelivered-callbacks)\n    * [Logging](#logging)\n  * [Sigfox side](#sigfox-side)\n    * [Custom callback](#custom-callback)\n* [Launching](#launching)\n* [Deploy on Google Cloud Platform](#deploy-on-google-cloud-platform)\n\n## General info\nThis repository contains everything you need to create 'Sigfox to Live Objects' connector. This connector was designed to synchronize data between Sigfox and Live Objects Platform. Current version of connector allows to make one way synchronization - we can synchronize information from Sigfox to Live Objects. \n\nMain features are:\n* **devices synchronization** - every device created in Sigfox will appear in LO and every device deleted from Sigfox will be also deleted from LO\n* **messages synchronization** - every message which will be send from device to Sigfox will appear in LO\n\nOne connector can handle only one Sigfox account and one Live Objects account.\n\nIt can be only one instance of connector per Live Objects account. Two or more instances connected to the same Live Objects account will cause problems.\n\nThe connector stores messages that failed to sync in the local database. They are sent again according to the synchronization interval set in the configuration.\n\nThe software is an open source toolbox which has to be integrated into an end to end solution. The ordering of messages is not guaranteed to be preserved; the application uses thread pools to run its Sigfox and Live Objects adapters which may cause some messages to arrive in Live Objects out of order in which they were kept within Sigfox.\n\n## Technologies\n* Java 8\n* Spring Boot 2.4.2\n\n\n## Requirements\nIn order to run the connector you need to have:\n* **Live Objects account**\n* **Sigfox account** \n\n\n## Getting the installation package\n\nThe installation package can be acquired in one of two ways:\n\n### Release\n\nIt can be downloaded from https://github.com/DatavenueLiveObjects/Sigfox-Live-Objects-connector/releases\n\n### Building\n\nIt can be created by running the command:\n```\nmvn clean package -Prelease\n```\nAfter running this command, the file  `sigfox2lo-[VERSION].zip` will be created in the target directory. \n\n## Installation\n\nThe file downloaded/created above should be placed where the connector will be started, and then unpacked. You can deploy this connector wherever you want (local server, cloud provider etc.).\n\nAfter unpacking the archive, you should get a structure similar to this:\n```\nbin/\nconf/\ndata/\nlib/\n```\n\n## Configuration\n\nTo start synchronization between Sigfox and Live Objects, you need to configure Live Objects API key and Sigfox API login and password in the `application.yaml` file.  \nYou also need to add a `custom callback` on the Sigfox side.  \nAs you know, the connector stores messages in the local database, so you should also set the username and password for the database in the `application.yaml` file.\n\n### Connector side\n#### Application\nConfiguration can be found in **application.yaml** file located in `conf/` directory.\n```\n1     server:\n2       port: 8080\n3     spring:\n4       application:\n5         name: sigfox2Lo\n6       datasource:\n7         url: jdbc:h2:file:${basedir:.}/data/sigfox-connector-db\n8         username: YOUR_DB_USERNAME\n9         password: YOUR_DB_PASSWORD\n10        driverClassName: org.h2.Driver\n11      jpa:\n12        hibernate:\n13          ddl-auto: update\n14\n15    lo:\n16      hostname: liveobjects.orange-business.com\n17      api-key: YOUR_API_KEY\n18      device-group: _YOUR_DEVICE_GROUP_NAME\n19      synchronization-interval: 60000\n20      synchronization-thread-pool-size: 40\n21      message-retry-days: 10\n22      page-size: 20\n23      message-qos: 1  \n24      mqtt-persistence-dir: ${basedir:.}/temp/\n25\n26    sigfox:\n27      hostname: https://api.sigfox.com/v2\n28      login: YOUR_SIGFOX_LOGIN\n29      password: YOUR_SIGFOX_PASSWORD\n```\nYou can change all values but the most important lines are:\n\n**2** - Tomcat port  \n**8** - Local DB username  \n**9** - Local DB password  \n**16** - Live Objects hostname  \n**17** - Live Objects API key with at least DEVICE_R, DEVICE_W, BUS_R and BUS_W roles.  \n**27** - Sigfox API hostname  \n**28** - Sigfox API login  \n**29** - Sigfox API Password  \n\n#### Generate Live Objects API key\nLogin to Live Objects Web Portal and go to **Administration** -\u003e **API keys**  \n![Api Keys 1](./assets/api_key_1.png)  \nClick **Add** button and fill fields.  \n![Api Keys 2](./assets/api_key_2_.png)\nTo  validate  the  creation  of  the  key,  click  on  the **Create** button.  Your  key  is  generated  in  the form of an alphanumeric sequence and a QR code.\n#### Sigfox API login and password\nLogin to Sigfox Web Portal and go to **GROUP** -\u003e **Your group name** -\u003e **API ACCESS** -\u003e Click **NEW** on the top right of the screen.  \n![Sigfox_api access](./assets/sigfox_api_access.png)\nYou should set the permissions that allow you to retrieve device data and undelivered callbacks.\n\n#### Synchronization of undelivered callbacks\nThe first time the connector is started, any undelivered callbacks are downloaded. To limit the range of downloaded callbacks, you can set the starting timestamp in milliseconds  in the `sync.properties` file. \n```\nlastSyncTime=0\n```\n\n#### Logging\nLogging configuration can be found in **logback.xml** file located in `conf/` directory. You can find more information about how to configure your logs [here](http://logback.qos.ch/manual/configuration.html)\n\n### Sigfox side\nIn order to send messages from Sigfox to the connector, a custom callback must be defined.\n#### Custom callback\nLogin to Sigfox Web Portal and go to **DEVICE TYPE** -\u003e **Your type name** -\u003e **CALLBACKS** -\u003e Click **NEW** on the top right of the screen.\n![custom_callback](./assets/custom_callback_0.png)\nChoose a custom callback\n![custom_callback](./assets/custom_callback_2.png)\nComplete the displayed form\n![custom_callback](./assets/custom_callback_1.png)\nIn the Type fields, set the `Data` `Uplink`. Set the Use HTTP Method field to `POST`. Then in the Url pattern field, put the `address where your connector is available`.\nThe last thing is to configure the content field correctly. Paste the `value given below` there.\n```\n{\n  \"device\": \"{device}\",\n  \"deviceTypeId\": \"{deviceTypeId}\",\n  \"seqNumber\": {seqNumber},\n  \"time\": {time},   \n  \"data\" : \"{data}\"\n}\n```\n\n## Launching\nIn order to run the connector, use the `app.sh` file for linux or `app.bat` if you are using windows. These files are located in the `bin/` directory.\n\n## Deploy on Google Cloud Platform \nYou can deploy this connector wherever you want (local server, cloud provider etc.). As an example we provide scripts to deploy this connector on Google Cloud Platform. These scripts are located in `gcp` directory. \n\n- First of all you need to have Google Cloud account. \n- Second thing is to install [Google Cloud SDK](https://cloud.google.com/sdk).\n- After that you should provide correct parameters in `application.yaml`. \n- Last thing is run `start.sh` script. After a while you will get informations about creating virtual machine named `sigfox2lo` and IP address. You will also see this machine in Google Cloud Platform Console. \n- If you want to stop (and delete) this machine you should run `stop.sh` script.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatavenueliveobjects%2Fsigfox-live-objects-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatavenueliveobjects%2Fsigfox-live-objects-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatavenueliveobjects%2Fsigfox-live-objects-connector/lists"}