HomagGroup.HomagConnect.MmrMobile.Client 1.2.2

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package HomagGroup.HomagConnect.MmrMobile.Client --version 1.2.2
NuGet\Install-Package HomagGroup.HomagConnect.MmrMobile.Client -Version 1.2.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HomagGroup.HomagConnect.MmrMobile.Client" Version="1.2.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HomagGroup.HomagConnect.MmrMobile.Client --version 1.2.2
#r "nuget: HomagGroup.HomagConnect.MmrMobile.Client, 1.2.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install HomagGroup.HomagConnect.MmrMobile.Client as a Cake Addin
#addin nuget:?package=HomagGroup.HomagConnect.MmrMobile.Client&version=1.2.2

// Install HomagGroup.HomagConnect.MmrMobile.Client as a Cake Tool
#tool nuget:?package=HomagGroup.HomagConnect.MmrMobile.Client&version=1.2.2

<span style="color:red">[This is preliminary documentation and is subject to change.] </span>

HOMAG MMR Mobile Client

HOMAG Connect MMR Mobile gives you direct access to your machine data (counters, states) from MMR Mobile. You can then conveniently integrate this into your applications. To help you get started, we have prepared a few examples that you can find below.

Version history

Version Date Comment
1.0.0 07.09.2023 First Draft
1.1.0 27.10.2023 Add granularity for getting the data and updating the technical documentation

Content table

  1. TL;DR
  2. Homag Connect MMR Mobile interface overview
  3. Details

Authorization

TL;DR

mkdir test-homag-connect-mmr-client
dotnet new console
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
dotnet add package HomagGroup.HomagConnect.MmrMobile.Client
using System.Net.Http.Headers;
using System.Text;

using HomagConnect.MmrMobile.Client.Services;

Console.WriteLine("Hello at the HOMAG MMR Mobile Client");

var client = new HttpClient();
client.BaseAddress = new Uri("https://connect.homag.cloud");
Console.WriteLine("Please insert your subscription Id:");
var subscriptionId = Console.ReadLine();
Console.WriteLine("Please insert your token:");
var token = Console.ReadLine();
var credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{subscriptionId}:{token}"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
var states = await mmrMobileService.GetStateData();
var counters = await mmrMobileService.GetCounterData();
Console.WriteLine($"You got {states.Count()} states and {counters.Count()} counter for the last 14 days")
dotnet run

Homag Connect MMR Mobile interface overview

Name Method API Usage
GetStateData GET api/mmr/<br/>states?from={from}&to={to}<br/>&machineNumber={machineNumber}<br/>&instanceId={instanceId}<br/>&machineType={machineType}<br/>&stateId={stateId}<br/>&detailedStateId={detailedStateId}<br/>&granularity={granularity} Returns all state data for the asked time window (default: 14 days) for all machines assigned to the subscription, if not asked specifically.
GetCounterData GET api/mmr/<br/>counter?from={from}&to={to}<br/>&machineNumber={machineNumber}<br/>&instanceId={instanceId}<br/>&machineType={machineType}<br/>&counterId={counterId}<br/>&granularity={granularity} Returns all counter data for the asked time window (default: 14 days) for all machines assigned to the subscription, if not asked specifically.

Details

Rate Limiting

As mentioned in the base documentation, each application has a different rate limitation. For the following endpoints this limit is currently set to 6 requests in a minute.

GetStateData

Input
Parameter Type Description
from (Optional) DateTime DateTime that the search should start from
to (Optional) DateTime DateTime that the search should end
machineNumber (Optional) string Number of the machine (Format: x-xxx-xx-xxxx)
instanceId (Optional) string The id of the instance
machineType (Optional) string Type of machine
stateId (Optional) string Id of the state
detailedStateId (Optional) string Id of the detailed state
granularity (Optional) string Specifies granualrity of the returned data (hour, day, week, month). Default will be like the following: 1 day: hourly, 2-14 days: daily, 15 days - 3 months: weekly, every timespan requested bigger than 3 months: monthly if not asked specifically. The hourly data is only available for the last 14 days.
Output
Property Type Description
Machine Number string Number of the machine
Machine Name string Name of the machine
Machine Type string Type of machine
Timestamp DateTime Day when the data was gathered
Granularity string Granularity of the requested data
Duration [h] double Time that the machine spent in the state in hours
Instance Id string Id of the instance
Detailed State Id string Id of the detailed state
Detailed State string Detailed state translated into the requested language
State Id string Id of the state
State string State translated into the requested language
Example

Request

GET /api/mmr/states
api-version: 2023-09-05
Accept-Language: de-DE
Authorization: Basic NjU1MDFEMDktMkJCOS00M0MyLUI5RDMtMUZCMDAwNkE3NjlFOnNkMDlzaGR1Z985OGffc2ZkZ3pz32Y5ZGhzYWZkaHNmZN92ODlwYmZkOXZiaGFmZGd2
tracestate: someinternaltracedata

Response (200 OK)

Content-Type: application/json; charset=utf-8
[
    {
        "Machine Number": "0-242-92-1234",
        "Machine Name": "Some Machine | 0-242-92-1234",
        "Machine Type": "CNC",
        "Timestamp": "2022-09-27T00:00:00",
        "Granularity": "day",
        "Duration [h]": 4.348055555555556,
        "Instance Id": "M1-C1",
        "Detailed State Id": "S_OMU_MODE1",
        "Detailed State": "Hauptnutzung Tisch links",
        "State Id": "s_mainusage",
        "State": "Hauptnutzung"
    }
]

The default route with no timespan added will always return related data for the last 14 days.

GetCounterData

Input
Parameter Type Description
from (Optional) DateTime DateTime that the search should start from
to (Optional) DateTime DateTime that the search should end
machineNumber (Optional) string Number of the machine (Format: x-xxx-xx-xxxx)
instanceId (Optional) string The id of the instance
machineType (Optional) string Type of machine
counterId (Optional) string Id of the counter
granularity (Optional) string Specifies granualrity of the returned data (hour, day, week, month). Default will be like the following: 1 day: hourly, 2-14 days: daily, 15 days - 3 months: weekly, every timespan requested bigger than 3 months: monthly if not asked specifically. The hourly data is only available for the last 14 days.
Output
Property Type Description
Machine Number string Number of the machine
Machine Name string Name of the machine
Machine Type string Type of machine
Timestamp DateTime Day when the data was gathered
Granularity string Granularity of the requested data
Value double Output value
Instance Id string Id of the instance
Counter Id string Id of the counter
Counter string Counter translated into the requested language
Example

Request

GET /api/mmr/counters
api-version: 2023-09-05
Accept-Language: de-DE
Authorization: Basic NjU1MDFEMDktMkJCOS00M0MyLUI5RDMtMUZCMDAwNkE3NjlFOnNkMDlzaGR1Z985OGffc2ZkZ3pz32Y5ZGhzYWZkaHNmZN92ODlwYmZkOXZiaGFmZGd2
tracestate: someinternaltracedata

Response (200 OK)

Content-Type: application/json; charset=utf-8
[
    {
        "Machine Number": "0-242-92-1234",
        "Machine Name": "Some Machine | 0-242-92-1234",
        "Machine Type": "CNC",
        "Timestamp": "2022-09-05T05:00:00",
        "Granularity": "hour",
        "Value": 62.0,
        "Instance Id": "M1-C1",
        "Counter Id": "S_OUT_CyclesAll",
        "Counter": "Ausbringung Zyklen"
    }
]

The default route with no timespan added will always return related data for the last 14 days.

Contribute

If you find anything, feel free to contribute to this repository. We are happy for every improvement ❤️.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.3-alpha.0.31 36 4/25/2024
1.2.3-alpha.0.29 37 4/24/2024
1.2.3-alpha.0.28 36 4/23/2024
1.2.3-alpha.0.27 38 4/22/2024
1.2.3-alpha.0.26 40 4/22/2024
1.2.3-alpha.0.25 39 4/22/2024
1.2.3-alpha.0.24 38 4/22/2024
1.2.3-alpha.0.23 45 4/19/2024
1.2.3-alpha.0.22 39 4/19/2024
1.2.3-alpha.0.21 44 4/19/2024
1.2.3-alpha.0.20 36 4/18/2024
1.2.3-alpha.0.19 34 4/18/2024
1.2.3-alpha.0.18 37 4/18/2024
1.2.3-alpha.0.17 43 4/16/2024
1.2.3-alpha.0.16 45 4/16/2024
1.2.3-alpha.0.15 50 4/12/2024
1.2.3-alpha.0.14 40 4/10/2024
1.2.3-alpha.0.13 42 4/10/2024
1.2.3-alpha.0.12 43 4/10/2024
1.2.3-alpha.0.11 47 4/9/2024
1.2.3-alpha.0.10 34 4/9/2024
1.2.3-alpha.0.9 31 4/9/2024
1.2.3-alpha.0.8 48 4/8/2024
1.2.3-alpha.0.7 52 4/5/2024
1.2.3-alpha.0.6 48 4/3/2024
1.2.3-alpha.0.5 47 4/3/2024
1.2.3-alpha.0.4 47 4/3/2024
1.2.3-alpha.0.3 51 3/29/2024
1.2.3-alpha.0.2 49 3/28/2024
1.2.3-alpha.0.1 51 3/28/2024
1.2.2 95 3/28/2024
1.2.2-alpha.0.3 54 3/28/2024
1.2.2-alpha.0.2 51 3/28/2024
1.2.2-alpha.0.1 35 3/27/2024
1.2.1 80 3/26/2024
1.1.2-alpha.0.5 48 3/26/2024
1.1.1 109 1/23/2024
1.1.0 207 10/27/2023
1.0.0 145 9/7/2023