agrirouter Certification
In General
Every application needs to be certified to communicate with the agrirouter. The certification ensures that the communication protocol of the agrirouter is successfully implemented and the application can communicate correctly with the agrirouter.
A certification is needed any time the application changes its capabilities or their sending directions, changes the commands or uses a different protocol to communicate with the agrirouter.
Also, if core functionality of the agrirouter integration is being reimplemented in the certified product for whatever reason, a re-certification is mandatory.
Failure to communicate functional changes and re-certify them can lead to temporary deactivation of the application in case of malfunction! |
For a new certification version capabilities can never be removed. Neither can a sending direction of a capability be removed. It is only allowed to add capabilities or sending directions for a new version to ensure downwards compatibility. The capabilities command however can of course only include a subset which is smaller than in the version before. |
Out of focus
The certification will not check if an application is able to work with the data sent over the agrirouter. The process will only check if the application can send and receive data for the technical message types which were selected for the certification version earlier on.
Certification companies
There are multiple certification companies, a list can be found here.
Certification Requirements
To pass the certification tests there are multiple requirements have to be fulfilled before the certification can start.
Prerequisites
-
The DKE application provider agreement has to be signed.
-
The following information about the company is available:
-
Name
-
Address (where billing and offer should be placed by the certification company)
-
-
The following first level customer support information is available:
-
Mail
-
Address
-
Phone
-
URL
-
-
A production environment developer account of the application provider
-
The application Id and certification version Id of an application in the production environment.
-
Version, name and description of the application to certify.
-
Once your certification is approved by the certifier, please send us the SolutionFinder Form the Solution-Finder form so that we can create the entry in the Solution-Finder.
Additional requirements during the process
The following information is not required to start the certification but will be required before finishing it:
-
Message protocol of the application (MQTT / REST).
-
Message format of the application (JSON / Native Protobuf).
-
The capabilities of the application including the technical message types and sending directions.
-
A list of all commands that are used by the application.
-
Is this an initial certification or a recertification for a new version of an existing software?
-
For some test case there has to be at least one extracted original message (as JSON or Base64-Encoded native Protobuf) provided to the certification company.
Relaxed requirements when using SDKs
When using one of the official SDKs for the implementation, some requirements will be assumed ok without explicit checks. These requirements are annotated with [1] below.
To apply this relaxation, you are required to use the most up-to-date release of the respective SDK!
Certification timeout
Once the certification is started, it needs to be successfully passed within 10 weeks. Otherwise, additional costs could be incurred. It is important to respect this time range as part of the implementation planning.
Certification tests
Not all of the certification tests are necessary for your implementation. The certification company is able to tell you which of the tests are necessary to full fill all requirements.
The term "All TMTs" on this page means "All Technical Message Types that were reported in the application certification version". |
The selection depends on several parameters and attributes of the specific application. These parameters are listed in the following chapters
Based on the application type
Based on the type of your application, different tests are required. Check here, which type of application suites your requirements best.
Message type | Major for | Expected results / Acceptance criteria |
---|---|---|
CUs |
|
|
Telemetry platform Farming software |
|
|
Telemetry platform Farming software |
|
|
Telemetry platform Farming software |
|
|
Telemetry platform Farming software |
|
|
Always (if the application does not use router devices) |
|
|
Farming Software Telemetry Platforms (If the application uses router devices) |
|
|
Telemetry platform |
|
|
Telemetry platform |
|
Based on commands
It will be checked in advance by the certification company, which commands are supported by your software in which characteristic. Those will be checked. Here is an overview of the commands:
Message type | Condition | Expected results / Acceptance criteria |
---|---|---|
Always |
|
|
If the application can receive messages. |
|
|
If application can receive messages. |
|
|
If application can receive messages. |
|
|
If application can receive messages. |
|
|
If application can receive messages. |
|
|
Optional, if supported. |
|
|
Optional, if supported. |
|
|
If application can send messages. |
|
|
If application can send messages. |
|
Applications sending messages
These tests are only required if your application can send messages. |
Message type | Condition | Expected results / Acceptance criteria |
---|---|---|
|
||
Base64 encoding |
|
|
Sending gps:info and/or EFDI |
App can send gps:info and/or EFDI |
|
Exchange zipped folders |
|
|
Message addressing |
Always; optional, if supported. |
|
Applications receiving messages
These tests are only required if your application can receive data. |
Message type | Condition | Expected results / Acceptance criteria |
---|---|---|
Merging chunks |
|
|
Receive gps:info and EFDI |
App can receive gps:info and/or EFDI |
|
Receive Base64 encoded TMTs |
|
|
Always (if supported). |
|
Other requirements
Topic | Description | Expected results / Acceptance criteria | ||
---|---|---|---|---|
Timestamps[1] |
It will be tested that the software uses UTC Timestamp for every message it sends. See also the general conventions. |
|
||
Id requirements[1] |
There are several general requirements on counters and Ids communicated to agrirouter. |
|
||
Billing requirements |
To avoid problems during the invoicing and billing process, there are some requirements to support the whole process. |
|
||
Account management |
If supported, it is checked if the application / communication unit correctly changes the agrirouter endpoint used for the communication when changing the account internally. |
|
||
Teamset reports |
The application to be certified needs to report teamsets and provide unique teamset Ids. |
|
||
Clean your feed |
Make sure, your feed will be cleaned by confirming or deleting messages after receiving them.
|
|
||
Valid commands[1] |
The application to be certified has to show that it can build and send all commands relevant for its implementation without producing an ACK_WITH_FAILURE at agrirouter mentioning an invalid message. |
|
||
Error handling |
All errors that show up during communication with agrirouter need to be documented by the application to be certified. |
|
||
Buffering |
If the Internet connection gets lost or agrirouter is not available for another reason, the application instance should buffer data that needs to be sent when the connection is re-established. The application instance needs to check for reconnection on its own. |
|
||
Test coverage for Telemetry platform |
For Telemetry platform, it will be checked in advance of the test, which functionalities are required for the platform itself and which functionalities are required for its Virtual CUs. Telemetry platform must at least support the onboarding and offboarding of VCUs as well as the secured onboarding and authorization. Tests are setup depending on the capabilities of the telemetry platform itself and its VCUs. |
|
||
Base64 Encoding |
Base64 Encoded strings shall not include line breaks. |
Neither Base64 encoded files nor the Base64-encoded messages may include line breaks |
Message protocol layer and message format
If your software supports REST or MQTT with JSON, sending and receiving of those formats is checked.
If your software supports REST with native Protobuf, sending and receiving of those formats is checked.
For HTTP REST
Topic | Description | Expected results / Acceptance criteria |
---|---|---|
Polling |
It is checked that your application does not flood agrirouter with polls |
The application shall not poll the outbox of each app instance more often than described here. |
Recertification cases
An application has to be re-certified if one of the following things apply:
-
A new technical message type and/or direction is supported by your application
-
The basic message protocol (MQTT or REST) has changed
-
The basic message format (JSON or native Protobuf) has changed
-
The list of implemented commands changed
-
Push notifications are activated in the capabilities
The supported TMTs as well as the used protocol and format are assigned to the certification. A change of any of those functionalities will cause an invalidity of the certificate, which will block your applications communication to agrirouter. |
In the unlikely event of an update of agrirouter software, which requires changes in the app providers software (e.g. a new error code that shall be handled), a new certification is not required. However, the app provider is responsible for keeping his software up to date. |