diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1ff0c423..00000000 --- a/.gitattributes +++ /dev/null @@ -1,63 +0,0 @@ -############################################################################### -# Set default behavior to automatically normalize line endings. -############################################################################### -* text=auto - -############################################################################### -# Set default behavior for command prompt diff. -# -# This is need for earlier builds of msysgit that does not have it on by -# default for csharp files. -# Note: This is only used by command line -############################################################################### -#*.cs diff=csharp - -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore index 6a3d2a22..8f03dd4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,71 +1,45 @@ - -Airlink/Airlink.Android/obj/Debug/app_shared_libraries/arm64-v8a/libxamarin-app.so -Airlink/Airlink.Android/obj/Debug/app_shared_libraries/arm64-v8a/libxamarin-app.so -Airlink/Airlink.Android/Airlink.Android.csproj -Airlink/Airlink.Android/bin/Debug/Airlink.Android.dll -Airlink/Airlink.Android/bin/Debug/Airlink.Android.pdb -Airlink/Airlink.Android/bin/Debug/Airlink.dll -Airlink/Airlink.Android/bin/Debug/Airlink.pdb -Airlink/Airlink.Android/bin/Debug/com.companyname.airlink-Signed.apk -*.dll -*.pdb -*.zip -*.dex -*.apk -.vs/Airlink/xs/UserPrefs.xml -Airlink/Airlink.Android/Airlink.Android.csproj -Airlink/Airlink.Android/bin/Debug/Airlink.Android.dll -Airlink/Airlink.Android/bin/Debug/Airlink.Android.pdb -Airlink/Airlink.Android/bin/Debug/Airlink.dll -Airlink/Airlink.Android/bin/Debug/Airlink.pdb -Airlink/Airlink.Android/bin/Debug/com.companyname.airlink-Signed.apk -Airlink/Airlink.Android/obj/Debug/Airlink.Android.csproj.FileListAbsolute.txt -Airlink/Airlink.Android/obj/Debug/Airlink.Android.dll -Airlink/Airlink.Android/obj/Debug/Airlink.Android.pdb -Airlink/Airlink.Android/obj/Debug/android/assets/Airlink.Android.dll -Airlink/Airlink.Android/obj/Debug/android/assets/Airlink.Android.pdb -Airlink/Airlink.Android/obj/Debug/android/assets/Airlink.dll -Airlink/Airlink.Android/obj/Debug/android/assets/Airlink.pdb -Airlink/Airlink.Android/obj/Debug/android/bin/classes.dex -Airlink/Airlink.Android/obj/Debug/android/bin/classes.zip -Airlink/Airlink.Android/obj/Debug/android/bin/com.companyname.airlink.apk -Airlink/Airlink.Android/obj/Debug/android/compressed_assemblies.x86.o -Airlink/Airlink.Android/obj/Debug/android/compressed_assemblies.x86.s -Airlink/Airlink.Android/obj/Debug/android/compressed_assemblies.x86_64.o -Airlink/Airlink.Android/obj/Debug/android/compressed_assemblies.x86_64.s -Airlink/Airlink.Android/obj/Debug/android/environment.arm64-v8a.o -Airlink/Airlink.Android/obj/Debug/android/environment.arm64-v8a.s -Airlink/Airlink.Android/obj/Debug/android/environment.armeabi-v7a.o -Airlink/Airlink.Android/obj/Debug/android/environment.armeabi-v7a.s -Airlink/Airlink.Android/obj/Debug/android/environment.x86.o -Airlink/Airlink.Android/obj/Debug/android/environment.x86.s -Airlink/Airlink.Android/obj/Debug/android/environment.x86_64.o -Airlink/Airlink.Android/obj/Debug/android/environment.x86_64.s -Airlink/Airlink.Android/obj/Debug/android/typemaps.x86.o -Airlink/Airlink.Android/obj/Debug/android/typemaps.x86.s -Airlink/Airlink.Android/obj/Debug/android/typemaps.x86_64.o -Airlink/Airlink.Android/obj/Debug/android/typemaps.x86_64.s -Airlink/Airlink.Android/obj/Debug/app_shared_libraries/arm64-v8a/libxamarin-app.so -Airlink/Airlink.Android/obj/Debug/app_shared_libraries/armeabi-v7a/libxamarin-app.so -Airlink/Airlink.Android/obj/Debug/app_shared_libraries/x86/libxamarin-app.so -Airlink/Airlink.Android/obj/Debug/app_shared_libraries/x86_64/libxamarin-app.so -Airlink/Airlink.Android/obj/Debug/build.props -Airlink/Airlink.Android/obj/Debug/buildid.txt -Airlink/Airlink.Android/obj/Debug/designtime/build.props -Airlink/Airlink.iOS/obj/iPhone/Debug/Airlink.iOS.csproj.AssemblyReference.cache -Airlink/Airlink/bin/Debug/netstandard2.0/Airlink.dll -Airlink/Airlink/bin/Debug/netstandard2.0/Airlink.pdb -Airlink/Airlink/bin/Debug/netstandard2.0/ref/Airlink.dll -Airlink/Airlink/obj/Debug/netstandard2.0/Airlink.dll -Airlink/Airlink/obj/Debug/netstandard2.0/Airlink.pdb -Airlink/Airlink/obj/Debug/netstandard2.0/ref/Airlink.dll -Airlink/Airlink.Android/obj/Debug/110/android/bin/com.companyname.airlink.apk +# Miscellaneous +*.class +*.log +*.pyc +*.swp .DS_Store -Airlink/.DS_Store -Airlink/Airlink.Android/.DS_Store -Airlink/Airlink.Android/obj/.DS_Store -Airlink/Airlink.Android/obj/Debug/.DS_Store -Airlink/Airlink.Android/obj/Debug/110/.DS_Store -Airlink/Airlink.Android/obj/Release/110/.DS_Store -*.vs -*.idea +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ +*.env + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.idea/.idea.Airlink/.idea/.gitignore b/.idea/.idea.Airlink/.idea/.gitignore deleted file mode 100644 index 368ef596..00000000 --- a/.idea/.idea.Airlink/.idea/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Rider ignored files -/modules.xml -/contentModel.xml -/projectSettingsUpdater.xml -/.idea.Airlink.iml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/.idea.Airlink/.idea/encodings.xml b/.idea/.idea.Airlink/.idea/encodings.xml deleted file mode 100644 index df87cf95..00000000 --- a/.idea/.idea.Airlink/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/.idea.Airlink/.idea/indexLayout.xml b/.idea/.idea.Airlink/.idea/indexLayout.xml deleted file mode 100644 index 7b08163c..00000000 --- a/.idea/.idea.Airlink/.idea/indexLayout.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/.idea.Airlink/.idea/misc.xml b/.idea/.idea.Airlink/.idea/misc.xml deleted file mode 100644 index 1d8c84d0..00000000 --- a/.idea/.idea.Airlink/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/Airlink.iml b/.idea/Airlink.iml deleted file mode 100644 index d6ebd480..00000000 --- a/.idea/Airlink.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 27b31b9a..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 56175c32..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index 6c2499f6..00000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1665580451437 - - - - \ No newline at end of file diff --git a/app/.metadata b/.metadata similarity index 100% rename from app/.metadata rename to .metadata diff --git a/.vs/Airlink/DesignTimeBuild/.dtbcache.v2 b/.vs/Airlink/DesignTimeBuild/.dtbcache.v2 deleted file mode 100644 index f24d17dc..00000000 Binary files a/.vs/Airlink/DesignTimeBuild/.dtbcache.v2 and /dev/null differ diff --git a/.vs/Airlink/FileContentIndex/35e068af-0d0d-40b7-909a-c51112ba34ae.vsidx b/.vs/Airlink/FileContentIndex/35e068af-0d0d-40b7-909a-c51112ba34ae.vsidx deleted file mode 100644 index ac41fcf7..00000000 Binary files a/.vs/Airlink/FileContentIndex/35e068af-0d0d-40b7-909a-c51112ba34ae.vsidx and /dev/null differ diff --git a/.vs/Airlink/FileContentIndex/read.lock b/.vs/Airlink/FileContentIndex/read.lock deleted file mode 100644 index e69de29b..00000000 diff --git a/.vs/Airlink/project-colors.json b/.vs/Airlink/project-colors.json deleted file mode 100644 index de1565e8..00000000 --- a/.vs/Airlink/project-colors.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "Version": 1, - "ProjectMap": { - "96ac72a4-8fd2-4e8a-8ee2-ee0435780fdb": { - "ProjectGuid": "96ac72a4-8fd2-4e8a-8ee2-ee0435780fdb", - "DisplayName": "Airlink.Android", - "ColorIndex": 0 - }, - "2f1f4f2c-b8fb-4407-b1c2-2d97e4e4bf83": { - "ProjectGuid": "2f1f4f2c-b8fb-4407-b1c2-2d97e4e4bf83", - "DisplayName": "Airlink", - "ColorIndex": 1 - }, - "24f62a43-f928-4c0d-958d-78a3ad765d07": { - "ProjectGuid": "24f62a43-f928-4c0d-958d-78a3ad765d07", - "DisplayName": "Airlink.iOS", - "ColorIndex": 2 - }, - "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": { - "ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3", - "DisplayName": "Miscellaneous Files", - "ColorIndex": -1 - } - }, - "NextColorIndex": 3 -} \ No newline at end of file diff --git a/.vs/Airlink/v16/.suo b/.vs/Airlink/v16/.suo deleted file mode 100644 index 659153d0..00000000 Binary files a/.vs/Airlink/v16/.suo and /dev/null differ diff --git a/.vs/Airlink/v17/.futdcache.v1 b/.vs/Airlink/v17/.futdcache.v1 deleted file mode 100644 index 5d3a0b68..00000000 Binary files a/.vs/Airlink/v17/.futdcache.v1 and /dev/null differ diff --git a/.vs/Airlink/v17/.suo b/.vs/Airlink/v17/.suo deleted file mode 100644 index 3b864d08..00000000 Binary files a/.vs/Airlink/v17/.suo and /dev/null differ diff --git a/.vs/Airlink/xs/UserPrefs.xml b/.vs/Airlink/xs/UserPrefs.xml deleted file mode 100644 index 5e44e35b..00000000 --- a/.vs/Airlink/xs/UserPrefs.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.vs/Airlink/xs/project-cache/Airlink-Debug.json b/.vs/Airlink/xs/project-cache/Airlink-Debug.json deleted file mode 100644 index 38033e70..00000000 --- a/.vs/Airlink/xs/project-cache/Airlink-Debug.json +++ /dev/null @@ -1 +0,0 @@ -{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Users/vav/.nuget/packages/acr.userdialogs/7.2.0.534/lib/netstandard2.0/Acr.UserDialogs.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/ble.net/1.2.1/lib/netstandard2.0/ble.net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.cbor/4.4.4/lib/netstandard1.0/CBOR.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/nexus.core/0.34.0/lib/netstandard2.0/nexus.core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.numbers/1.8.1/lib/netstandard1.0/Numbers.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/plugin.ble/2.1.2/lib/netstandard2.0/Plugin.BLE.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/plugin.ble/2.1.2/lib/netstandard2.0/Plugin.BLE.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/rg.plugins.popup/2.0.0.14/lib/netstandard2.0/Rg.Plugins.Popup.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlite-net-pcl/1.8.116/lib/netstandard2.0/SQLite-net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.bundle_green/2.0.4/lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.core/2.0.4/lib/netstandard2.0/SQLitePCLRaw.core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.provider.e_sqlite3/2.0.4/lib/netstandard2.0/SQLitePCLRaw.provider.e_sqlite3.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.buffers/4.4.0/ref/netstandard2.0/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ComponentModel.Composition.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Data.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Drawing.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.Compression.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.memory/4.5.3/lib/netstandard2.0/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.numerics.vectors/4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.reflection.emit.ilgeneration/4.7.0/ref/netstandard2.0/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.reflection.emit.lightweight/4.7.0/ref/netstandard2.0/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.runtime.compilerservices.unsafe/4.5.3/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Serialization.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ServiceModel.Web.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.threading.tasks.extensions/4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Transactions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Web.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.Serialization.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/netstandard.library/2.0.3/build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.uriutility/1.0.0/lib/netstandard1.0/URIUtility.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.communitytoolkit/1.3.0/lib/netstandard2.0/Xamarin.CommunityToolkit.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.essentials/1.7.0/lib/netstandard2.0/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/netstandard2.0/Xamarin.Forms.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms.pancakeview/2.3.0.759/lib/netstandard2.0/Xamarin.Forms.PancakeView.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/netstandard2.0/Xamarin.Forms.Platform.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/netstandard2.0/Xamarin.Forms.Xaml.dll","Aliases":[],"Framework":null}],"Files":["/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/App.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/AppShell.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/AssemblyInfo.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/MainPage.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/AirLink Advertisement/PUEAdvertisedData.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/AirLinkDevice.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/AirlinkPAYG/PUEPayGData.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/BleItem.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/PaygUpdate.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/PostResponse.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/ProfileModel/TenantKeyModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/Property.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/PropertyDataBank.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/ProvisionResponse.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/Resource.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/ResourceAndProperties.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Models/ResourceDataBank.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/PclCustomUI/CustomEntry.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/AirLinkServer.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/DataConverter.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/HttpsEndpoint.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/IEnvironment.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/IItemStore.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/IMobile.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/ItemStore.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Services/TheTheme.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/AirlinkRecources/PayGData.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/BaseViewModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/BLEDeviceDetailsViewModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/BLEDevicesViewModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/BluetoothServerModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/ProfilePageViewModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/ViewModels/ProfileViewModel/TenantkeyViewModel.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/DevicePage.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/PropertyReadingsPage.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/ScannedDetailsPage.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/ServerPage.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/WritetoPropertPopup.xaml.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Profile/ProfilePage.xaml.cs","/Users/vav/.nuget/packages/xamarin.communitytoolkit/1.3.0/build/PreserveXamarinCommunityToolkit.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/App.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/AppShell.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/MainPage.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Views/Devices/DevicePage.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Views/Devices/PropertyReadingsPage.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Views/Devices/ScannedDetailsPage.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Views/Devices/ServerPage.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Views/Devices/WritetoPropertPopup.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Views/Profile/ProfilePage.xaml.g.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/App.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/AppShell.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/MainPage.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Profile/ProfilePage.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/WritetoPropertPopup.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/ScannedDetailsPage.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/ServerPage.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/PropertyReadingsPage.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Devices/DevicePage.xaml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/.DS_Store","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/.DS_Store","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Views/Profile/.DS_Store","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Airlink.AssemblyInfo.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Airlink.AssemblyInfo.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/obj/Debug/netstandard2.0/Airlink.AssemblyInfo.cs"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","EmbeddedResource","EmbeddedResource","EmbeddedResource","EmbeddedResource","EmbeddedResource","EmbeddedResource","EmbeddedResource","EmbeddedResource","EmbeddedResource","None","None","None","Compile","Compile","Compile"],"Analyzers":[],"AdditionalFiles":[],"EditorConfigFiles":[]} \ No newline at end of file diff --git a/.vs/Airlink/xs/project-cache/Airlink.Android-Debug.json b/.vs/Airlink/xs/project-cache/Airlink.Android-Debug.json deleted file mode 100644 index 430ce9de..00000000 --- a/.vs/Airlink/xs/project-cache/Airlink.Android-Debug.json +++ /dev/null @@ -1 +0,0 @@ -{"Format":1,"ProjectReferences":[{"FilePath":"/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Airlink.csproj","Aliases":[],"Framework":null}],"MetadataReferences":[{"FilePath":"/Users/vav/.nuget/packages/acr.userdialogs/7.2.0.534/lib/monoandroid10.0/Acr.UserDialogs.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/andhud/1.4.3/lib/monoandroid81/AndHUD.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/ble.net-android/1.2.1/lib/MonoAndroid50/ble.net-android21.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/ble.net/1.2.1/lib/netstandard2.0/ble.net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.cbor/4.4.4/lib/netstandard1.0/CBOR.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/MonoAndroid10.0/FormsViewGroup.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Java.Interop.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v11.0/Mono.Android.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/nexus.core/0.34.0/lib/netstandard2.0/nexus.core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.numbers/1.8.1/lib/netstandard1.0/Numbers.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/plugin.ble/2.1.2/lib/MonoAndroid/Plugin.BLE.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/plugin.ble/2.1.2/lib/MonoAndroid/Plugin.BLE.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/rg.plugins.popup/2.0.0.14/lib/monoandroid10.0/Rg.Plugins.Popup.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlite-net-pcl/1.8.116/lib/netstandard2.0/SQLite-net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.bundle_green/2.0.4/lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.core/2.0.4/lib/netstandard2.0/SQLitePCLRaw.core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.lib.e_sqlite3.android/2.0.4/lib/monoandroid80/SQLitePCLRaw.lib.e_sqlite3.android.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.provider.e_sqlite3/2.0.4/lib/netstandard2.0/SQLitePCLRaw.provider.e_sqlite3.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.runtime.compilerservices.unsafe/4.5.2/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/System.Xml.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.uriutility/1.0.0/lib/netstandard1.0/URIUtility.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.activity/1.3.1.2/lib/monoandroid90/Xamarin.AndroidX.Activity.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.annotation/1.2.0.3/lib/monoandroid90/Xamarin.AndroidX.Annotation.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.annotation.experimental/1.1.0.3/lib/monoandroid90/Xamarin.AndroidX.Annotation.Experimental.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.appcompat.appcompatresources/1.3.1.3/lib/monoandroid90/Xamarin.AndroidX.AppCompat.AppCompatResources.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.appcompat/1.3.1.3/lib/monoandroid90/Xamarin.AndroidX.AppCompat.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.arch.core.common/2.1.0.11/lib/monoandroid90/Xamarin.AndroidX.Arch.Core.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.arch.core.runtime/2.1.0.11/lib/monoandroid90/Xamarin.AndroidX.Arch.Core.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.asynclayoutinflater/1.0.0.8/lib/monoandroid90/Xamarin.AndroidX.AsyncLayoutInflater.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.browser/1.3.0.6/lib/monoandroid90/Xamarin.AndroidX.Browser.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.cardview/1.0.0.11/lib/monoandroid90/Xamarin.AndroidX.CardView.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.collection/1.1.0.10/lib/monoandroid90/Xamarin.AndroidX.Collection.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.concurrent.futures/1.1.0.3/lib/monoandroid90/Xamarin.AndroidX.Concurrent.Futures.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.constraintlayout.core/1.0.1.2/lib/monoandroid90/Xamarin.AndroidX.ConstraintLayout.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.constraintlayout/2.1.1.2/lib/monoandroid90/Xamarin.AndroidX.ConstraintLayout.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.coordinatorlayout/1.1.0.10/lib/monoandroid90/Xamarin.AndroidX.CoordinatorLayout.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.core/1.6.0.3/lib/monoandroid90/Xamarin.AndroidX.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.cursoradapter/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.CursorAdapter.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.customview/1.1.0.9/lib/monoandroid90/Xamarin.AndroidX.CustomView.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.documentfile/1.0.1.10/lib/monoandroid90/Xamarin.AndroidX.DocumentFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.drawerlayout/1.1.1.5/lib/monoandroid90/Xamarin.AndroidX.DrawerLayout.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.dynamicanimation/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.DynamicAnimation.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.fragment/1.3.6.3/lib/monoandroid90/Xamarin.AndroidX.Fragment.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.interpolator/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.Interpolator.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.legacy.support.core.ui/1.0.0.9/lib/monoandroid90/Xamarin.AndroidX.Legacy.Support.Core.UI.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.legacy.support.core.utils/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.Legacy.Support.Core.Utils.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.legacy.support.v4/1.0.0.8/lib/monoandroid90/Xamarin.AndroidX.Legacy.Support.V4.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.common/2.3.1.3/lib/monoandroid90/Xamarin.AndroidX.Lifecycle.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.livedata.core/2.3.1.3/lib/monoandroid90/Xamarin.AndroidX.Lifecycle.LiveData.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.livedata/2.3.1.1/lib/monoandroid90/Xamarin.AndroidX.Lifecycle.LiveData.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.runtime/2.3.1.4/lib/monoandroid90/Xamarin.AndroidX.Lifecycle.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.viewmodel/2.3.1.3/lib/monoandroid90/Xamarin.AndroidX.Lifecycle.ViewModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.viewmodelsavedstate/2.3.1.3/lib/monoandroid90/Xamarin.AndroidX.Lifecycle.ViewModelSavedState.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.loader/1.1.0.10/lib/monoandroid90/Xamarin.AndroidX.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.localbroadcastmanager/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.LocalBroadcastManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.media/1.4.0.1/lib/monoandroid90/Xamarin.AndroidX.Media.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.multidex/2.0.1.5/lib/monoandroid90/Xamarin.AndroidX.MultiDex.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.navigation.common/2.3.5.1/lib/monoandroid90/Xamarin.AndroidX.Navigation.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.navigation.runtime/2.3.5.1/lib/monoandroid90/Xamarin.AndroidX.Navigation.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.navigation.ui/2.3.5.1/lib/monoandroid90/Xamarin.AndroidX.Navigation.UI.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.preference/1.1.1.9/lib/monoandroid90/Xamarin.AndroidX.Preference.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.print/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.Print.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.recyclerview/1.2.1.3/lib/monoandroid90/Xamarin.AndroidX.RecyclerView.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.savedstate/1.1.0.4/lib/monoandroid90/Xamarin.AndroidX.SavedState.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.slidingpanelayout/1.1.0.3/lib/monoandroid90/Xamarin.AndroidX.SlidingPaneLayout.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.swiperefreshlayout/1.1.0.3/lib/monoandroid90/Xamarin.AndroidX.SwipeRefreshLayout.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.tracing.tracing/1.0.0.3/lib/monoandroid90/Xamarin.AndroidX.Tracing.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.transition/1.4.1.3/lib/monoandroid90/Xamarin.AndroidX.Transition.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.vectordrawable.animated/1.1.0.10/lib/monoandroid90/Xamarin.AndroidX.VectorDrawable.Animated.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.vectordrawable/1.1.0.10/lib/monoandroid90/Xamarin.AndroidX.VectorDrawable.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.versionedparcelable/1.1.1.10/lib/monoandroid90/Xamarin.AndroidX.VersionedParcelable.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.viewpager/1.0.0.10/lib/monoandroid90/Xamarin.AndroidX.ViewPager.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.androidx.viewpager2/1.0.0.12/lib/monoandroid90/Xamarin.AndroidX.ViewPager2.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.communitytoolkit/1.3.0/lib/monoandroid10.0/Xamarin.CommunityToolkit.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.essentials/1.7.0/lib/monoandroid10.0/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/MonoAndroid10.0/Xamarin.Forms.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms.visual.material/5.0.0.2196/lib/MonoAndroid10.0/Xamarin.Forms.Material.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms.pancakeview/2.3.0.759/lib/monoandroid10.0/Xamarin.Forms.PancakeView.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/MonoAndroid10.0/Xamarin.Forms.Platform.Android.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/MonoAndroid10.0/Xamarin.Forms.Platform.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2196/lib/MonoAndroid10.0/Xamarin.Forms.Xaml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.google.android.material/1.4.0.4/lib/monoandroid90/Xamarin.Google.Android.Material.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.google.guava.listenablefuture/1.0.0.2/lib/monoandroid50/Xamarin.Google.Guava.ListenableFuture.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.Android.framework/Versions/12.0.0.3/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null}],"Files":["/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/BackgroundService.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/BleServer.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/BleServerCallBack.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/CustomUI/CustomEntryRenderer.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/MainActivity.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/Resource.designer.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Properties/AssemblyInfo.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/UniqueIdAndroid.cs","/Users/vav/.nuget/packages/xamarin.communitytoolkit/1.3.0/build/PreserveXamarinCommunityToolkit.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/AboutResources.txt","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Assets/AboutAssets.txt","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Properties/AndroidManifest.xml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/values/styles.xml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/values/colors.xml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-anydpi-v26/icon.xml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-anydpi-v26/icon_round.xml","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-hdpi/icon.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-hdpi/launcher_foreground.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-mdpi/icon.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-mdpi/launcher_foreground.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-xhdpi/icon.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-xhdpi/launcher_foreground.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-xxhdpi/icon.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-xxhdpi/launcher_foreground.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-xxxhdpi/icon.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Airlink.csproj","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/tab_about.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/tab_blue.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/tab_client.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/tab_feed.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/tab_server.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/xamarin_logo.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/device.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/dashboard.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/profile.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/profil.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.Android/Resources/drawable/foward.png","/Users/vav/.nuget/packages/xamarin.androidx.annotation/1.2.0.3/jar/androidx.annotation.annotation.jar","/Users/vav/.nuget/packages/xamarin.androidx.collection/1.1.0.10/jar/androidx.collection.collection.jar","/Users/vav/.nuget/packages/xamarin.androidx.versionedparcelable/1.1.1.10/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.versionedparcelable/1.1.1.10/aar/androidx.versionedparcelable.versionedparcelable.aar","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.common/2.3.1.3/jar/androidx.lifecycle.lifecycle-common.jar","/Users/vav/.nuget/packages/xamarin.androidx.arch.core.common/2.1.0.11/jar/androidx.arch.core.core-common.jar","/Users/vav/.nuget/packages/xamarin.androidx.arch.core.runtime/2.1.0.11/aar/androidx.arch.core.core-runtime.aar","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.runtime/2.3.1.4/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.runtime/2.3.1.4/aar/androidx.lifecycle.lifecycle-runtime.aar","/Users/vav/.nuget/packages/xamarin.androidx.annotation.experimental/1.1.0.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.annotation.experimental/1.1.0.3/aar/androidx.annotation.annotation-experimental.aar","/Users/vav/.nuget/packages/xamarin.androidx.core/1.6.0.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.core/1.6.0.3/aar/androidx.core.core.aar","/Users/vav/.nuget/packages/xamarin.androidx.customview/1.1.0.9/aar/androidx.customview.customview.aar","/Users/vav/.nuget/packages/xamarin.androidx.viewpager/1.0.0.10/aar/androidx.viewpager.viewpager.aar","/Users/vav/.nuget/packages/xamarin.androidx.tracing.tracing/1.0.0.3/aar/androidx.tracing.tracing.aar","/Users/vav/.nuget/packages/xamarin.androidx.savedstate/1.1.0.4/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.savedstate/1.1.0.4/aar/androidx.savedstate.savedstate.aar","/Users/vav/.nuget/packages/xamarin.androidx.recyclerview/1.2.1.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.recyclerview/1.2.1.3/aar/androidx.recyclerview.recyclerview.aar","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.viewmodel/2.3.1.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.viewmodel/2.3.1.3/aar/androidx.lifecycle.lifecycle-viewmodel.aar","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.livedata.core/2.3.1.3/aar/androidx.lifecycle.lifecycle-livedata-core.aar","/Users/vav/.nuget/packages/xamarin.androidx.loader/1.1.0.10/aar/androidx.loader.loader.aar","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.viewmodelsavedstate/2.3.1.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.viewmodelsavedstate/2.3.1.3/aar/androidx.lifecycle.lifecycle-viewmodel-savedstate.aar","/Users/vav/.nuget/packages/xamarin.androidx.activity/1.3.1.2/aar/androidx.activity.activity.aar","/Users/vav/.nuget/packages/xamarin.androidx.fragment/1.3.6.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.fragment/1.3.6.3/aar/androidx.fragment.fragment.aar","/Users/vav/.nuget/packages/xamarin.androidx.viewpager2/1.0.0.12/aar/androidx.viewpager2.viewpager2.aar","/Users/vav/.nuget/packages/xamarin.androidx.vectordrawable/1.1.0.10/aar/androidx.vectordrawable.vectordrawable.aar","/Users/vav/.nuget/packages/xamarin.androidx.interpolator/1.0.0.10/aar/androidx.interpolator.interpolator.aar","/Users/vav/.nuget/packages/xamarin.androidx.vectordrawable.animated/1.1.0.10/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.vectordrawable.animated/1.1.0.10/aar/androidx.vectordrawable.vectordrawable-animated.aar","/Users/vav/.nuget/packages/xamarin.androidx.transition/1.4.1.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.transition/1.4.1.3/aar/androidx.transition.transition.aar","/Users/vav/.nuget/packages/xamarin.androidx.print/1.0.0.10/aar/androidx.print.print.aar","/Users/vav/.nuget/packages/xamarin.androidx.localbroadcastmanager/1.0.0.10/aar/androidx.localbroadcastmanager.localbroadcastmanager.aar","/Users/vav/.nuget/packages/xamarin.androidx.documentfile/1.0.1.10/aar/androidx.documentfile.documentfile.aar","/Users/vav/.nuget/packages/xamarin.androidx.legacy.support.core.utils/1.0.0.10/aar/androidx.legacy.legacy-support-core-utils.aar","/Users/vav/.nuget/packages/xamarin.androidx.dynamicanimation/1.0.0.10/aar/androidx.dynamicanimation.dynamicanimation.aar","/Users/vav/.nuget/packages/xamarin.androidx.drawerlayout/1.1.1.5/aar/androidx.drawerlayout.drawerlayout.aar","/Users/vav/.nuget/packages/xamarin.androidx.cursoradapter/1.0.0.10/aar/androidx.cursoradapter.cursoradapter.aar","/Users/vav/.nuget/packages/xamarin.androidx.coordinatorlayout/1.1.0.10/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.coordinatorlayout/1.1.0.10/aar/androidx.coordinatorlayout.coordinatorlayout.aar","/Users/vav/.nuget/packages/xamarin.androidx.constraintlayout.core/1.0.1.2/jar/androidx.constraintlayout.constraintlayout-core.jar","/Users/vav/.nuget/packages/xamarin.androidx.appcompat.appcompatresources/1.3.1.3/aar/androidx.appcompat.appcompat-resources.aar","/Users/vav/.nuget/packages/xamarin.androidx.appcompat/1.3.1.3/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.appcompat/1.3.1.3/aar/androidx.appcompat.appcompat.aar","/Users/vav/.nuget/packages/xamarin.androidx.constraintlayout/2.1.1.2/aar/androidx.constraintlayout.constraintlayout.aar","/Users/vav/.nuget/packages/xamarin.androidx.cardview/1.0.0.11/aar/androidx.cardview.cardview.aar","/Users/vav/.nuget/packages/xamarin.google.android.material/1.4.0.4/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.google.android.material/1.4.0.4/aar/com.google.android.material.material.aar","/Users/vav/.nuget/packages/xamarin.androidx.lifecycle.livedata/2.3.1.1/aar/androidx.lifecycle.lifecycle-livedata.aar","/Users/vav/.nuget/packages/xamarin.androidx.swiperefreshlayout/1.1.0.3/aar/androidx.swiperefreshlayout.swiperefreshlayout.aar","/Users/vav/.nuget/packages/xamarin.androidx.slidingpanelayout/1.1.0.3/aar/androidx.slidingpanelayout.slidingpanelayout.aar","/Users/vav/.nuget/packages/xamarin.androidx.preference/1.1.1.9/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.preference/1.1.1.9/aar/androidx.preference.preference.aar","/Users/vav/.nuget/packages/xamarin.androidx.navigation.common/2.3.5.1/aar/androidx.navigation.navigation-common.aar","/Users/vav/.nuget/packages/xamarin.androidx.navigation.runtime/2.3.5.1/aar/androidx.navigation.navigation-runtime.aar","/Users/vav/.nuget/packages/xamarin.androidx.navigation.ui/2.3.5.1/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.navigation.ui/2.3.5.1/aar/androidx.navigation.navigation-ui.aar","/Users/vav/.nuget/packages/xamarin.androidx.media/1.4.0.1/proguard/proguard.txt","/Users/vav/.nuget/packages/xamarin.androidx.media/1.4.0.1/aar/androidx.media.media.aar","/Users/vav/.nuget/packages/xamarin.androidx.asynclayoutinflater/1.0.0.8/aar/androidx.asynclayoutinflater.asynclayoutinflater.aar","/Users/vav/.nuget/packages/xamarin.androidx.legacy.support.core.ui/1.0.0.9/aar/androidx.legacy.legacy-support-core-ui.aar","/Users/vav/.nuget/packages/xamarin.androidx.legacy.support.v4/1.0.0.8/aar/androidx.legacy.legacy-support-v4.aar","/Users/vav/.nuget/packages/xamarin.androidx.concurrent.futures/1.1.0.3/jar/androidx.concurrent.concurrent-futures.jar","/Users/vav/.nuget/packages/xamarin.androidx.browser/1.3.0.6/aar/androidx.browser.browser.aar"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","None","None","None","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","ProjectReference","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidResource","AndroidJavaLibrary","AndroidJavaLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidJavaLibrary","AndroidJavaLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidJavaLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","ProguardConfiguration","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidAarLibrary","AndroidJavaLibrary","AndroidAarLibrary"],"Analyzers":[],"AdditionalFiles":[],"EditorConfigFiles":[]} \ No newline at end of file diff --git a/.vs/Airlink/xs/project-cache/Airlink.iOS-Debug_iPhone.json b/.vs/Airlink/xs/project-cache/Airlink.iOS-Debug_iPhone.json deleted file mode 100644 index 3f9161c9..00000000 --- a/.vs/Airlink/xs/project-cache/Airlink.iOS-Debug_iPhone.json +++ /dev/null @@ -1 +0,0 @@ -{"Format":1,"ProjectReferences":[{"FilePath":"/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink/Airlink.csproj","Aliases":[],"Framework":null}],"MetadataReferences":[{"FilePath":"/Users/vav/.nuget/packages/acr.userdialogs/7.2.0.534/lib/xamarinios10/Acr.UserDialogs.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/ble.net/1.2.1/lib/netstandard2.0/ble.net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/btprogresshud/1.3.4/lib/xamarinios10/BTProgressHUD.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.cbor/4.4.4/lib/netstandard1.0/CBOR.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.ios.materialcomponents/92.0.0/lib/Xamarin.iOS/MaterialComponents.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/nexus.core/0.34.0/lib/netstandard2.0/nexus.core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.numbers/1.8.1/lib/netstandard1.0/Numbers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/OpenTK-1.0.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/plugin.ble/2.1.2/lib/Xamarin.iOS10/Plugin.BLE.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/plugin.ble/2.1.2/lib/Xamarin.iOS10/Plugin.BLE.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/rg.plugins.popup/2.0.0.12/lib/xamarinios10/Rg.Plugins.Popup.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlite-net-pcl/1.8.116/lib/netstandard2.0/SQLite-net.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.bundle_green/2.0.4/lib/Xamarin.iOS10/SQLitePCLRaw.batteries_v2.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.core/2.0.4/lib/netstandard2.0/SQLitePCLRaw.core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.bundle_green/2.0.4/lib/Xamarin.iOS10/SQLitePCLRaw.nativelibrary.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/sqlitepclraw.provider.dynamic_cdecl/2.0.4/lib/netstandard2.0/SQLitePCLRaw.provider.dynamic_cdecl.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.buffers/4.4.0/ref/netstandard2.0/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.memory/4.5.3/lib/netstandard2.0/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/system.runtime.compilerservices.unsafe/4.5.2/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/petero.uriutility/1.0.0/lib/netstandard1.0/URIUtility.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.communitytoolkit/1.2.0/lib/xamarinios10/Xamarin.CommunityToolkit.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.essentials/1.7.0/lib/xamarinios10/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2083/lib/Xamarin.iOS10/Xamarin.Forms.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms.visual.material/5.0.0.2196/lib/Xamarin.iOS10/Xamarin.Forms.Material.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms.pancakeview/2.3.0.759/lib/xamarinios10/Xamarin.Forms.PancakeView.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2083/lib/Xamarin.iOS10/Xamarin.Forms.Platform.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2083/lib/Xamarin.iOS10/Xamarin.Forms.Platform.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/vav/.nuget/packages/xamarin.forms/5.0.0.2083/lib/Xamarin.iOS10/Xamarin.Forms.Xaml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/15.2.0.1/lib/mono/Xamarin.iOS/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null}],"Files":["/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Main.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/AppDelegate.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Properties/AssemblyInfo.cs","/Users/vav/.nuget/packages/xamarin.communitytoolkit/1.2.0/build/PreserveXamarinCommunityToolkit.cs","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Entitlements.plist","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Info.plist","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Resources/LaunchScreen.storyboard","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png","/Users/vav/Downloads/Simusolar/Airlink-App/Airlink-App/Airlink/Airlink.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png"],"BuildActions":["Compile","Compile","Compile","Compile","None","None","InterfaceDefinition","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset"],"Analyzers":[],"AdditionalFiles":[],"EditorConfigFiles":[]} \ No newline at end of file diff --git a/.vs/ProjectEvaluation/airlink.metadata.v2 b/.vs/ProjectEvaluation/airlink.metadata.v2 deleted file mode 100644 index bfbb64f1..00000000 Binary files a/.vs/ProjectEvaluation/airlink.metadata.v2 and /dev/null differ diff --git a/.vs/ProjectEvaluation/airlink.projects.v2 b/.vs/ProjectEvaluation/airlink.projects.v2 deleted file mode 100644 index 72f2efc4..00000000 Binary files a/.vs/ProjectEvaluation/airlink.projects.v2 and /dev/null differ diff --git a/README.md b/README.md index 36b153ec..32e9f783 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,25 @@ -# AirLink: An IoT Framework -## Technical Documentation +# AirLink App -> AirLink is an open source framework ([MIT License](https://opensource.org/licenses/MIT)) to manage IoT devices connecting to IoT servers via Bluetooth® LE ↔ GSM gateways. The protocol provides a communication standard and example code for devices and smartphones. As such, it removes the need for edge IoT devices to have direct internet connectivity by using the smartphone or intermediate gateway as a relay. -> -> The framework comes with BLE discovery-based provisioning, a flow for tracking lost devices via crowd-sourced detection, as well as 'PAY-Go' rolling-code token functionality to support use cases for financed consumer devices or to transfer encrypted commands. -> -> AirLink was developed to help entrepreneurs get over non-differentiating IoT development hurdles quickly and focus on their unique application +Based on Flutter, the AirLink Mobile app is a communication app skeleton enabling gateway functionality i.e. end to end communication between AirLink Bluetooth® devices and an AirLink server. The app is intended to act as a base that takes care of device interactions, on which different customer experiences can be built by the businesses adopting AirLink. -This is the technical documentation for AirLink. If you are looking for an overview instead: -[https://enaccess.org/airlink/](https://enaccess.org/airlink/) +## Features -Here is a helpful guide for AirLink adopters: [Quick-start guide](AirLink%20Docs/Quick-start%20guide.md) +- Discovering AirLink devices +- Authorizing the gateway to use an AirLink device +- Device serialization and provisioning +- Data sync: gateway, device, and the server +- Generate PayG tokens +- Entering PayG tokens -And an end to end demo on how to get started in minutes: [AirLink demo video](https://youtu.be/OAEcQaUBIao) +## Screenshots -This documentation consists of the overview on this page, three sub pages on the three components of AirLink, the Quick-start guide above, and a page on integrating with PAYG software providers. + ---- +## Getting started +For help getting started with Flutter, view the [documentation](https://flutter.dev/). -### AirLink Components -AirLink proposes three components of which two are required at any given time. Each component has an open source library to get started with. -![Screenshot 2023-01-19 at 11.58.05 AM.png](AirLink%20Docs/AirLink%20Components.png) +For more detailed information on how to use the App, visit the [official documentation](https://airlinkdocs.enaccess.org/) -
- -**[AirLink Devices](AirLink%20Docs/AirLink%20Devices.md)**: *Nordic nRF firmware on [GitHub](https://github.com/EnAccess/AirLink-Devices)* - -
- -**[AirLink App](AirLink%20Docs/AirLink%20App.md)**: *a Flutter app on [GitHub](https://github.com/EnAccess/Airlink-App)* - -
- -**[AirLink Server](AirLink%20Docs/AirLink%20Server.md)**: A *[Demo server](https://airlink.enaccess.org) Hosted by EnAccess.org* -
- - ---- - -### AirLink Functional Highlights -Smartphone-gateway connectivity, an opinionated device lifecycle, a flow for lost/stolen devices and built-in PAYGO functionality are what set AirLink apart among open-source IoT frameworks. - -#### AirLink Data Layer -AirLink leverages Bluetooth and GSM to flow data from the device to the server via the app, and vice versa. Data is structured for minimum overhead for devices and plug-and-play adding of new device types without server/app redos. -![AirLink Data flow](AirLink%20Docs/Simusolar_Architecture_Diagram_-_IoT_Data_Flow.png) - -#### AirLink Devices Lifecycle -AirLink covers the full device lifecycle, with a complete path to -1. get devices registered in the server, -2. exchange data and location, and -3. control PAYGo functionality -![AirLink interactions during device manufacture, provisioning and use](AirLink%20Docs/IoT_Communications_and_Components_spec_-_App_Architecture.png) - -#### Finding Lost/Stolen AirLink Devices -AirLink 'community-sources' device security, anyone with an AirLink app (not from a particular adopter) can help find lost devices without sharing private data or compromising device PAYGo. AirLink apps automatically post information about unknown devices back to the AirLink server, where they can be forwarded to the lost and found repository hosted by EnAccess on it's AirLink server. Owners of the device can then get access to this information either through the manufacturer's AirLink server or the common lost and found server, with help from EnAccess. The default open source setup can also be edited to have a separate lost and found tenant on an adopter's own server. -![**AirLink Lost/Stolen Devices Flow**](AirLink%20Docs/AirLink_Unknown_Device_Flow.png) - -#### PAYGo: Internal or Integration with Solaris and Angaza -AirLink has built-in token generation, but also connects to external PAYGo Software providers. - -Solaris and Angaza are two major providers of PAYGo business software stacks. AirLink devices can exchange PAYGO tokens with Angaza and Solaris servers through the AirLink Data Layer, enabled by the AirLink Server out-of-the-box. - -The AirLink server recognizes the type of provider based on a server side attribute payg_type for the device, and connects with Angaza or Solaris servers to get the latest PAYGo token. This provides out-of-the-box integration for those devices that support Nexus Token or OpenPAYGO Token. ->[PayGo Options in AirLink](AirLink%20Docs/Connecting%20to%20Solaris%20or%20Angaza.md) - ---- - -### Related Resources -[Nexus Channel: Angaza's Inter-operability initiative](https://angaza.github.io/nexus-channel-models/resource_type_spec.html) - -[OCF: Open source connectivity standards that AirLink derives from](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwionv_ev7zyAhXM8uAKHbRED4oQFnoECAgQAQ&url=https%3A%2F%2Fopenconnectivity.org%2Fdeveloper%2Fspecifications%2F&usg=AOvVaw1qzAFKPKuOt-Sv9a1-V_jA) - -[OpenPAYGO Link: Wired inter-operability from Solaris/ EnAccess](https://github.com/EnAccess/OpenPAYGO-Link/tree/main/Documentation) - -[OpenPAYGO Metrics: GSM inter-operability from Solaris](https://github.com/openpaygo/metrics) - -[OpenPAYGO Token: Open Source PAYGO token reference design from Solaris/EnAccess](https://github.com/EnAccess/OpenPAYGO-Token) - -[CBOR: Memory-Efficient data arrays](http://cbor.io) - - ---- -**AirLink was developed by [Simusolar Inc](https://www.simusolar.com)** - -![https://www.simusolar.com](AirLink%20Docs/Simusolar_logo.png) - -**with support from [EnAccess](http://enaccess.org)** - -![ https://enaccess.org](AirLink%20Docs/logo.png) +## License +This project is under the [MIT License](https://github.com/kaykhahima/Airlink-App/blob/main/LICENSE "Project License") diff --git a/app/analysis_options.yaml b/analysis_options.yaml similarity index 100% rename from app/analysis_options.yaml rename to analysis_options.yaml diff --git a/app/android/.gitignore b/android/.gitignore similarity index 100% rename from app/android/.gitignore rename to android/.gitignore diff --git a/app/android/app/build.gradle b/android/app/build.gradle similarity index 100% rename from app/android/app/build.gradle rename to android/app/build.gradle diff --git a/app/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml similarity index 100% rename from app/android/app/src/debug/AndroidManifest.xml rename to android/app/src/debug/AndroidManifest.xml diff --git a/app/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml similarity index 100% rename from app/android/app/src/main/AndroidManifest.xml rename to android/app/src/main/AndroidManifest.xml diff --git a/app/android/app/src/main/java/org/enaccess/airlink/app/airlink/MainActivity.java b/android/app/src/main/java/org/enaccess/airlink/app/airlink/MainActivity.java similarity index 100% rename from app/android/app/src/main/java/org/enaccess/airlink/app/airlink/MainActivity.java rename to android/app/src/main/java/org/enaccess/airlink/app/airlink/MainActivity.java diff --git a/app/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml similarity index 100% rename from app/android/app/src/main/res/drawable-v21/launch_background.xml rename to android/app/src/main/res/drawable-v21/launch_background.xml diff --git a/app/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml similarity index 100% rename from app/android/app/src/main/res/drawable/launch_background.xml rename to android/app/src/main/res/drawable/launch_background.xml diff --git a/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/app/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml similarity index 100% rename from app/android/app/src/main/res/values-night/styles.xml rename to android/app/src/main/res/values-night/styles.xml diff --git a/app/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml similarity index 100% rename from app/android/app/src/main/res/values/styles.xml rename to android/app/src/main/res/values/styles.xml diff --git a/app/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml similarity index 100% rename from app/android/app/src/profile/AndroidManifest.xml rename to android/app/src/profile/AndroidManifest.xml diff --git a/app/android/build.gradle b/android/build.gradle similarity index 100% rename from app/android/build.gradle rename to android/build.gradle diff --git a/app/android/gradle.properties b/android/gradle.properties similarity index 100% rename from app/android/gradle.properties rename to android/gradle.properties diff --git a/app/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from app/android/gradle/wrapper/gradle-wrapper.properties rename to android/gradle/wrapper/gradle-wrapper.properties diff --git a/app/android/settings.gradle b/android/settings.gradle similarity index 100% rename from app/android/settings.gradle rename to android/settings.gradle diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 8f03dd4c..00000000 --- a/app/.gitignore +++ /dev/null @@ -1,45 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ -*.env - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.packages -.pub-cache/ -.pub/ -/build/ - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release diff --git a/app/README.md b/app/README.md deleted file mode 100644 index 535083c5..00000000 --- a/app/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# airlink - -Android App based on Flutter framework and the clean architecture pattern. -[Reference repo](https://github.com/EnAccess/Airlink-App) diff --git a/assets/images/screenshots/home - credentials page - airlink.jpg b/assets/images/screenshots/home - credentials page - airlink.jpg new file mode 100644 index 00000000..b55ca585 Binary files /dev/null and b/assets/images/screenshots/home - credentials page - airlink.jpg differ diff --git a/assets/images/screenshots/home - credentials page - angaza.jpg b/assets/images/screenshots/home - credentials page - angaza.jpg new file mode 100644 index 00000000..91982829 Binary files /dev/null and b/assets/images/screenshots/home - credentials page - angaza.jpg differ diff --git a/assets/images/screenshots/home - device list page - device details page - provisioning choices.jpg b/assets/images/screenshots/home - device list page - device details page - provisioning choices.jpg new file mode 100644 index 00000000..430d451c Binary files /dev/null and b/assets/images/screenshots/home - device list page - device details page - provisioning choices.jpg differ diff --git a/assets/images/screenshots/home - device list page - device details page - provisioning input with type expanded.jpg b/assets/images/screenshots/home - device list page - device details page - provisioning input with type expanded.jpg new file mode 100644 index 00000000..022dbdf3 Binary files /dev/null and b/assets/images/screenshots/home - device list page - device details page - provisioning input with type expanded.jpg differ diff --git a/assets/images/screenshots/home - device list page - device details page - provisioning input.jpg b/assets/images/screenshots/home - device list page - device details page - provisioning input.jpg new file mode 100644 index 00000000..2d88d59d Binary files /dev/null and b/assets/images/screenshots/home - device list page - device details page - provisioning input.jpg differ diff --git a/assets/images/screenshots/home - device list page - device details page - transfer payg token.jpg b/assets/images/screenshots/home - device list page - device details page - transfer payg token.jpg new file mode 100644 index 00000000..0c2f77d6 Binary files /dev/null and b/assets/images/screenshots/home - device list page - device details page - transfer payg token.jpg differ diff --git a/assets/images/screenshots/home - device list page - device details page.jpg b/assets/images/screenshots/home - device list page - device details page.jpg new file mode 100644 index 00000000..247ebd88 Binary files /dev/null and b/assets/images/screenshots/home - device list page - device details page.jpg differ diff --git a/assets/images/screenshots/home - device list page - no permissions.jpg b/assets/images/screenshots/home - device list page - no permissions.jpg new file mode 100644 index 00000000..2fcb835e Binary files /dev/null and b/assets/images/screenshots/home - device list page - no permissions.jpg differ diff --git a/assets/images/screenshots/home - device list page.jpg b/assets/images/screenshots/home - device list page.jpg new file mode 100644 index 00000000..084817c8 Binary files /dev/null and b/assets/images/screenshots/home - device list page.jpg differ diff --git a/assets/images/screenshots/home - payg token page - enter credit.jpg b/assets/images/screenshots/home - payg token page - enter credit.jpg new file mode 100644 index 00000000..b827eecc Binary files /dev/null and b/assets/images/screenshots/home - payg token page - enter credit.jpg differ diff --git a/assets/images/screenshots/home - payg token page - search for device.jpg b/assets/images/screenshots/home - payg token page - search for device.jpg new file mode 100644 index 00000000..335eb166 Binary files /dev/null and b/assets/images/screenshots/home - payg token page - search for device.jpg differ diff --git a/assets/images/screenshots/home - payg token page - token generated.jpg b/assets/images/screenshots/home - payg token page - token generated.jpg new file mode 100644 index 00000000..6274ec99 Binary files /dev/null and b/assets/images/screenshots/home - payg token page - token generated.jpg differ diff --git a/assets/images/screenshots/home - payg token page.jpg b/assets/images/screenshots/home - payg token page.jpg new file mode 100644 index 00000000..ba3e7920 Binary files /dev/null and b/assets/images/screenshots/home - payg token page.jpg differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361.html deleted file mode 100644 index 23350958..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361.html +++ /dev/null @@ -1,674 +0,0 @@ -AirLink App

AirLink App

The AirLink Mobile app is a communication app skeleton enabling gateway functionality i.e. end to end communication between AirLink Bluetooth® devices and an AirLink server. The app is intended to act as a base that takes care of device interactions, on which different customer experiences can be built by the businesses adopting AirLink.

Once the App Instance is authenticated to the tenant or customer by the application server transferring the provisioning codes, it can provision the phone as an AirLink gateway using the phone’s IMEI. This allows flexibility in lost phones by tying functionality and device ownership to an authenticated user rather than a particular phone. The app provides a UI for entering these codes until the application server is enabled.

The app can be used for the following purposes:

  1. Scanning and connecting to AirLink devices automatically
  1. Registering AirLink devices to the server securely
  1. Updating Pay-as-you-go status of the device securely
  1. Posting data from the device to the server with authentication
  1. Finding AirLink devices even when the app is not running, and posting their locations to the server

Architecture

Mobile App Framework built on Xamarin

Platform : Xamarin

App Development Framework

Xamarin multi-platform mobile app development framework

This is Microsoft's multi-platform mobile app development framework.

Access of Bluetooth hardware requires platform specific code in Xamarin, and the AirLink App is implemented only for Android at present but can be extended to iOS with minimal additional code.

We chose Xamarin as the development environment due to it’s relative maturity compared with Flutter and larger community in case of development challenges, however we believe that an AirLink spec app can also be implemented in Flutter using the Xamarin app as a reference for functionality.

Xamarin Forms adds another layer of UI abstraction, at some cost of speed. We use Xamarin Forms for UI pages and all pages are represented in XAML.

-

Xamarin uses a MVVM Architecture

Material Design:

Secure Storage:

Preparing for Release:

Next:

Microsoft introduced new development framework [ .NET MAUI ] for increased code sharing across platforms, by leveraging .NET layers. This Xamarin-forms app could be converted to .NET MAUI in 2022 using the migration scripts that Microsoft has promised to provide.

https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui

-

NuGet packages

  • Acr.UserDialogs (7.2.0.562)
  • ble.net(1.2.1)
  • NetStandard.Library (2.0.3)
  • Newtonsoft.Json (13.0.1)
  • PeterO.Cbor(4.5.0)
  • Plugin.BLE (2.1.2)
  • Rg.plugins.Popup (2.0.0.12)
  • sqlite-net (1.6.292)
  • sqlite-net-pcl (1.8.116)
  • Xamarin.CommunityToolkit (1.3.2)
  • Xamarin.Essentials (1.7.0)
  • Xamarin.Forms (5.0.0.2291)
  • Xamarin.Forms.PancakeView (2.3.0.763-beta)
  • Xamarin.Forms.Visual.Material (5.0.0.2291)
  • ZXing.Net.Mobile (3.1.0-beta2)
Xamarin Libraries leveraged to build the framework

Platform : Flutter

App Development Framework

Flutter multi-platform mobile app development framework

This is Google’s multi-platform mobile app development framework.

Flutter uses a layered Architecture

UI Design:

Flutter uses design widgets to make it easy to move between software that supports prototyping (e.g. Figma) and app development. This app uses the in-built Flutter widgets to display the app’s functionalities. However, they can be customized to fit the specific needs of the app, allowing you to create unique and engaging user experiences.

Flutter packages

To realize the Bluetooth requirements and other core functionality of AirLink, the AirLink app (gateway) uses the following packages:

  • line_icons: ^2.0.1
  • flutter_blue: ^0.8.0
  • cbor: ^5.0.1
  • convert: ^3.0.1
  • hex: ^0.2.0
  • flutter_secure_storage: ^5.0.2
  • flutter_dotenv: ^5.0.2
  • http: ^0.13.4
  • device_info_plus: ^3.2.2
  • flutter_barcode_scanner: ^2.0.0
  • location: ^4.3.0
  • sqflite: ^2.0.2
  • provider: ^6.0.3
  • app_settings: ^4.1.8
  • workmanager: ^0.5.0
  • permission_handler: ^10.2.0
  • timezone: ^0.9.0
Flutter Libraries leveraged to build the framework

Gateway Sync

The primary role of the AirLink gateway is to keep AirLink devices and the AirLink server in sync with respect to the state and operation of the device. There are three types of data sync:

  1. Server updates Device: Pay as you go credits after payment are the primary server update, along with client and configuration data
    AirLink Gateways or this App maps Server and Device properties
  1. Device posts time-series telemetry via primary gateway: Device posts various IoT data described in Nexus Resource Models relating to energy generation, consumption, battery use as well as productive output. In this case, the app actually masquerades as the device and posts data directly into the device's telemetry endpoint. This is enabled for the app via user input of device access token or in a production app, from the server pairing the gateway with devices via sharing of the access token automatically upon sale. Location is added by the gateway.

    -

  1. Neighborhood watch gateway posts device advertisement: If the app finds an AirLink device that is not registered as managed by that app, it will post it to the server as a 'piggy-back' onto it's own telemetry, which the server then snips out and decides to post to the original device or forward on to the lost devices database
    AirLink Lost/Stolen Devices Flow

-

To convert between server-friendly JSON and Bluetooth-service friendly CBOR/.NET objects, the Json.NET and PeterO.CBOR libraries are used. Since the list of properties can vary, we use collections and read the property types = device resource models such as “/batt” and “/temp” from the Bluetooth Descriptors.

Serializing Collections
Product p1 = new Product { Name = "Product 1", Price = 99.95m, ExpiryDate = new DateTime(2000, 12, 29, 0, 0, 0, DateTimeKind.Utc), }; Product p2 = new Product { Name = "Product 2", Price = 12.50m, ExpiryDate = new DateTime(2009, 7, 31, 0, 0, 0, DateTimeKind.Utc), }; List products = new List (); products.Add(p1); products.Add(p2); string json = JsonConvert.SerializeObject(products, Formatting.Indented);
https://www.newtonsoft.com/json/help/html/SerializingCollections.htm

App UX Interactions

User - App - Device/Server Interactions

Code Entry Points

ComponentCategoryFunction
BleDevice.csAirLink Device ModelPlatform IndependentDescribes typical AirLink Device and properties
AirLinkDevice.csPlatform IndependentDescribes server-side interpretation of AirLink resource models
BleServer.csAndroidThe gateway device always acts as a server, and does not advertise an AirLink Advertisement packet. This server
MainActivity.csAndroidApp Business LogicStart background services
BackgroundService.csAndroidServiceBLE Advt monitoring registered, even if app exits or phone reboots
HttpsEndpoint.csPlatform IndependentSelects appropriate AirLink server endpoint based on type of transmission
IDataStore.csPlatform IndependentImplements the database to store devices found
PostData.csPlatform IndependentSends Data to AirLink server and processes errors
ProfilePageViewModel.csPlatform IndependentUI Business LogicHandles all the entries that configure the App to connect to the AirLink server
BLEDeviceDetailsViewModel.csPlatform IndependentUI Business LogicHandles a single selected BLE device, sync properties, provision etc
BLEDevicesViewModel.csPlatform IndependentUI Business LogicHandles BLE devices scan page

App Screenshots

Configuring to connect to server

First Step: Enter the information from AirLink Server and Provision the phone as a gateway on the server.

If you enter the data correctly including the tenant administrator, the gateway will provision.

Connecting to AirLink devices

Second Step: Your phone is ready to sync devices. Discover AirLink devices in the vicinity!

Once you find a device, tapping on it simply brings up a list of Nexus resources available on the device

Authorizing the gateway to the device with the Access Token

Always, when connecting to a device, we recommend that the device lock it’s properties until the (default or server) access token is supplied. Authorizing the device supplies it with the default access token.

To authorize the device, simply tap the “Authorize” button. The default access token is already saved on both the App and the device. The device will then compare its access token with this default one. Once they match, the device will be successfully authorized.

Once authorized, you can now read data from the device. The App receives CBOR encoded data from the device, and decodes it into a JSON that is more amenable to posting to the server, and displays this for each property when tapped.

Serializing and provisioning a new device and preparing it for accepting tokens

If a device has just been manufactured, it may not yet be serialized, and be locked with a default access token. Enter this token, then press “Provision” to provision the device. The app will prompt for serial number entry.

Scan or enter by hand this serial number. This is a one-time activity after which the device will forever remember it’s serial number. However if the serial number exists on the server, the provisioning will fail.

As long as a unique serial number is supplied, the server accepts the device and returns a device-specific access token, which the app saves automatically to secure storage as well as displays in the access token field

Entering Tokens

Some properties are writeable, especially true for the PAYG token property, found in the “PC” resource. Tapping this will open a prompt to enter a token. During the Provisioning stage, the token generator on the server is initialized and matched to each device’s secret. Hence, the token can be obtained from the server automatically by syncing the phone, or by manually copying the PC_tkn property value and inputting by hand while the phone is offline.

PAYG tokens are single-use and must match the individual device. If these criteria are met, the device accepts the token.

Synchronizing data with the server over the lifetime of the device

All AirLink properties can be kept in sync between the server and the individual device simply by tapping the Sync button, or using the underlying function in an automated flow in your custom version of the app

The ability of the gateway to post device data to the server (”Client Scope”) as well as pull server data into the device (”Shared Scope”) generates a success message. All failure messages can be effectively debugged using the USB-connected debug mode of Visual Studio.


Copyright 2021 Simusolar Inc

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/1._Devices_view.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/1._Devices_view.jpg deleted file mode 100644 index 30307678..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/1._Devices_view.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.10_SUCCESS_-_Success_on_syncing_data.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.10_SUCCESS_-_Success_on_syncing_data.jpg deleted file mode 100644 index c0048603..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.10_SUCCESS_-_Success_on_syncing_data.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.1_READ_RESOURCE_-_Data_is_empty.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.1_READ_RESOURCE_-_Data_is_empty.jpg deleted file mode 100644 index 438aa9f0..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.1_READ_RESOURCE_-_Data_is_empty.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.2_AUTHORIZE_-_Device_authorized.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.2_AUTHORIZE_-_Device_authorized.jpg deleted file mode 100644 index 4d348675..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.2_AUTHORIZE_-_Device_authorized.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.3_READ_RESOURCE_-_Data_is_displayed.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.3_READ_RESOURCE_-_Data_is_displayed.jpg deleted file mode 100644 index 967750da..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.3_READ_RESOURCE_-_Data_is_displayed.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.4_PROVISION_-_Choice_for_serialization.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.4_PROVISION_-_Choice_for_serialization.jpg deleted file mode 100644 index 301c7fc1..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.4_PROVISION_-_Choice_for_serialization.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.5_TYPE_SERIAL_NUMBER.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.5_TYPE_SERIAL_NUMBER.jpg deleted file mode 100644 index 8bce11f8..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.5_TYPE_SERIAL_NUMBER.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.6_Device_provisioned_successfully.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.6_Device_provisioned_successfully.jpg deleted file mode 100644 index 4e8fbbe0..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.6_Device_provisioned_successfully.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.7_ENTER_PAYG_TOKEN.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.7_ENTER_PAYG_TOKEN.jpg deleted file mode 100644 index 353b2481..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.7_ENTER_PAYG_TOKEN.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.8_SUCCESS_-_Success_on_Token_entry.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.8_SUCCESS_-_Success_on_Token_entry.jpg deleted file mode 100644 index 30a3bb58..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.8_SUCCESS_-_Success_on_Token_entry.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.9_SYNC_-_Syncing_data.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.9_SYNC_-_Syncing_data.jpg deleted file mode 100644 index 947eb7d3..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2.9_SYNC_-_Syncing_data.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2._Resources_view.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2._Resources_view.jpg deleted file mode 100644 index 83ff2993..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/2._Resources_view.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/3.1_PROVISION_GATEWAY_-_Gateway_provisioned_successfully.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/3.1_PROVISION_GATEWAY_-_Gateway_provisioned_successfully.jpg deleted file mode 100644 index f4cf53ff..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/3.1_PROVISION_GATEWAY_-_Gateway_provisioned_successfully.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/3._Profile_view.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/3._Profile_view.jpg deleted file mode 100644 index 002dfe42..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/3._Profile_view.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/AirLink_Data_Flow.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/AirLink_Data_Flow.png deleted file mode 100644 index 772a969f..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/AirLink_Data_Flow.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/App_Architecture.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/App_Architecture.png deleted file mode 100644 index c98d34c8..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/App_Architecture.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c.html deleted file mode 100644 index 672e3f30..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c.html +++ /dev/null @@ -1,669 +0,0 @@ -Code Entry Points

Code Entry Points

ComponentCategoryFunction
BleDevice.csAirLink Device ModelPlatform IndependentDescribes typical AirLink Device and properties
AirLinkDevice.csPlatform IndependentDescribes server-side interpretation of AirLink resource models
BleServer.csAndroidThe gateway device always acts as a server, and does not advertise an AirLink Advertisement packet. This server
MainActivity.csAndroidApp Business LogicStart background services
BackgroundService.csAndroidServiceBLE Advt monitoring registered, even if app exits or phone reboots
HttpsEndpoint.csPlatform IndependentSelects appropriate AirLink server endpoint based on type of transmission
IDataStore.csPlatform IndependentImplements the database to store devices found
PostData.csPlatform IndependentSends Data to AirLink server and processes errors
ProfilePageViewModel.csPlatform IndependentUI Business LogicHandles all the entries that configure the App to connect to the AirLink server
BLEDeviceDetailsViewModel.csPlatform IndependentUI Business LogicHandles a single selected BLE device, sync properties, provision etc
BLEDevicesViewModel.csPlatform IndependentUI Business LogicHandles BLE devices scan page
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/AirLinkDevice cs 0d23e0ff7bc9477f810e139f9ebb47e8.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/AirLinkDevice cs 0d23e0ff7bc9477f810e139f9ebb47e8.html deleted file mode 100644 index 5b32b61c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/AirLinkDevice cs 0d23e0ff7bc9477f810e139f9ebb47e8.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLinkDevice.cs

AirLinkDevice.cs

FunctionDescribes server-side interpretation of AirLink resource models
CategoryPlatform Independent
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BLEDeviceDetailsViewModel cs d92249a982f14ecd9f5c67351b3c3bcc.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BLEDeviceDetailsViewModel cs d92249a982f14ecd9f5c67351b3c3bcc.html deleted file mode 100644 index b1b19b54..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BLEDeviceDetailsViewModel cs d92249a982f14ecd9f5c67351b3c3bcc.html +++ /dev/null @@ -1,669 +0,0 @@ -BLEDeviceDetailsViewModel.cs

BLEDeviceDetailsViewModel.cs

FunctionHandles a single selected BLE device, sync properties, provision etc
CategoryPlatform IndependentUI Business Logic
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BLEDevicesViewModel cs 9d7be5a6e7934032bd8d6cfa6f3e206b.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BLEDevicesViewModel cs 9d7be5a6e7934032bd8d6cfa6f3e206b.html deleted file mode 100644 index 3c6ee1de..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BLEDevicesViewModel cs 9d7be5a6e7934032bd8d6cfa6f3e206b.html +++ /dev/null @@ -1,669 +0,0 @@ -BLEDevicesViewModel.cs

BLEDevicesViewModel.cs

FunctionHandles BLE devices scan page
CategoryPlatform IndependentUI Business Logic
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BackgroundService cs 8d7199a1f2364fef9fbb5778e87a935d.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BackgroundService cs 8d7199a1f2364fef9fbb5778e87a935d.html deleted file mode 100644 index bd7f179a..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BackgroundService cs 8d7199a1f2364fef9fbb5778e87a935d.html +++ /dev/null @@ -1,669 +0,0 @@ -BackgroundService.cs

BackgroundService.cs

FunctionBLE Advt monitoring registered, even if app exits or phone reboots
CategoryAndroidService
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BleDevice cs a938d0cb100c46839ce279fc2cbb91d3.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BleDevice cs a938d0cb100c46839ce279fc2cbb91d3.html deleted file mode 100644 index 5c630de4..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BleDevice cs a938d0cb100c46839ce279fc2cbb91d3.html +++ /dev/null @@ -1,669 +0,0 @@ -BleDevice.cs

BleDevice.cs

FunctionDescribes typical AirLink Device and properties
CategoryAirLink Device ModelPlatform Independent
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BleServer cs 39761621ae624983bbe9017713e921df.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BleServer cs 39761621ae624983bbe9017713e921df.html deleted file mode 100644 index 6084b1ef..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/BleServer cs 39761621ae624983bbe9017713e921df.html +++ /dev/null @@ -1,669 +0,0 @@ -BleServer.cs

BleServer.cs

FunctionThe gateway device always acts as a server, and does not advertise an AirLink Advertisement packet. This server
CategoryAndroid
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/HttpsEndpoint cs abd5d9e235e24f33b527270fb41604d8.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/HttpsEndpoint cs abd5d9e235e24f33b527270fb41604d8.html deleted file mode 100644 index a2624609..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/HttpsEndpoint cs abd5d9e235e24f33b527270fb41604d8.html +++ /dev/null @@ -1,669 +0,0 @@ -HttpsEndpoint.cs

HttpsEndpoint.cs

FunctionSelects appropriate AirLink server endpoint based on type of transmission
CategoryPlatform Independent
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/IDataStore cs 63b452de37a5459282de9ada665ab929.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/IDataStore cs 63b452de37a5459282de9ada665ab929.html deleted file mode 100644 index 28e95c43..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/IDataStore cs 63b452de37a5459282de9ada665ab929.html +++ /dev/null @@ -1,669 +0,0 @@ -IDataStore.cs

IDataStore.cs

FunctionImplements the database to store devices found
CategoryPlatform Independent
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/MainActivity cs 871f71c5b2244b5489d723895340c099.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/MainActivity cs 871f71c5b2244b5489d723895340c099.html deleted file mode 100644 index b8e10082..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/MainActivity cs 871f71c5b2244b5489d723895340c099.html +++ /dev/null @@ -1,669 +0,0 @@ -MainActivity.cs

MainActivity.cs

FunctionStart background services
CategoryAndroidApp Business Logic
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/PostData cs 1a95eb19d13c4e7288744ef2ade59967.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/PostData cs 1a95eb19d13c4e7288744ef2ade59967.html deleted file mode 100644 index ba1c6d3d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/PostData cs 1a95eb19d13c4e7288744ef2ade59967.html +++ /dev/null @@ -1,669 +0,0 @@ -PostData.cs

PostData.cs

FunctionSends Data to AirLink server and processes errors
CategoryPlatform Independent
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/ProfilePageViewModel cs c161a3712fdf449cb45da4a0f8230f66.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/ProfilePageViewModel cs c161a3712fdf449cb45da4a0f8230f66.html deleted file mode 100644 index 37aeb5ba..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Code Entry Points 810cd8d8da84461b9236bc53dca13a1c/ProfilePageViewModel cs c161a3712fdf449cb45da4a0f8230f66.html +++ /dev/null @@ -1,669 +0,0 @@ -ProfilePageViewModel.cs

ProfilePageViewModel.cs

FunctionHandles all the entries that configure the App to connect to the AirLink server
CategoryPlatform IndependentUI Business Logic
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Arch_Open-Source_App_Architecture.jpeg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Arch_Open-Source_App_Architecture.jpeg deleted file mode 100644 index 1f505dc9..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Arch_Open-Source_App_Architecture.jpeg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture-2 1.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture-2 1.png deleted file mode 100644 index ea50c4a3..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture-2 1.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture-2.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture-2.png deleted file mode 100644 index d6598079..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture-2.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture.png deleted file mode 100644 index b176f00f..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/IoT_Communications_and_Components_spec_-_App_Architecture.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/MVVMPattern.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/MVVMPattern.png deleted file mode 100644 index 87e4ab82..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/MVVMPattern.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae.html deleted file mode 100644 index bb198e83..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae.html +++ /dev/null @@ -1,676 +0,0 @@ -Visual Studio setup and to Git library instructions (Mac)

Visual Studio setup and to Git library instructions (Mac)

Download Xamarin - Visual Studio for Mac (~2+GB). If you want to build your application for iOS, you will also need Xcode (12+GB), which Visual studio will prompt you to install once it is done installing itself.

Setting up the GitHub repository:

In Github Airlink repository: Copy the HTTPS clone link:

-

In the visual studio menu, instead of creating a new project from the startup popup screen, go to Menu and select Clone Repository...

-

Paste the link copied from Github

-

That's it! Visual studio will create the project. You might need to allow it to download additional components as required.

-

To post updates to the project, you will need to request developer access from EnAccess as well as setup a personal access token.

A more secure GitHub Experience
As the next step in the journey towards a more secure GitHub experience, beginning November 13th, GitHub and Visual Studio will no longer accept account passwords when authenticating with the REST API and will instead require using token-based authentication (e.g., personal access or OAuth),
https://devblogs.microsoft.com/visualstudio/a-more-secure-github-experience/?WT.mc_id=modinfra-0000-abartolo

-

We recommend that you use GitHub Desktop to push changes rather than VisualStudio for Mac due to ease of use:

GitHub Desktop
Checkout branches with pull requests and view CI statuses See all open pull requests for your repositories and check them out as if they were a local branch, even if they're from upstream branches or forks. See which pull requests pass commit status checks, too!
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjPipmGwbbzAhVIUxoKHRIfAcUQFnoECBgQAQ&url=https%3A%2F%2Fdesktop.github.com%2F&usg=AOvVaw3Q4aArCExy0qKbKQYeMfD4

-

For Apple chip (M1 and above) users, setting up the debugger:

Note: to access Bluetooth and run the AirLink App, you will still need an actual phone to debug

Setting Up an M1 Mac for Xamarin Development
Who just upgraded their MacBook after 8 years?!?! This guy!!! Let's set it up for mobile development with Xamarin for iOS & Android development in C#. That is right, I finally decided to go all in on an M1 MacBook Air (8-Core GPU, 512GB SSD, 16GB RAM) thanks to the $500 "credit" from participating in the DTK program.
https://montemagno.com/setting-up-an-m1-mac-for-xamarin-development/

-

\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.52.11_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.52.11_AM.png deleted file mode 100644 index 15e1a814..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.52.11_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.52.50_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.52.50_AM.png deleted file mode 100644 index f0c6eb62..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.52.50_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.53.38_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.53.38_AM.png deleted file mode 100644 index 86888ecc..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.53.38_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.53.55_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.53.55_AM.png deleted file mode 100644 index 2e060d60..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/Visual Studio setup and to Git library instruction 1c38135f4b6b4e3db7ed0d2b3a30ccae/Screen_Shot_2021-10-04_at_10.53.55_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/syo9FlQN.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/syo9FlQN.jpg deleted file mode 100644 index 0b8132b4..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink App ab448f056ad94eb097874d756342f361/syo9FlQN.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154.html deleted file mode 100644 index 582c3d11..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154.html +++ /dev/null @@ -1,728 +0,0 @@ -AirLink Devices

AirLink Devices

Preface: A note on Bluetooth® SIG requirements, Nov 2021

Our understanding is that the Bluetooth® Special Interest Group requires that any entity branding and selling devices enabled with Bluetooth® must register as a member with the SIG at bluetooth.com, as well as declare the product and the Bluetooth® component being used. This is true for resellers, distributors, and all commercial sales. The final selling brand and product name must be separately declared by the seller, even if the component containing Bluetooth® has been declared by the manufacturer.

Although membership has a free tier, each declaration as of this writing costs $8,000, set to rise to $9,600 in 2022. Multiple products using the same Bluetooth® component (one with an approved QDID) can be added to a new or existing declaration, however if the underlying Bluetooth® component is changed even within the same product, a new declaration must be filed with the full fee. Repercussions of not filing declarations may include shipments of the product being held by customs agents, from a global reference list maintained at bluetooth.com.

This requirement as we understand only applies for sold products, not prototypes.

Please note that this note is not official Bluetooth® SIG communication, but rather it is our understanding of the requirements set by the Bluetooth® SIG as of this writing.


Development Reference

Device Emulator App

To enable quick end to end testing of AirLink, we have designed a single-page Android-native app that imitates an AirLink device with temperature, battery and device configuration resources. The source code of this app as well as an Android-9 executable APK is saved in the AirLink Devices Github repository under the Device Simulator folder.

Device Simulator app running on an Android-9 phone

This app allows you to:

  1. Pair with the main AirLink (gateway) app on another phone
  1. Go through the provisioning flow and initialize the token generation flow
  1. Send data to the server via the AirLink gateway app
  1. Accept tokens from the server - although there is no nexus token decoder running in the app, so it will accept any token

The source code is meant as a reference when designing embedded firmware that can match AirLink’s provisioning and data exchange flows. With the emulator app, anyone can test AirLink without requiring hardware, simply by downloading it onto an Android phone, installing the AirLink gateway app on another phone, and logging on to the demo/custom tenant on the AirLink server.

The source code is not meant to actually process tokens, but could act as a starting point if Android Airlink devices are being developed.

Nordic Device Firmware

Nordic makes the most popular set of Bluetooth chips, and we have developed example firmware to support provisioning, data as well as full Nexus token capability. This firmware is meant to act as a reference for developing custom bluetooth hardware that supports AirLink and also to act as a testbed while developing a custom AirLink gateway app.

Nordic firmware reference source code is available on the AirLink Devices github repository.

A Nordic DVK-BLE kit running AirLink demo firmware
Programming the Nordic kit with AirLink demo firmware

BLE Range Testing

The Simusolar team tested how far we could find an AirLink device from in presence of walls and with clear line of sight.

AirLink Devices adopt the Open Connectivity Foundation's Resource Model bridging guidelines for Bluetooth LE devices. A key feature of this bridge is that several OCF Resources are wrapped into one Bluetooth Service to make GET/POST requests efficient. We leverage CBOR for this encapsulation.


-

-

AirLink Protocol Design

Resource model design

-

The OCF bridging recommendation covers GATT properties well, however it does not cover Advertising nor does it cover a resource enumerator explicitly.

We used the following additional assumptions to design our resource models:

  1. Bluetooth gateways from any vendor adopting AirLink should be able to detect other AirLink devices, to ensure interoperability as well as crowd-sourced stolen asset detection. Hence the advertising packet needs to be open format with sufficient information to identify the device and it's basic state
  1. Extended advertising should not be required to transmit the required data, limiting the overall size to 26 bytes
  1. The advertisement data packet as well as other GATT service characteristics must be CBOR encoded lists of Resource Model properties. This is designed for compatibility with the Nexus Channel effort. The GATT characteristics should be in 2-D array format, whereas the Advertisement packet will be a single dimensional byte array with positionally separated properties to conserve data packet length. The gateway device then converts this into a 2-D CBOR array and includes location information before transmitting to the server.
  1. Location is to be appended by the gateway device before transmission to the server, as non-gateway devices are unlikely to have GSM/GPS to locate themselves. However, devices can store locations provided to them by gateway devices to enable a location history within the device if required
  1. Pay-as-you-go credits are sent as Nexus Keycode Tokens, with planned future support for OpenPAYGO Tokens - this is to ensure interoperability with existing keypad/remote enabled devices as well as independence from time-stamp synchronization between server/gateway/end device.
  1. We cover the following general use cases here:
    1. Required: Asset locatability by any gateway via advertisement
    1. Required: Resource enumerator service
    1. Required: Pay-as-you-go credits - we postulate that this does not require manufacturer specific authorization because OpenPAYG Tokens are already securely encrypted between a server and device
    1. Self-provisioning as supported by Thingsboard.io servers
    1. Optional: Power use and Productive Output data logging

Device Discovery Services

  1. The advertisement packet is a compressed resource always readable from the device. We designate it as an 'Implicit GET'. -A gateway device reads this resource while scanning for devices (before a connection is established), and decompresses it to create a standard-format resource model compatible with AirLink Server. It adds items such as resource type, interface type etc as required by OCF but also timezone, location lat-lon where the device was discovered and the manufacturer ID which is in the bluetooth advertisement header
  1. The /res enumerator resource in AirLink is not included explicitly but each bluetooth property has the corresponding resource endpoint in its ‘Descriptor’ field, removing the need for an explicit descriptor resource while still allowing gateways to discover resources available in a device
  1. To discover how a device gets added to the AirLink server, check the AirLink Server page!

AirLink Advertisement /advt

Resource PropertyOctetsQualifiersNx ResourceDescription
“mac”6DefaultAirLink Advt Resource 1.0Bluetooth MAC ID Automatically available in BLE Advertisement. Sent to AirLink server as advt_mac converted to all-caps text e.g. BD:DD:EE:FF:AA:BB
Array Cbor header1CBOR HeaderArray declaration header of 8 elements
BLE Advt resource version "rv"3Float (uint16_t)Read-OnlyAirLink Advt Resource 1.010 (major/minor digits), 2 Bytes = 2^(8*2) = 65536 i.e from 0-65535 (0xFFFF) The format of the data version according to the protocol used. First integer is major number, second minor
Device Fault Status "ft", cbor encoded1Integer (uint8_t)Read-OnlyScope: Time-seriesAirLink Advt Resource 1.0From 0-23. Any Universal error that should be executed with priority. -Error 0 = Unprovisioned, -Error 1 = Lost track of PAYG credit (battery off), -Error 2 = Battery Fault -Error 3 = Output Overcurrent/Overtemp - details in ftd field in timeseries data -Error 23 = Lost device (e.g. when device doesn't find other Bluetooth devices from it's 'pack'. -Errors 4-22 are manufacturer specific
Device Airlink ID "aid" + Cbor header 4 bytes5OptionalRead-OnlyAirLink Advt Resource 1.02^(8*4) = 4,294,967,296 numeric device ids. The ID of the device that resides in manufacturer registry. AirLink uses the BLE mac ID to uniquely identify an unknown device so this is only a human readable option
Timestamp last pulled from gateway or network "gts"5Byte ArrayRead-OnlyAirLink Advt Resource 1.0Linux epoch format, expires in Y2035
Device provisioning status "pst"1Integer (uint8_t)Read-OnlyScope: Time-seriesAirLink Advt Resource 1.02^8 = 256 i.e from 0-255 (0xFF) The status of the device according to manufacturer definition. It can be -1-unserialized, -2-unprovisioned, -3-disabled, -4-recall, -5-stolen, -6-9-Manufacturer custom -The range is from 1-9. If not supported then 0
Device FW Ver "fv"2Integer (uint8_t)Read-OnlyAirLink Advt Resource 1.02^8 = 256 i.e from 0-255 (0xFF). Shows the version of the hardware firmware. It ranges from 01-99. If not supported then 0
Device PayG Credit Remaining "cr"5Read-OnlyScope: Time-seriesAirLink Advt Resource 1.02^(8*2) = 65536 i.e from 0-65535 (0xFFFF). The value remaining for the device to OFF. Range is from 01-9999 -If non payg device then 0
Expected RSSI at 1 meter “s1”2Integer (uint8_t)Read-OnlyScope: ClientAirLink Advt Resource 1.0Expected signal strength of this Bluetooth device for a receiver (phone / other Bluetooth device) placed at 1 meter, used for distance estimation. -Value is in negative dB (e.g. a value of s1=70 is considered to be -70dB) -Calibrated during device prototyping, and adjusted by each device for any changes in it’s transmit power with respect to the transmit power at calibration time (e.g. +2dB transmit power during advertising ⇒ s1=68, if 0dB transmit power at calibration time had yielded an RSSI of -70dB).
Spare1AirLink Advt Resource 1.0Can be used for Manufacturer specific information, for example type of asset, data about status etc
Dummy “dmy”OptionalAirLink Advt Resource 1.0Some Bluetooth chips require fixed-length advts, this dummy can make up for variation in other properties lengths
Device Manufacturer ID "mid" added by gateway deviceInteger (uint16_t)MandatoryRead-OnlyScope: Time-seriesAirLink Advt Resource 1.0From Device advertisement - all manufacturers and end brands of BLE products need to be registered with Bluetooth SIG, as well as EnAccess as tenants to use this service

Location Resource /loc

Resource PropertyOctetsQualifiersNx ResourceDescription
Array Cbor header1CBOR HeaderArray declaration header of 8 elements
Timestamp last pulled from gateway or network "gts"5Byte ArrayRead-OnlyLocation Resource 1.0Linux epoch format, expires in Y2035
Gateway Manufacturer ID "gmid" added by gateway device2Integer (uint16_t)MandatoryRead-OnlyLocation Resource 1.0How can we prevent one manufacturer from messing up the other's IDs?
Gateway AirLink ID "gid" added by gateway device5Integer (uint32_t)Location Resource 1.0
Longitude "ln" added by gateway deviceStringLocation Resource 1.0Added by gateway device reporting location of non-gateway device, 10 octets
Latitude "lt" added by gatway deviceStringLocation Resource 1.0Added by gateway device reporting location of non-gateway device, 10 octets
Location accuracy "la" added by gateway deviceStringLocation Resource 1.0Added by gateway device reporting location of non-gateway device, 6 octets
Device Signal strength "dss" added by gateway deviceStringLocation Resource 1.0Added by gateway device reporting the exactly location of the device from a gateway expressed in dBm
Timeseries Timestamp “ts”4Read-OnlyAirLink PUE Timeseries 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyAirLink PUE Timeseries 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalAirLink PUE Timeseries 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths

-

Device Config Service

  1. We presume and recommend self-provisioning, although this resource can also be written to if the device firmware permits.
  1. Gateways can be updated with a list of these configurations for downstream devices
  1. The command resource is a passthrough for building a custom encrypted application links e.g. Nexus Channel
  1. On connection, the gateway must write the server access token property with the correct value for that device, upon which the rest of the properties are opened by the device for communication. This is expected to be the programmed behavior of AirLink devices

-

AirLink Device Provisioning Resource /dcfg

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Device Provisioning resource version "rv"3Read-OnlyAirLink Device Provisioning 1.010 (major/minor digits)
Device ID "did" + Cbor header 20 bytes21MandatoryRead-WriteAirLink Device Provisioning 1.0UTF-8 coded device serial numbers
AirLink ID "aid" + Cbor header 4 bytes5MandatoryRead-WriteAirLink Device Provisioning 1.02^(8*4) = 4,294,967,296 numeric device ids. The ID of the device that maps 1:1 in manufacturer registry to serial number
PayG Units accepted "pul"10MandatoryRead-OnlyScope: ClientStringUnencryptedAirLink Device Provisioning 1.0CSV list of acceptable Units e.g. "l" for liters, "h,d" for hours and days
Payg Token starting code "psc"5Scope: SharedWrite-OnlyAirLink Device Provisioning 1.01-day token, https://github.com/EnAccess/OpenPAYGO-HW https://github.com/angaza/nexus-embedded
PayG Unit "pu"1EncryptedMandatoryRead-WriteScope: ClientScope: SharedStringAirLink Device Provisioning 1.036^1 The unit of the PayG update, it can be minutes, hours, days, months and years. [m-minutes, h-hours, d- days, M-months, Y-years]
Provisioning Status "pst"1IntegerMandatoryRead-WriteScope: ClientUnencryptedAirLink Device Provisioning 1.0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Server access Token "sat"21EncryptedMandatoryScope: SharedStringWrite-OnlyAirLink Device Provisioning 1.0Thinsboard.io has a 20-char device authentication token unique to each device. During device provisioning, this token is written to the device, permanently attaching the device to the server. The token is never transmitted again.
Current Unix Time “cut”4Write-OnlyAirLink Device Provisioning 1.0This property can be used to sync or correct system time.
Productive Output Set Limit "opmax"4IntegerRead-WriteScope: ClientScope: SharedAirLink Device Provisioning 1.0Max brightness, max water flow etc set for safety / environmental reasons / other reasons
Dummy “dmy”OptionalAirLink Device Provisioning 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths

AirLink Client Provisioning Resource /ccfg

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Client Provisioning resource version "rv"3Read-Only10 (major/minor digits)
Customer Name -"cn"16OptionalRead-WriteScope: ClientScope: SharedStringUnencryptedAirLink Client Provisioning 1.0Requested by customers for lost device reporting. This writes the customer name to a device with the maximum of 16 characters with space and special characters inclusive.
Customer's Phone "cp" -16OptionalRead-WriteScope: ClientScope: SharedStringUnencryptedAirLink Client Provisioning 1.0Requested by customers for stolen device reporting (needs a workflow to collect this number explicitly from client in addition to regular lead number). Assign the mobile number of the customer to a device. With maximum of 16 character including + and country code number. This is for security purpose
Readable ID "rid" + Cbor header 2 bytes6MandatoryRead-WriteScope: ClientScope: SharedAirLink Client Provisioning 1.02^(8*4) = 4,294,967,296 numeric device ids or payment reference or any number that device should display
Provisioning Status "pst"1IntegerMandatoryRead-WriteScope: ClientUnencryptedAirLink Client Provisioning 1.0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Server Auth Token "sat" encryption overhead20EncryptedMandatoryScope: SharedStringWrite-OnlyAirLink Client Provisioning 1.0Thinsboard.io has a 20-char device authentication token unique to each device

Nexus Command Resource /nxc

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
COSE command "cmd"120EncryptedWrite-OnlyAirLink Nexus Command 1.0Upto 120 bytes for Nexus Channel Passthrough commands

PUE Use Service

We envision 2 primary usages of a productive use asset:

  1. PAYG control: This is a generic PAYG packet intended to cover all known PAYG use cases for BLE assets
  1. Use data (time-series): This is a generic IoT Data packet designed to cover both battery-less and battery-based devices
  1. Gateways can accumulate data for/from several devices

-

PAYG Credit Resource /pc

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor map header1Read-Writeencapsulating the rest of the properties
AirLink PAYG resource version "rv"3Read-Only10 (major/minor digits)
Timeseries History remaining “tsh”2OptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Device PayG Credit Remaining "re"5IntegerMandatoryRead-WriteScope: Time-seriesPAYG Credit 1.0should be The value remaining for the device to OFF. - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token
Mode "mo"1Read-WriteScope: Shared AttrPAYG Credit 1.0mode of device i.e. leading/following etc - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token
PayG Token "tkn"5EncryptedIntegerScope: Shared AttrWrite-OnlyPAYG Credit 1.0https://github.com/EnAccess/OpenPAYGO-HW. Accepted by device only if valid. No read token to ensure unsecured gateways cannot act maliciously.
Last Added PayG Credit "lcr"2IntegerOptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Historical last PayG credit update duration. Range is from 01-9999
Timestamp at which PayG remaining was calculated "pts"6DateTimeOptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Linux epoch format, expires in Y2035. The Last date and time when the PayG update was fetched from the Server to client [Mobile phone or other communication device]
Timestamp of last PAYG Update to device "lts"6DateTimeOptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Linux epoch format, expires in Y2035, readonly - Historical last PayG update Timestamp
Current Local Time "lt"6DateTimeOptionalRead-WriteScope: Time-seriesPAYG Credit 1.0Linux epoch format, expires in Y2035. The current time when updating the device with PayG update. We do not recommend using this to calculate PAYG use, because it could be used to trick the device into more tokens. This is for non-PAYG purposes
Timeseries Timestamp “ts”4Read-OnlyAirLink PUE Timeseries 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyAirLink PUE Timeseries 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalAirLink PUE Timeseries 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths

AirLink Temperature Resource /temp

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor map header1Read-WriteTEMP 1.0encapsulating the rest of the properties
TEMP resource version "rv"3Read-OnlyTEMP 1.010 (major/minor digits)
Timeseries History remaining “tsh”2OptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Current Temperature "temp"5MandatoryRead-OnlyScope: Time-seriesTEMP 1.00-128C in 1/2 degree increments
Max Temperature "tmax"5OptionalRead-OnlyScope: Time-seriesTEMP 1.00-128C in 1/2 degree increments
Max Temperature "tmin"5OptionalRead-OnlyScope: Time-seriesTEMP 1.00-128C in 1/2 degree increments
Temperature upper limit threshold "hlim"5OptionalRead-WriteScope: Client AttrTEMP 1.00-128C in 1/2 degree increments
Temperature lower limit threshold "llim"5OptionalRead-WriteScope: Client AttrTEMP 1.00-128C in 1/2 degree increments
Timeseries Timestamp “ts”4Read-OnlyTEMP 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyTEMP 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalTEMP 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths

AirLink Productive Use Resource /pu

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
AirLink TimeSeries resource version "rv"4Read-OnlyAirLink PUE Timeseries 1.01.0
Timeseries History remaining “tsh”2OptionalRead-OnlyAirLink PUE Timeseries 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Time Series Data Format "df"1IntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0following DF in OpenPAYGO Metrics (in case device has GSM). 0 if not used
Productive Equipment Type "pue"2IntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0e.g. "Surface Pump", "Borehole Pump", "Fishing Light" etc preregistered types
BatteryDevice "bat"1IntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0Yes/No Yes = it has an internal or system level battery
Device Fault "ft"1EnumIntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0Same as Advertisement packet
Device Fault Data "ftd"2ByteArrayIntegerOptionalAirLink PUE Timeseries 1.0Can contain details of error e.g. over-pressure error could contain max pressure measured
seconds since data measured "ss"6MandatoryRead-OnlyAirLink PUE Timeseries 1.0seconds passed since last /pu data pull by any gateway device - presumption is that gateway transmits the data to server. Useful for devices that store a rolling history of data
Productive Output Primary Metric "op"4IntegerOptional Grp 1Read-OnlyAirLink PUE Timeseries 1.0e.g. Water output for pumps in Litres/hour
Productive Output Primary Set Limit ”opl”4IntegerOptional Grp 1Read-WriteAirLink PUE Timeseries 1.0The limit of primary product Output -Eg. 100L/H for the pump that can go to 500 L/H
Productive Output Secondary Metric "os"4IntegerOptional Grp 1Read-OnlyAirLink PUE Timeseries 1.0e.g. Pressure for pumps in kPa (1kPa = 10cm water or 0.1 bar)
Productive Output Secondary Set Limit “osl”4IntegerOptional Grp 1Read-WriteAirLink PUE Timeseries 1.0The limit of secondary product Output -Eg. Could be a pressure of 5kPa for the pump that can preduce the pressure of 10kPa
Timeseries Timestamp “ts”4Read-OnlyAirLink PUE Timeseries 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyAirLink PUE Timeseries 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalAirLink PUE Timeseries 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths

Energy Consumption Resource /eout

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Timeseries History remaining “tsh”2OptionalRead-Onlyenergy consumption 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Voltage (milliVolts) "vo"4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0Output voltage depending on data format registered by manufacturer
Current (centiAmps) "ao"4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0Output current depending on data format registered by manufacturer
Current Limit (centiAmps) "aol"4IntegerOptionalRead-Writeenergy consumption 1.0Current limit setting
Power (deciWatts) "po"4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0Output power depending on data format registered by manufacturer
eo4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0'Energy consumed' in deciwatt-hours(Wh / 10). Computed over a time window defined by egs and egp
eos4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0'Energy consumed start'. Minutes in the past (minutes ago) when the reported eg value began accumulation
eop4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0'Energy consumed period'. Minutes since egs over which the value of eg was accumulated. For example, if egs is 60, and egp is 60, the value of eg represents the watt-hours generated during the past hour
Timeseries Timestamp “ts”4Read-Onlyenergy consumption 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-Onlyenergy consumption 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”Optionalenergy consumption 1.0Some Bluetooth chips require fixed-length Characteristics, this dummy can make up for variation in other properties lengths

Energy Generation Resource /ein

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Voltage (milliVolts) "vi"4IntegerOptionalRead-Onlyenergy generation 1.0Input voltage depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Current (centiAmps) "ai"4IntegerOptionalRead-Writeenergy generation 1.0Input current depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Power (deciWatts) "pi"4IntegerOptionalRead-Onlyenergy generation 1.0Input power depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Type of source "st"1EnumIntegerMandatoryRead-Writeenergy generation 1.0Type of power generator. Known types - -0 = Disconnected/None - autodetected -1 = DC Solar - autodetected -2 = AC Grid/microgrid (as a source) - autodetected -3 = DC Grid/microgrid (as a source) - from gateway -4 = AC Wind power - from gateway -5 = DC Wind power - from gateway -6 = AC Hydro power - from gateway -7 = DC Hydro power - from gateway -8 = AC Petrol/Diesel Generator - from gateway -100 = Unknown - from gateway
eg4IntegerOptionalRead-Onlyenergy generation 1.0'Energy generated' in deciwatt-hours(Wh / 10). Computed over a time window defined by egs and egp.
egs4IntegerOptionalRead-Onlyenergy generation 1.0'Energy generation start'. Minutes in the past (minutes ago) when the reported eg value began accumulation.
egp4IntegerOptionalRead-Onlyenergy generation 1.0'Energy generation period'. Minutes since egs over which the value of eg was accumulated. For example, if egs is 60, and egp is 60, the value of eg represents the watt-hours generated during the past hour.

Battery Resource /batt

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Timeseries History remaining “tsh”2OptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Bat Voltage mV "vb"4IntegerOptional Grp 3Read-OnlyScope: Time-seriesBattery 1.0Only for Battery Device
Bat charging or discharge current mA "ib"4IntegerOptional Grp 3Read-OnlyScope: Time-seriesBattery 1.0Only for Battery Device
Bat Pct "cp"3IntegerOptional Grp 3Read-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, charge percentage
Charging Status "cs"1EnumOptional Grp 3Scope: Time-seriesBattery 1.00 = No Data -1 = Charging - fast -2 = Charging - slow / trickle -3 = Discharging
Alert Threshold (%) "th"3IntegerOptional Grp 3Read-WriteScope: Time-seriesBattery 1.0
Low battery "lb"1BoolOptional Grp 3Scope: Time-seriesBattery 1.00: cp>th -1: cp<th
LastChargeCycle BatPctMin "cmin"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, Could be Infrequently reported
LastChargeCycle BatPctMax "cmax"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, Could be Infrequently reported
LastChargeCycle ChgTime "tc"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0in minutes, Only for Battery Device, Could be Infrequently reported
LastChargeCycle ChgUnits (mAh) "qc"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0in milliamp-hours, Only for Battery Device, Could be Infrequently reported
Bat Health "bh"1IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, Could be Infrequently reported
Timeseries Timestamp “ts”4Read-OnlyBattery 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyBattery 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalBattery 1.0Some Bluetooth chips require fixed-length Characteristics, this dummy can make up for variation in other properties lengths

-

\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6.html deleted file mode 100644 index 1f168e60..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6.html +++ /dev/null @@ -1,685 +0,0 @@ -AirLink Advertisement /advt

AirLink Advertisement /advt

Resource PropertyOctetsQualifiersNx ResourceDescription
“mac”6DefaultAirLink Advt Resource 1.0Bluetooth MAC ID Automatically available in BLE Advertisement. Sent to AirLink server as advt_mac converted to all-caps text e.g. BD:DD:EE:FF:AA:BB
Array Cbor header1CBOR HeaderArray declaration header of 8 elements
BLE Advt resource version "rv"3Float (uint16_t)Read-OnlyAirLink Advt Resource 1.010 (major/minor digits), 2 Bytes = 2^(8*2) = 65536 i.e from 0-65535 (0xFFFF) The format of the data version according to the protocol used. First integer is major number, second minor
Device Fault Status "ft", cbor encoded1Integer (uint8_t)Read-OnlyScope: Time-seriesAirLink Advt Resource 1.0From 0-23. Any Universal error that should be executed with priority. -Error 0 = Unprovisioned, -Error 1 = Lost track of PAYG credit (battery off), -Error 2 = Battery Fault -Error 3 = Output Overcurrent/Overtemp - details in ftd field in timeseries data -Error 23 = Lost device (e.g. when device doesn't find other Bluetooth devices from it's 'pack'. -Errors 4-22 are manufacturer specific
Device Airlink ID "aid" + Cbor header 4 bytes5OptionalRead-OnlyAirLink Advt Resource 1.02^(8*4) = 4,294,967,296 numeric device ids. The ID of the device that resides in manufacturer registry. AirLink uses the BLE mac ID to uniquely identify an unknown device so this is only a human readable option
Timestamp last pulled from gateway or network "gts"5Byte ArrayRead-OnlyAirLink Advt Resource 1.0Linux epoch format, expires in Y2035
Device provisioning status "pst"1Integer (uint8_t)Read-OnlyScope: Time-seriesAirLink Advt Resource 1.02^8 = 256 i.e from 0-255 (0xFF) The status of the device according to manufacturer definition. It can be -1-unserialized, -2-unprovisioned, -3-disabled, -4-recall, -5-stolen, -6-9-Manufacturer custom -The range is from 1-9. If not supported then 0
Device FW Ver "fv"2Integer (uint8_t)Read-OnlyAirLink Advt Resource 1.02^8 = 256 i.e from 0-255 (0xFF). Shows the version of the hardware firmware. It ranges from 01-99. If not supported then 0
Device PayG Credit Remaining "cr"5Read-OnlyScope: Time-seriesAirLink Advt Resource 1.02^(8*2) = 65536 i.e from 0-65535 (0xFFFF). The value remaining for the device to OFF. Range is from 01-9999 -If non payg device then 0
Expected RSSI at 1 meter “s1”2Integer (uint8_t)Read-OnlyScope: ClientAirLink Advt Resource 1.0Expected signal strength of this Bluetooth device for a receiver (phone / other Bluetooth device) placed at 1 meter, used for distance estimation. -Value is in negative dB (e.g. a value of s1=70 is considered to be -70dB) -Calibrated during device prototyping, and adjusted by each device for any changes in it’s transmit power with respect to the transmit power at calibration time (e.g. +2dB transmit power during advertising ⇒ s1=68, if 0dB transmit power at calibration time had yielded an RSSI of -70dB).
Spare1AirLink Advt Resource 1.0Can be used for Manufacturer specific information, for example type of asset, data about status etc
Dummy “dmy”OptionalAirLink Advt Resource 1.0Some Bluetooth chips require fixed-length advts, this dummy can make up for variation in other properties lengths
Device Manufacturer ID "mid" added by gateway deviceInteger (uint16_t)MandatoryRead-OnlyScope: Time-seriesAirLink Advt Resource 1.0From Device advertisement - all manufacturers and end brands of BLE products need to be registered with Bluetooth SIG, as well as EnAccess as tenants to use this service
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Array Cbor header e55d76ecfdc04d31a25486566f87c5a4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Array Cbor header e55d76ecfdc04d31a25486566f87c5a4.html deleted file mode 100644 index 7bc88d70..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Array Cbor header e55d76ecfdc04d31a25486566f87c5a4.html +++ /dev/null @@ -1,669 +0,0 @@ -Array Cbor header

Array Cbor header

DescriptionArray declaration header of 8 elements
Nx Resource
Octets1
QualifiersCBOR Header
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/BLE Advt resource version rv 3300859a95894961a8470b3453d443a2.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/BLE Advt resource version rv 3300859a95894961a8470b3453d443a2.html deleted file mode 100644 index 2dc172b4..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/BLE Advt resource version rv 3300859a95894961a8470b3453d443a2.html +++ /dev/null @@ -1,669 +0,0 @@ -BLE Advt resource version "rv"

BLE Advt resource version "rv"

Description10 (major/minor digits), 2 Bytes = 2^(8*2) = 65536 i.e from 0-65535 (0xFFFF) The format of the data version according to the protocol used. First integer is major number, second minor
Nx ResourceAirLink Advt Resource 1.0
Octets3
QualifiersFloat (uint16_t)Read-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Airlink ID aid + Cbor header 4 bytes 7ca986675c6749f883879ecd9eb2df2d.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Airlink ID aid + Cbor header 4 bytes 7ca986675c6749f883879ecd9eb2df2d.html deleted file mode 100644 index 61157819..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Airlink ID aid + Cbor header 4 bytes 7ca986675c6749f883879ecd9eb2df2d.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Airlink ID "aid" + Cbor header 4 bytes

Device Airlink ID "aid" + Cbor header 4 bytes

Description2^(8*4) = 4,294,967,296 numeric device ids. The ID of the device that resides in manufacturer registry. AirLink uses the BLE mac ID to uniquely identify an unknown device so this is only a human readable option
Nx ResourceAirLink Advt Resource 1.0
Octets5
QualifiersOptionalRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device FW Ver fv f53ffaf4fd02499d86ff064f5eafa20a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device FW Ver fv f53ffaf4fd02499d86ff064f5eafa20a.html deleted file mode 100644 index 568a361c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device FW Ver fv f53ffaf4fd02499d86ff064f5eafa20a.html +++ /dev/null @@ -1,669 +0,0 @@ -Device FW Ver "fv"

Device FW Ver "fv"

Description2^8 = 256 i.e from 0-255 (0xFF). Shows the version of the hardware firmware. It ranges from 01-99. If not supported then 0
Nx ResourceAirLink Advt Resource 1.0
Octets2
QualifiersInteger (uint8_t)Read-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Fault Status ft , cbor encoded b637848925174c2f94e0ea4acc4b9449.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Fault Status ft , cbor encoded b637848925174c2f94e0ea4acc4b9449.html deleted file mode 100644 index 412df551..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Fault Status ft , cbor encoded b637848925174c2f94e0ea4acc4b9449.html +++ /dev/null @@ -1,675 +0,0 @@ -Device Fault Status "ft", cbor encoded

Device Fault Status "ft", cbor encoded

DescriptionFrom 0-23. Any Universal error that should be executed with priority. -Error 0 = Unprovisioned, -Error 1 = Lost track of PAYG credit (battery off), -Error 2 = Battery Fault -Error 3 = Output Overcurrent/Overtemp - details in ftd field in timeseries data -Error 23 = Lost device (e.g. when device doesn't find other Bluetooth devices from it's 'pack'. -Errors 4-22 are manufacturer specific
Nx ResourceAirLink Advt Resource 1.0
Octets1
QualifiersInteger (uint8_t)Read-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Manufacturer ID mid added by gateway device acfe0c925f804a8aad26ad862ad95fd7.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Manufacturer ID mid added by gateway device acfe0c925f804a8aad26ad862ad95fd7.html deleted file mode 100644 index 14f3a9da..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device Manufacturer ID mid added by gateway device acfe0c925f804a8aad26ad862ad95fd7.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Manufacturer ID "mid" added by gateway device

Device Manufacturer ID "mid" added by gateway device

DescriptionFrom Device advertisement - all manufacturers and end brands of BLE products need to be registered with Bluetooth SIG, as well as EnAccess as tenants to use this service
Nx ResourceAirLink Advt Resource 1.0
Octets
QualifiersInteger (uint16_t)MandatoryRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device PayG Credit Remaining cr 219ebb02100042ba85d2ba7d9535bab0.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device PayG Credit Remaining cr 219ebb02100042ba85d2ba7d9535bab0.html deleted file mode 100644 index fdaf9c1e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device PayG Credit Remaining cr 219ebb02100042ba85d2ba7d9535bab0.html +++ /dev/null @@ -1,670 +0,0 @@ -Device PayG Credit Remaining "cr"

Device PayG Credit Remaining "cr"

Description2^(8*2) = 65536 i.e from 0-65535 (0xFFFF). The value remaining for the device to OFF. Range is from 01-9999 -If non payg device then 0
Nx ResourceAirLink Advt Resource 1.0
Octets5
QualifiersRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device provisioning status pst 6029f410b6794aa8bd50c65882cb3b39.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device provisioning status pst 6029f410b6794aa8bd50c65882cb3b39.html deleted file mode 100644 index fbf2ad95..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Device provisioning status pst 6029f410b6794aa8bd50c65882cb3b39.html +++ /dev/null @@ -1,676 +0,0 @@ -Device provisioning status "pst"

Device provisioning status "pst"

Description2^8 = 256 i.e from 0-255 (0xFF) The status of the device according to manufacturer definition. It can be -1-unserialized, -2-unprovisioned, -3-disabled, -4-recall, -5-stolen, -6-9-Manufacturer custom -The range is from 1-9. If not supported then 0
Nx ResourceAirLink Advt Resource 1.0
Octets1
QualifiersInteger (uint8_t)Read-OnlyScope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Dummy \342\200\234dmy\342\200\235 89e7c829f8264605ba8b52a2bd937bc4.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Dummy \342\200\234dmy\342\200\235 89e7c829f8264605ba8b52a2bd937bc4.html" deleted file mode 100644 index dd7fbc5f..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Dummy \342\200\234dmy\342\200\235 89e7c829f8264605ba8b52a2bd937bc4.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

DescriptionSome Bluetooth chips require fixed-length advts, this dummy can make up for variation in other properties lengths
Nx ResourceAirLink Advt Resource 1.0
Octets
QualifiersOptional
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Expected RSSI at 1 meter \342\200\234s1\342\200\235 86e8807c2505478393bcf6892e81149b.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Expected RSSI at 1 meter \342\200\234s1\342\200\235 86e8807c2505478393bcf6892e81149b.html" deleted file mode 100644 index 79daf7c5..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Expected RSSI at 1 meter \342\200\234s1\342\200\235 86e8807c2505478393bcf6892e81149b.html" +++ /dev/null @@ -1,671 +0,0 @@ -Expected RSSI at 1 meter “s1”

Expected RSSI at 1 meter “s1”

DescriptionExpected signal strength of this Bluetooth device for a receiver (phone / other Bluetooth device) placed at 1 meter, used for distance estimation. -Value is in negative dB (e.g. a value of s1=70 is considered to be -70dB) -Calibrated during device prototyping, and adjusted by each device for any changes in it’s transmit power with respect to the transmit power at calibration time (e.g. +2dB transmit power during advertising ⇒ s1=68, if 0dB transmit power at calibration time had yielded an RSSI of -70dB).
Nx ResourceAirLink Advt Resource 1.0
Octets2
QualifiersInteger (uint8_t)Read-OnlyScope: Client
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Spare 6fd3e0665e9945d6b14d89308f48cb34.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Spare 6fd3e0665e9945d6b14d89308f48cb34.html deleted file mode 100644 index 8a5948dd..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Spare 6fd3e0665e9945d6b14d89308f48cb34.html +++ /dev/null @@ -1,669 +0,0 @@ -Spare

Spare

DescriptionCan be used for Manufacturer specific information, for example type of asset, data about status etc
Nx ResourceAirLink Advt Resource 1.0
Octets1
Qualifiers
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Timestamp last pulled from gateway or network gts 349bc00bca614803a4bd8c8f16730d55.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Timestamp last pulled from gateway or network gts 349bc00bca614803a4bd8c8f16730d55.html deleted file mode 100644 index 689ed360..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/Timestamp last pulled from gateway or network gts 349bc00bca614803a4bd8c8f16730d55.html +++ /dev/null @@ -1,669 +0,0 @@ -Timestamp last pulled from gateway or network "gts"

Timestamp last pulled from gateway or network "gts"

DescriptionLinux epoch format, expires in Y2035
Nx ResourceAirLink Advt Resource 1.0
Octets5
QualifiersByte ArrayRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/\342\200\234mac\342\200\235 5d9ddee6bf4743cdbf100731be502f11.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/\342\200\234mac\342\200\235 5d9ddee6bf4743cdbf100731be502f11.html" deleted file mode 100644 index eefe4b6a..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Advertisement advt 6db1187bc0a44fb4ab9d5ab0f86aa9e6/\342\200\234mac\342\200\235 5d9ddee6bf4743cdbf100731be502f11.html" +++ /dev/null @@ -1,669 +0,0 @@ -“mac”

“mac”

DescriptionBluetooth MAC ID Automatically available in BLE Advertisement. Sent to AirLink server as advt_mac converted to all-caps text e.g. BD:DD:EE:FF:AA:BB
Nx ResourceAirLink Advt Resource 1.0
Octets6
QualifiersDefault
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b.html deleted file mode 100644 index fe2f7e71..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b.html +++ /dev/null @@ -1,671 +0,0 @@ -AirLink Client Provisioning Resource /ccfg

AirLink Client Provisioning Resource /ccfg

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Client Provisioning resource version "rv"3Read-Only10 (major/minor digits)
Customer Name -"cn"16OptionalRead-WriteScope: ClientScope: SharedStringUnencryptedAirLink Client Provisioning 1.0Requested by customers for lost device reporting. This writes the customer name to a device with the maximum of 16 characters with space and special characters inclusive.
Customer's Phone "cp" -16OptionalRead-WriteScope: ClientScope: SharedStringUnencryptedAirLink Client Provisioning 1.0Requested by customers for stolen device reporting (needs a workflow to collect this number explicitly from client in addition to regular lead number). Assign the mobile number of the customer to a device. With maximum of 16 character including + and country code number. This is for security purpose
Readable ID "rid" + Cbor header 2 bytes6MandatoryRead-WriteScope: ClientScope: SharedAirLink Client Provisioning 1.02^(8*4) = 4,294,967,296 numeric device ids or payment reference or any number that device should display
Provisioning Status "pst"1IntegerMandatoryRead-WriteScope: ClientUnencryptedAirLink Client Provisioning 1.0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Server Auth Token "sat" encryption overhead20EncryptedMandatoryScope: SharedStringWrite-OnlyAirLink Client Provisioning 1.0Thinsboard.io has a 20-char device authentication token unique to each device
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Client Provisioning resource version rv 65c09a2bcdde481f82b7150ae927214f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Client Provisioning resource version rv 65c09a2bcdde481f82b7150ae927214f.html deleted file mode 100644 index 03c4e394..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Client Provisioning resource version rv 65c09a2bcdde481f82b7150ae927214f.html +++ /dev/null @@ -1,669 +0,0 @@ -Client Provisioning resource version "rv"

Client Provisioning resource version "rv"

Octets3
Description10 (major/minor digits)
Nx Resource
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Customer Name cn b40c28d9d2d4487594a55d599aedf9c2.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Customer Name cn b40c28d9d2d4487594a55d599aedf9c2.html deleted file mode 100644 index 6ddc0c01..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Customer Name cn b40c28d9d2d4487594a55d599aedf9c2.html +++ /dev/null @@ -1,671 +0,0 @@ -Customer Name -"cn"

Customer Name -"cn"

Octets16
DescriptionRequested by customers for lost device reporting. This writes the customer name to a device with the maximum of 16 characters with space and special characters inclusive.
Nx ResourceAirLink Client Provisioning 1.0
QualifiersOptionalRead-WriteScope: ClientScope: SharedStringUnencrypted
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Customer's Phone cp b8dcecde1ac34b85985c719d306960b3.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Customer's Phone cp b8dcecde1ac34b85985c719d306960b3.html deleted file mode 100644 index a589e0b7..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Customer's Phone cp b8dcecde1ac34b85985c719d306960b3.html +++ /dev/null @@ -1,671 +0,0 @@ -Customer's Phone "cp" -

Customer's Phone "cp" -

Octets16
DescriptionRequested by customers for stolen device reporting (needs a workflow to collect this number explicitly from client in addition to regular lead number). Assign the mobile number of the customer to a device. With maximum of 16 character including + and country code number. This is for security purpose
Nx ResourceAirLink Client Provisioning 1.0
QualifiersOptionalRead-WriteScope: ClientScope: SharedStringUnencrypted
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Provisioning Status pst a49216c878c344afbc0c2667b7668d78.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Provisioning Status pst a49216c878c344afbc0c2667b7668d78.html deleted file mode 100644 index f23ae40e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Provisioning Status pst a49216c878c344afbc0c2667b7668d78.html +++ /dev/null @@ -1,669 +0,0 @@ -Provisioning Status "pst"

Provisioning Status "pst"

Octets1
DescriptionReflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Nx ResourceAirLink Client Provisioning 1.0
QualifiersIntegerMandatoryRead-WriteScope: ClientUnencrypted
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Readable ID rid + Cbor header 2 bytes 3c87d788f1a2440fb9feca89a5fde8ce.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Readable ID rid + Cbor header 2 bytes 3c87d788f1a2440fb9feca89a5fde8ce.html deleted file mode 100644 index 0eafa533..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Readable ID rid + Cbor header 2 bytes 3c87d788f1a2440fb9feca89a5fde8ce.html +++ /dev/null @@ -1,669 +0,0 @@ -Readable ID "rid" + Cbor header 2 bytes

Readable ID "rid" + Cbor header 2 bytes

Octets6
Description2^(8*4) = 4,294,967,296 numeric device ids or payment reference or any number that device should display
Nx ResourceAirLink Client Provisioning 1.0
QualifiersMandatoryRead-WriteScope: ClientScope: Shared
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Server Auth Token sat encryption overhead d94622ed5d244857a70713faad55e7fd.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Server Auth Token sat encryption overhead d94622ed5d244857a70713faad55e7fd.html deleted file mode 100644 index 00d90c43..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/Server Auth Token sat encryption overhead d94622ed5d244857a70713faad55e7fd.html +++ /dev/null @@ -1,669 +0,0 @@ -Server Auth Token "sat" encryption overhead

Server Auth Token "sat" encryption overhead

Octets20
DescriptionThinsboard.io has a 20-char device authentication token unique to each device
Nx ResourceAirLink Client Provisioning 1.0
QualifiersEncryptedMandatoryScope: SharedStringWrite-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/cbor header ab227a9cd78d48fa9a54754a4a48e84c.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/cbor header ab227a9cd78d48fa9a54754a4a48e84c.html deleted file mode 100644 index 7233a74b..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Client Provisioning Resource ccfg 4e42d04a6e094f69ae26b34ebcd6b48b/cbor header ab227a9cd78d48fa9a54754a4a48e84c.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0.html deleted file mode 100644 index 2ae8ace9..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink Device Provisioning Resource /dcfg

AirLink Device Provisioning Resource /dcfg

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Device Provisioning resource version "rv"3Read-OnlyAirLink Device Provisioning 1.010 (major/minor digits)
Device ID "did" + Cbor header 20 bytes21MandatoryRead-WriteAirLink Device Provisioning 1.0UTF-8 coded device serial numbers
AirLink ID "aid" + Cbor header 4 bytes5MandatoryRead-WriteAirLink Device Provisioning 1.02^(8*4) = 4,294,967,296 numeric device ids. The ID of the device that maps 1:1 in manufacturer registry to serial number
PayG Units accepted "pul"10MandatoryRead-OnlyScope: ClientStringUnencryptedAirLink Device Provisioning 1.0CSV list of acceptable Units e.g. "l" for liters, "h,d" for hours and days
Payg Token starting code "psc"5Scope: SharedWrite-OnlyAirLink Device Provisioning 1.01-day token, https://github.com/EnAccess/OpenPAYGO-HW https://github.com/angaza/nexus-embedded
PayG Unit "pu"1EncryptedMandatoryRead-WriteScope: ClientScope: SharedStringAirLink Device Provisioning 1.036^1 The unit of the PayG update, it can be minutes, hours, days, months and years. [m-minutes, h-hours, d- days, M-months, Y-years]
Provisioning Status "pst"1IntegerMandatoryRead-WriteScope: ClientUnencryptedAirLink Device Provisioning 1.0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Server access Token "sat"21EncryptedMandatoryScope: SharedStringWrite-OnlyAirLink Device Provisioning 1.0Thinsboard.io has a 20-char device authentication token unique to each device. During device provisioning, this token is written to the device, permanently attaching the device to the server. The token is never transmitted again.
Current Unix Time “cut”4Write-OnlyAirLink Device Provisioning 1.0This property can be used to sync or correct system time.
Productive Output Set Limit "opmax"4IntegerRead-WriteScope: ClientScope: SharedAirLink Device Provisioning 1.0Max brightness, max water flow etc set for safety / environmental reasons / other reasons
Dummy “dmy”OptionalAirLink Device Provisioning 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/AirLink ID aid + Cbor header 4 bytes ea0a346a946143c08a8a7b77b44aaeec.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/AirLink ID aid + Cbor header 4 bytes ea0a346a946143c08a8a7b77b44aaeec.html deleted file mode 100644 index d8ace72c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/AirLink ID aid + Cbor header 4 bytes ea0a346a946143c08a8a7b77b44aaeec.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink ID "aid" + Cbor header 4 bytes

AirLink ID "aid" + Cbor header 4 bytes

Octets5
Description2^(8*4) = 4,294,967,296 numeric device ids. The ID of the device that maps 1:1 in manufacturer registry to serial number
Nx ResourceAirLink Device Provisioning 1.0
QualifiersMandatoryRead-Write
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Current Unix Time \342\200\234cut\342\200\235 cb7eb5b94cc5481fb3f0d05b5a1869b7.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Current Unix Time \342\200\234cut\342\200\235 cb7eb5b94cc5481fb3f0d05b5a1869b7.html" deleted file mode 100644 index 3a8248e9..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Current Unix Time \342\200\234cut\342\200\235 cb7eb5b94cc5481fb3f0d05b5a1869b7.html" +++ /dev/null @@ -1,669 +0,0 @@ -Current Unix Time “cut”

Current Unix Time “cut”

Octets4
DescriptionThis property can be used to sync or correct system time.
Nx ResourceAirLink Device Provisioning 1.0
QualifiersWrite-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Device ID did + Cbor header 20 bytes 541c7d00ae504a349ec38ba7c69a17ec.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Device ID did + Cbor header 20 bytes 541c7d00ae504a349ec38ba7c69a17ec.html deleted file mode 100644 index fd1c8e03..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Device ID did + Cbor header 20 bytes 541c7d00ae504a349ec38ba7c69a17ec.html +++ /dev/null @@ -1,669 +0,0 @@ -Device ID "did" + Cbor header 20 bytes

Device ID "did" + Cbor header 20 bytes

Octets21
DescriptionUTF-8 coded device serial numbers
Nx ResourceAirLink Device Provisioning 1.0
QualifiersMandatoryRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Device Provisioning resource version rv 4c41fb84e9454e7d9ba87595503f19e1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Device Provisioning resource version rv 4c41fb84e9454e7d9ba87595503f19e1.html deleted file mode 100644 index 7e4c6435..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Device Provisioning resource version rv 4c41fb84e9454e7d9ba87595503f19e1.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Provisioning resource version "rv"

Device Provisioning resource version "rv"

Octets3
Description10 (major/minor digits)
Nx ResourceAirLink Device Provisioning 1.0
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Dummy \342\200\234dmy\342\200\235 7cb48430315a4648aa84dbfcdd5af5b3.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Dummy \342\200\234dmy\342\200\235 7cb48430315a4648aa84dbfcdd5af5b3.html" deleted file mode 100644 index 3f8b980f..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Dummy \342\200\234dmy\342\200\235 7cb48430315a4648aa84dbfcdd5af5b3.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

Octets
DescriptionSome Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
Nx ResourceAirLink Device Provisioning 1.0
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/PayG Unit pu d3728e98334347dcbd9c540e1234cf12.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/PayG Unit pu d3728e98334347dcbd9c540e1234cf12.html deleted file mode 100644 index 5149734e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/PayG Unit pu d3728e98334347dcbd9c540e1234cf12.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Unit "pu"

PayG Unit "pu"

Octets1
Description36^1 The unit of the PayG update, it can be minutes, hours, days, months and years. [m-minutes, h-hours, d- days, M-months, Y-years]
Nx ResourceAirLink Device Provisioning 1.0
QualifiersEncryptedMandatoryRead-WriteScope: ClientScope: SharedString
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/PayG Units accepted pul 3ad6872e946b48afb174adb242475539.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/PayG Units accepted pul 3ad6872e946b48afb174adb242475539.html deleted file mode 100644 index 41cfbfe3..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/PayG Units accepted pul 3ad6872e946b48afb174adb242475539.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Units accepted "pul"

PayG Units accepted "pul"

Octets10
DescriptionCSV list of acceptable Units e.g. "l" for liters, "h,d" for hours and days
Nx ResourceAirLink Device Provisioning 1.0
QualifiersMandatoryRead-OnlyScope: ClientStringUnencrypted
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Payg Token starting code psc 3fcd4d6cd9bb4938b271f1eabddb20dc.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Payg Token starting code psc 3fcd4d6cd9bb4938b271f1eabddb20dc.html deleted file mode 100644 index 367eb64e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Payg Token starting code psc 3fcd4d6cd9bb4938b271f1eabddb20dc.html +++ /dev/null @@ -1,669 +0,0 @@ -Payg Token starting code "psc"

Payg Token starting code "psc"

Octets5
Description1-day token, https://github.com/EnAccess/OpenPAYGO-HW https://github.com/angaza/nexus-embedded
Nx ResourceAirLink Device Provisioning 1.0
QualifiersScope: SharedWrite-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Productive Output Set Limit opmax c2635593d4044cf3af06d016dbc9e632.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Productive Output Set Limit opmax c2635593d4044cf3af06d016dbc9e632.html deleted file mode 100644 index d071af2b..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Productive Output Set Limit opmax c2635593d4044cf3af06d016dbc9e632.html +++ /dev/null @@ -1,669 +0,0 @@ -Productive Output Set Limit "opmax"

Productive Output Set Limit "opmax"

Octets4
DescriptionMax brightness, max water flow etc set for safety / environmental reasons / other reasons
Nx ResourceAirLink Device Provisioning 1.0
QualifiersIntegerRead-WriteScope: ClientScope: Shared
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Provisioning Status pst 7be5f4d3d7034d368c4ab235b9412b2e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Provisioning Status pst 7be5f4d3d7034d368c4ab235b9412b2e.html deleted file mode 100644 index d6f71c75..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Provisioning Status pst 7be5f4d3d7034d368c4ab235b9412b2e.html +++ /dev/null @@ -1,669 +0,0 @@ -Provisioning Status "pst"

Provisioning Status "pst"

Octets1
DescriptionReflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Nx ResourceAirLink Device Provisioning 1.0
QualifiersIntegerMandatoryRead-WriteScope: ClientUnencrypted
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Server access Token sat f966836748d34a69b9360a0b395429c4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Server access Token sat f966836748d34a69b9360a0b395429c4.html deleted file mode 100644 index fe2a1585..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/Server access Token sat f966836748d34a69b9360a0b395429c4.html +++ /dev/null @@ -1,669 +0,0 @@ -Server access Token "sat"

Server access Token "sat"

Octets21
DescriptionThinsboard.io has a 20-char device authentication token unique to each device. During device provisioning, this token is written to the device, permanently attaching the device to the server. The token is never transmitted again.
Nx ResourceAirLink Device Provisioning 1.0
QualifiersEncryptedMandatoryScope: SharedStringWrite-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/cbor header dd1f43fb38e14b0f996452acc1853232.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/cbor header dd1f43fb38e14b0f996452acc1853232.html deleted file mode 100644 index 7f903c15..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Device Provisioning Resource dcfg e44a180df02e444b86f74aa33201bed0/cbor header dd1f43fb38e14b0f996452acc1853232.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880.html deleted file mode 100644 index 184119f0..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880.html +++ /dev/null @@ -1,673 +0,0 @@ -AirLink Productive Use Resource /pu

AirLink Productive Use Resource /pu

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
AirLink TimeSeries resource version "rv"4Read-OnlyAirLink PUE Timeseries 1.01.0
Timeseries History remaining “tsh”2OptionalRead-OnlyAirLink PUE Timeseries 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Time Series Data Format "df"1IntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0following DF in OpenPAYGO Metrics (in case device has GSM). 0 if not used
Productive Equipment Type "pue"2IntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0e.g. "Surface Pump", "Borehole Pump", "Fishing Light" etc preregistered types
BatteryDevice "bat"1IntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0Yes/No Yes = it has an internal or system level battery
Device Fault "ft"1EnumIntegerMandatoryRead-OnlyAirLink PUE Timeseries 1.0Same as Advertisement packet
Device Fault Data "ftd"2ByteArrayIntegerOptionalAirLink PUE Timeseries 1.0Can contain details of error e.g. over-pressure error could contain max pressure measured
seconds since data measured "ss"6MandatoryRead-OnlyAirLink PUE Timeseries 1.0seconds passed since last /pu data pull by any gateway device - presumption is that gateway transmits the data to server. Useful for devices that store a rolling history of data
Productive Output Primary Metric "op"4IntegerOptional Grp 1Read-OnlyAirLink PUE Timeseries 1.0e.g. Water output for pumps in Litres/hour
Productive Output Primary Set Limit ”opl”4IntegerOptional Grp 1Read-WriteAirLink PUE Timeseries 1.0The limit of primary product Output -Eg. 100L/H for the pump that can go to 500 L/H
Productive Output Secondary Metric "os"4IntegerOptional Grp 1Read-OnlyAirLink PUE Timeseries 1.0e.g. Pressure for pumps in kPa (1kPa = 10cm water or 0.1 bar)
Productive Output Secondary Set Limit “osl”4IntegerOptional Grp 1Read-WriteAirLink PUE Timeseries 1.0The limit of secondary product Output -Eg. Could be a pressure of 5kPa for the pump that can preduce the pressure of 10kPa
Timeseries Timestamp “ts”4Read-OnlyAirLink PUE Timeseries 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyAirLink PUE Timeseries 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalAirLink PUE Timeseries 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/AirLink TimeSeries resource version rv 1cb4ed7cf7564b1fa53409e7dd5c460a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/AirLink TimeSeries resource version rv 1cb4ed7cf7564b1fa53409e7dd5c460a.html deleted file mode 100644 index b8c83fb3..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/AirLink TimeSeries resource version rv 1cb4ed7cf7564b1fa53409e7dd5c460a.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink TimeSeries resource version "rv"

AirLink TimeSeries resource version "rv"

Octets4
Description1.0
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/BatteryDevice bat 600363d8bae2473d9dc64ae40ebd22ad.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/BatteryDevice bat 600363d8bae2473d9dc64ae40ebd22ad.html deleted file mode 100644 index b20cac0e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/BatteryDevice bat 600363d8bae2473d9dc64ae40ebd22ad.html +++ /dev/null @@ -1,669 +0,0 @@ -BatteryDevice "bat"

BatteryDevice "bat"

Octets1
DescriptionYes/No Yes = it has an internal or system level battery
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerMandatoryRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Device Fault Data ftd e17ec1a2e17e4d90a04dafba6392fb72.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Device Fault Data ftd e17ec1a2e17e4d90a04dafba6392fb72.html deleted file mode 100644 index 86237d7a..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Device Fault Data ftd e17ec1a2e17e4d90a04dafba6392fb72.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Fault Data "ftd"

Device Fault Data "ftd"

Octets2
DescriptionCan contain details of error e.g. over-pressure error could contain max pressure measured
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersByteArrayIntegerOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Device Fault ft 7b90f1b0f09f4a5cb07f42c5e4158b73.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Device Fault ft 7b90f1b0f09f4a5cb07f42c5e4158b73.html deleted file mode 100644 index ae384c1d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Device Fault ft 7b90f1b0f09f4a5cb07f42c5e4158b73.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Fault "ft"

Device Fault "ft"

Octets1
DescriptionSame as Advertisement packet
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersEnumIntegerMandatoryRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Dummy \342\200\234dmy\342\200\235 18c0dcdbd6bb484497cf623c82cc49b4.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Dummy \342\200\234dmy\342\200\235 18c0dcdbd6bb484497cf623c82cc49b4.html" deleted file mode 100644 index 297ec8ee..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Dummy \342\200\234dmy\342\200\235 18c0dcdbd6bb484497cf623c82cc49b4.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

Octets
DescriptionSome Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Equipment Type pue 61da2e444af54906bc2162a99847796f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Equipment Type pue 61da2e444af54906bc2162a99847796f.html deleted file mode 100644 index 7cfeb632..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Equipment Type pue 61da2e444af54906bc2162a99847796f.html +++ /dev/null @@ -1,669 +0,0 @@ -Productive Equipment Type "pue"

Productive Equipment Type "pue"

Octets2
Descriptione.g. "Surface Pump", "Borehole Pump", "Fishing Light" etc preregistered types
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerMandatoryRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Primary Metric op 467f88bd5f44421682468daeb2f57029.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Primary Metric op 467f88bd5f44421682468daeb2f57029.html deleted file mode 100644 index d0eb45d2..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Primary Metric op 467f88bd5f44421682468daeb2f57029.html +++ /dev/null @@ -1,669 +0,0 @@ -Productive Output Primary Metric "op"

Productive Output Primary Metric "op"

Octets4
Descriptione.g. Water output for pumps in Litres/hour
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerOptional Grp 1Read-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Primary Set Limit \342\200\235opl\342\200\235 3faf4861153049c9af692ec2d130c82e.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Primary Set Limit \342\200\235opl\342\200\235 3faf4861153049c9af692ec2d130c82e.html" deleted file mode 100644 index 1ce29f9e..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Primary Set Limit \342\200\235opl\342\200\235 3faf4861153049c9af692ec2d130c82e.html" +++ /dev/null @@ -1,670 +0,0 @@ -Productive Output Primary Set Limit ”opl”

Productive Output Primary Set Limit ”opl”

Octets4
DescriptionThe limit of primary product Output -Eg. 100L/H for the pump that can go to 500 L/H
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerOptional Grp 1Read-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Secondary Metric os fbefd16080cc443fb62412ec9ce95a07.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Secondary Metric os fbefd16080cc443fb62412ec9ce95a07.html deleted file mode 100644 index 20e84039..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Secondary Metric os fbefd16080cc443fb62412ec9ce95a07.html +++ /dev/null @@ -1,669 +0,0 @@ -Productive Output Secondary Metric "os"

Productive Output Secondary Metric "os"

Octets4
Descriptione.g. Pressure for pumps in kPa (1kPa = 10cm water or 0.1 bar)
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerOptional Grp 1Read-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Secondary Set Limit \342\200\234osl\342\200\235 1dcd1441ede849378cb32ae96093837c.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Secondary Set Limit \342\200\234osl\342\200\235 1dcd1441ede849378cb32ae96093837c.html" deleted file mode 100644 index 5f03e5d9..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Productive Output Secondary Set Limit \342\200\234osl\342\200\235 1dcd1441ede849378cb32ae96093837c.html" +++ /dev/null @@ -1,670 +0,0 @@ -Productive Output Secondary Set Limit “osl”

Productive Output Secondary Set Limit “osl”

Octets4
DescriptionThe limit of secondary product Output -Eg. Could be a pressure of 5kPa for the pump that can preduce the pressure of 10kPa
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerOptional Grp 1Read-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Time Series Data Format df 7063167dd3f74fc5bf2c1bdc0f2b8162.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Time Series Data Format df 7063167dd3f74fc5bf2c1bdc0f2b8162.html deleted file mode 100644 index b41f93aa..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Time Series Data Format df 7063167dd3f74fc5bf2c1bdc0f2b8162.html +++ /dev/null @@ -1,669 +0,0 @@ -Time Series Data Format "df"

Time Series Data Format "df"

Octets1
Descriptionfollowing DF in OpenPAYGO Metrics (in case device has GSM). 0 if not used
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersIntegerMandatoryRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries History Index \342\200\234thi\342\200\235 cd90a4b443e34c4c94af0ce171d3b006.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries History Index \342\200\234thi\342\200\235 cd90a4b443e34c4c94af0ce171d3b006.html" deleted file mode 100644 index f6db7300..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries History Index \342\200\234thi\342\200\235 cd90a4b443e34c4c94af0ce171d3b006.html" +++ /dev/null @@ -1,671 +0,0 @@ -Timeseries History Index “thi”

Timeseries History Index “thi”

Octets4
DescriptionWhenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries History remaining \342\200\234tsh\342\200\235 4b74fa25a5c24a618634b953121dc715.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries History remaining \342\200\234tsh\342\200\235 4b74fa25a5c24a618634b953121dc715.html" deleted file mode 100644 index 42feb1aa..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries History remaining \342\200\234tsh\342\200\235 4b74fa25a5c24a618634b953121dc715.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries History remaining “tsh”

Timeseries History remaining “tsh”

Octets2
DescriptionAny resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersOptionalRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries Timestamp \342\200\234ts\342\200\235 29eaf8ad68964b91b6513c51ac491208.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries Timestamp \342\200\234ts\342\200\235 29eaf8ad68964b91b6513c51ac491208.html" deleted file mode 100644 index 0549e164..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/Timeseries Timestamp \342\200\234ts\342\200\235 29eaf8ad68964b91b6513c51ac491208.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Timestamp “ts”

Timeseries Timestamp “ts”

Octets4
DescriptionTImestamp of when the data is recorded
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/cbor header 6445d94fb4cf4d17bd35f6d490aab37f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/cbor header 6445d94fb4cf4d17bd35f6d490aab37f.html deleted file mode 100644 index 174e82fb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/cbor header 6445d94fb4cf4d17bd35f6d490aab37f.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/seconds since data measured ss 20bb603d3e054a56bffda96f72867778.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/seconds since data measured ss 20bb603d3e054a56bffda96f72867778.html deleted file mode 100644 index 30685c79..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Productive Use Resource pu ba4b9f526b794cb78d547188976a0880/seconds since data measured ss 20bb603d3e054a56bffda96f72867778.html +++ /dev/null @@ -1,669 +0,0 @@ -seconds since data measured "ss"

seconds since data measured "ss"

Octets6
Descriptionseconds passed since last /pu data pull by any gateway device - presumption is that gateway transmits the data to server. Useful for devices that store a rolling history of data
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersMandatoryRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a.html deleted file mode 100644 index cd8b28e5..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a.html +++ /dev/null @@ -1,671 +0,0 @@ -AirLink Temperature Resource /temp

AirLink Temperature Resource /temp

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor map header1Read-WriteTEMP 1.0encapsulating the rest of the properties
TEMP resource version "rv"3Read-OnlyTEMP 1.010 (major/minor digits)
Timeseries History remaining “tsh”2OptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Current Temperature "temp"5MandatoryRead-OnlyScope: Time-seriesTEMP 1.00-128C in 1/2 degree increments
Max Temperature "tmax"5OptionalRead-OnlyScope: Time-seriesTEMP 1.00-128C in 1/2 degree increments
Max Temperature "tmin"5OptionalRead-OnlyScope: Time-seriesTEMP 1.00-128C in 1/2 degree increments
Temperature upper limit threshold "hlim"5OptionalRead-WriteScope: Client AttrTEMP 1.00-128C in 1/2 degree increments
Temperature lower limit threshold "llim"5OptionalRead-WriteScope: Client AttrTEMP 1.00-128C in 1/2 degree increments
Timeseries Timestamp “ts”4Read-OnlyTEMP 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyTEMP 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalTEMP 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Current Temperature temp d22f039c00c94dd891719d3a55d7b306.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Current Temperature temp d22f039c00c94dd891719d3a55d7b306.html deleted file mode 100644 index 4bb3bbe0..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Current Temperature temp d22f039c00c94dd891719d3a55d7b306.html +++ /dev/null @@ -1,669 +0,0 @@ -Current Temperature "temp"

Current Temperature "temp"

Octets5
Description0-128C in 1/2 degree increments
Nx ResourceTEMP 1.0
QualifiersMandatoryRead-OnlyScope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Dummy \342\200\234dmy\342\200\235 846c8d70c9ba4104a135d15bc0893c7c.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Dummy \342\200\234dmy\342\200\235 846c8d70c9ba4104a135d15bc0893c7c.html" deleted file mode 100644 index d1a8b413..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Dummy \342\200\234dmy\342\200\235 846c8d70c9ba4104a135d15bc0893c7c.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

Octets
DescriptionSome Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
Nx ResourceTEMP 1.0
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Max Temperature tmax 8e3ae9bd25ed4e2294377cb6715fd99a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Max Temperature tmax 8e3ae9bd25ed4e2294377cb6715fd99a.html deleted file mode 100644 index 7c165928..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Max Temperature tmax 8e3ae9bd25ed4e2294377cb6715fd99a.html +++ /dev/null @@ -1,669 +0,0 @@ -Max Temperature "tmax"

Max Temperature "tmax"

Octets5
Description0-128C in 1/2 degree increments
Nx ResourceTEMP 1.0
QualifiersOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Max Temperature tmin c8137ffc83a74172b42f1c47f2db8fe8.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Max Temperature tmin c8137ffc83a74172b42f1c47f2db8fe8.html deleted file mode 100644 index 19af77c6..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Max Temperature tmin c8137ffc83a74172b42f1c47f2db8fe8.html +++ /dev/null @@ -1,669 +0,0 @@ -Max Temperature "tmin"

Max Temperature "tmin"

Octets5
Description0-128C in 1/2 degree increments
Nx ResourceTEMP 1.0
QualifiersOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/TEMP resource version rv 55e84782d048427f877e0a0294959c7d.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/TEMP resource version rv 55e84782d048427f877e0a0294959c7d.html deleted file mode 100644 index 0ed03daa..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/TEMP resource version rv 55e84782d048427f877e0a0294959c7d.html +++ /dev/null @@ -1,669 +0,0 @@ -TEMP resource version "rv"

TEMP resource version "rv"

Octets3
Description10 (major/minor digits)
Nx ResourceTEMP 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Temperature lower limit threshold llim 4d19e520c09144abac43c4dbdc789cb4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Temperature lower limit threshold llim 4d19e520c09144abac43c4dbdc789cb4.html deleted file mode 100644 index 569d6318..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Temperature lower limit threshold llim 4d19e520c09144abac43c4dbdc789cb4.html +++ /dev/null @@ -1,669 +0,0 @@ -Temperature lower limit threshold "llim"

Temperature lower limit threshold "llim"

Octets5
Description0-128C in 1/2 degree increments
Nx ResourceTEMP 1.0
QualifiersOptionalRead-WriteScope: Client Attr
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Temperature upper limit threshold hlim fab790055cb646a6877254cd14e20513.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Temperature upper limit threshold hlim fab790055cb646a6877254cd14e20513.html deleted file mode 100644 index eed46dbc..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Temperature upper limit threshold hlim fab790055cb646a6877254cd14e20513.html +++ /dev/null @@ -1,669 +0,0 @@ -Temperature upper limit threshold "hlim"

Temperature upper limit threshold "hlim"

Octets5
Description0-128C in 1/2 degree increments
Nx ResourceTEMP 1.0
QualifiersOptionalRead-WriteScope: Client Attr
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries History Index \342\200\234thi\342\200\235 c921dbf34c904f81b5d3c6bd11365e96.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries History Index \342\200\234thi\342\200\235 c921dbf34c904f81b5d3c6bd11365e96.html" deleted file mode 100644 index 5620c73d..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries History Index \342\200\234thi\342\200\235 c921dbf34c904f81b5d3c6bd11365e96.html" +++ /dev/null @@ -1,671 +0,0 @@ -Timeseries History Index “thi”

Timeseries History Index “thi”

Octets4
DescriptionWhenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Nx ResourceTEMP 1.0
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries History remaining \342\200\234tsh\342\200\235 7ba39d7c0efd402caf1fc7f363886ad5.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries History remaining \342\200\234tsh\342\200\235 7ba39d7c0efd402caf1fc7f363886ad5.html" deleted file mode 100644 index a355cd44..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries History remaining \342\200\234tsh\342\200\235 7ba39d7c0efd402caf1fc7f363886ad5.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries History remaining “tsh”

Timeseries History remaining “tsh”

Octets2
DescriptionAny resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Nx ResourcePAYG Credit 1.0
QualifiersOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries Timestamp \342\200\234ts\342\200\235 1bd6fd1a03ef4ea5835ae311b12614fb.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries Timestamp \342\200\234ts\342\200\235 1bd6fd1a03ef4ea5835ae311b12614fb.html" deleted file mode 100644 index 29ffb0f1..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/Timeseries Timestamp \342\200\234ts\342\200\235 1bd6fd1a03ef4ea5835ae311b12614fb.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Timestamp “ts”

Timeseries Timestamp “ts”

Octets4
DescriptionTImestamp of when the data is recorded
Nx ResourceTEMP 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/cbor map header 5b4050a1f30e479394e49d120a4b810a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/cbor map header 5b4050a1f30e479394e49d120a4b810a.html deleted file mode 100644 index be072783..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/AirLink Temperature Resource temp b1035d2999d74ac79996a5560908b32a/cbor map header 5b4050a1f30e479394e49d120a4b810a.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor map header

cbor map header

Octets1
Descriptionencapsulating the rest of the properties
Nx ResourceTEMP 1.0
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e.html deleted file mode 100644 index e97b5dde..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e.html +++ /dev/null @@ -1,675 +0,0 @@ -Battery Resource /batt

Battery Resource /batt

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Timeseries History remaining “tsh”2OptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Bat Voltage mV "vb"4IntegerOptional Grp 3Read-OnlyScope: Time-seriesBattery 1.0Only for Battery Device
Bat charging or discharge current mA "ib"4IntegerOptional Grp 3Read-OnlyScope: Time-seriesBattery 1.0Only for Battery Device
Bat Pct "cp"3IntegerOptional Grp 3Read-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, charge percentage
Charging Status "cs"1EnumOptional Grp 3Scope: Time-seriesBattery 1.00 = No Data -1 = Charging - fast -2 = Charging - slow / trickle -3 = Discharging
Alert Threshold (%) "th"3IntegerOptional Grp 3Read-WriteScope: Time-seriesBattery 1.0
Low battery "lb"1BoolOptional Grp 3Scope: Time-seriesBattery 1.00: cp>th -1: cp<th
LastChargeCycle BatPctMin "cmin"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, Could be Infrequently reported
LastChargeCycle BatPctMax "cmax"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, Could be Infrequently reported
LastChargeCycle ChgTime "tc"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0in minutes, Only for Battery Device, Could be Infrequently reported
LastChargeCycle ChgUnits (mAh) "qc"2IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0in milliamp-hours, Only for Battery Device, Could be Infrequently reported
Bat Health "bh"1IntegerOptionalRead-OnlyScope: Time-seriesBattery 1.0Only for Battery Device, Could be Infrequently reported
Timeseries Timestamp “ts”4Read-OnlyBattery 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyBattery 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalBattery 1.0Some Bluetooth chips require fixed-length Characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Alert Threshold (%) th 6156691bf1e743a79d30883fc9e81940.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Alert Threshold (%) th 6156691bf1e743a79d30883fc9e81940.html deleted file mode 100644 index d6f84a99..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Alert Threshold (%) th 6156691bf1e743a79d30883fc9e81940.html +++ /dev/null @@ -1,669 +0,0 @@ -Alert Threshold (%) "th"

Alert Threshold (%) "th"

Octets3
Description
Nx ResourceBattery 1.0
QualifiersIntegerOptional Grp 3Read-WriteScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Health bh ca6b930d28d142afac3904572f18fa67.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Health bh ca6b930d28d142afac3904572f18fa67.html deleted file mode 100644 index af8f3114..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Health bh ca6b930d28d142afac3904572f18fa67.html +++ /dev/null @@ -1,669 +0,0 @@ -Bat Health "bh"

Bat Health "bh"

Octets1
DescriptionOnly for Battery Device, Could be Infrequently reported
Nx ResourceBattery 1.0
QualifiersIntegerOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Pct cp 89ac4620131a4dae8c31c81645c8e3c6.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Pct cp 89ac4620131a4dae8c31c81645c8e3c6.html deleted file mode 100644 index 74a42f2c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Pct cp 89ac4620131a4dae8c31c81645c8e3c6.html +++ /dev/null @@ -1,669 +0,0 @@ -Bat Pct "cp"

Bat Pct "cp"

Octets3
DescriptionOnly for Battery Device, charge percentage
Nx ResourceBattery 1.0
QualifiersIntegerOptional Grp 3Read-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Voltage mV vb 2feff419673d43dd88727a391c75c12a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Voltage mV vb 2feff419673d43dd88727a391c75c12a.html deleted file mode 100644 index cf48a1cb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat Voltage mV vb 2feff419673d43dd88727a391c75c12a.html +++ /dev/null @@ -1,669 +0,0 @@ -Bat Voltage mV "vb"

Bat Voltage mV "vb"

Octets4
DescriptionOnly for Battery Device
Nx ResourceBattery 1.0
QualifiersIntegerOptional Grp 3Read-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat charging or discharge current mA ib a27962dd59264d798220f48c5cfbb136.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat charging or discharge current mA ib a27962dd59264d798220f48c5cfbb136.html deleted file mode 100644 index b82000b7..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Bat charging or discharge current mA ib a27962dd59264d798220f48c5cfbb136.html +++ /dev/null @@ -1,669 +0,0 @@ -Bat charging or discharge current mA "ib"

Bat charging or discharge current mA "ib"

Octets4
DescriptionOnly for Battery Device
Nx ResourceBattery 1.0
QualifiersIntegerOptional Grp 3Read-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Charging Status cs 831bad6bdafd4ac89b03dcc48c0b2132.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Charging Status cs 831bad6bdafd4ac89b03dcc48c0b2132.html deleted file mode 100644 index e1089bfb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Charging Status cs 831bad6bdafd4ac89b03dcc48c0b2132.html +++ /dev/null @@ -1,672 +0,0 @@ -Charging Status "cs"

Charging Status "cs"

Octets1
Description0 = No Data -1 = Charging - fast -2 = Charging - slow / trickle -3 = Discharging
Nx ResourceBattery 1.0
QualifiersEnumOptional Grp 3Scope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Dummy \342\200\234dmy\342\200\235 916f8fd301a04560b46b3ee332cf49ce.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Dummy \342\200\234dmy\342\200\235 916f8fd301a04560b46b3ee332cf49ce.html" deleted file mode 100644 index 5c25e90e..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Dummy \342\200\234dmy\342\200\235 916f8fd301a04560b46b3ee332cf49ce.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

Octets
DescriptionSome Bluetooth chips require fixed-length Characteristics, this dummy can make up for variation in other properties lengths
Nx ResourceBattery 1.0
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle BatPctMax cmax ba53a752351e40c9bcf1110eb2136cf5.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle BatPctMax cmax ba53a752351e40c9bcf1110eb2136cf5.html deleted file mode 100644 index 54e683e7..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle BatPctMax cmax ba53a752351e40c9bcf1110eb2136cf5.html +++ /dev/null @@ -1,669 +0,0 @@ -LastChargeCycle BatPctMax "cmax"

LastChargeCycle BatPctMax "cmax"

Octets2
DescriptionOnly for Battery Device, Could be Infrequently reported
Nx ResourceBattery 1.0
QualifiersIntegerOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle BatPctMin cmin 1ca2a7ff4489447eb312cb367f1bd30e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle BatPctMin cmin 1ca2a7ff4489447eb312cb367f1bd30e.html deleted file mode 100644 index bc2e1b86..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle BatPctMin cmin 1ca2a7ff4489447eb312cb367f1bd30e.html +++ /dev/null @@ -1,669 +0,0 @@ -LastChargeCycle BatPctMin "cmin"

LastChargeCycle BatPctMin "cmin"

Octets2
DescriptionOnly for Battery Device, Could be Infrequently reported
Nx ResourceBattery 1.0
QualifiersIntegerOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle ChgTime tc cd60d6f7d65e45ebb89ce0c1045fc956.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle ChgTime tc cd60d6f7d65e45ebb89ce0c1045fc956.html deleted file mode 100644 index ccb07fd7..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle ChgTime tc cd60d6f7d65e45ebb89ce0c1045fc956.html +++ /dev/null @@ -1,669 +0,0 @@ -LastChargeCycle ChgTime "tc"

LastChargeCycle ChgTime "tc"

Octets2
Descriptionin minutes, Only for Battery Device, Could be Infrequently reported
Nx ResourceBattery 1.0
QualifiersIntegerOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle ChgUnits (mAh) qc 44f4ae9cc12647c4b6e943ef92d14366.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle ChgUnits (mAh) qc 44f4ae9cc12647c4b6e943ef92d14366.html deleted file mode 100644 index 69315dc7..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/LastChargeCycle ChgUnits (mAh) qc 44f4ae9cc12647c4b6e943ef92d14366.html +++ /dev/null @@ -1,669 +0,0 @@ -LastChargeCycle ChgUnits (mAh) "qc"

LastChargeCycle ChgUnits (mAh) "qc"

Octets2
Descriptionin milliamp-hours, Only for Battery Device, Could be Infrequently reported
Nx ResourceBattery 1.0
QualifiersIntegerOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Low battery lb c349f0417d5c46d89324f5fee254a518.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Low battery lb c349f0417d5c46d89324f5fee254a518.html deleted file mode 100644 index 207e78d5..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Low battery lb c349f0417d5c46d89324f5fee254a518.html +++ /dev/null @@ -1,670 +0,0 @@ -Low battery "lb"

Low battery "lb"

Octets1
Description0: cp>th -1: cp<th
Nx ResourceBattery 1.0
QualifiersBoolOptional Grp 3Scope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries History Index \342\200\234thi\342\200\235 e49c58d7170948a3ac2757981f9a311d.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries History Index \342\200\234thi\342\200\235 e49c58d7170948a3ac2757981f9a311d.html" deleted file mode 100644 index 509d6222..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries History Index \342\200\234thi\342\200\235 e49c58d7170948a3ac2757981f9a311d.html" +++ /dev/null @@ -1,671 +0,0 @@ -Timeseries History Index “thi”

Timeseries History Index “thi”

Octets4
DescriptionWhenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Nx ResourceBattery 1.0
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries History remaining \342\200\234tsh\342\200\235 f1acfcc1e7374e149e4a483b53161b79.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries History remaining \342\200\234tsh\342\200\235 f1acfcc1e7374e149e4a483b53161b79.html" deleted file mode 100644 index 37cdf5e0..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries History remaining \342\200\234tsh\342\200\235 f1acfcc1e7374e149e4a483b53161b79.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries History remaining “tsh”

Timeseries History remaining “tsh”

Octets2
DescriptionAny resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Nx ResourcePAYG Credit 1.0
QualifiersOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries Timestamp \342\200\234ts\342\200\235 0f632dc877ec404295ef234441bcaa4f.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries Timestamp \342\200\234ts\342\200\235 0f632dc877ec404295ef234441bcaa4f.html" deleted file mode 100644 index 40b4b1b7..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/Timeseries Timestamp \342\200\234ts\342\200\235 0f632dc877ec404295ef234441bcaa4f.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Timestamp “ts”

Timeseries Timestamp “ts”

Octets4
DescriptionTImestamp of when the data is recorded
Nx ResourceBattery 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/cbor header aa0dd41f32e54a77ab4978fc7b0da172.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/cbor header aa0dd41f32e54a77ab4978fc7b0da172.html deleted file mode 100644 index 9d663798..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Battery Resource batt 9f53f43ac8fc467aba3fba5696246a8e/cbor header aa0dd41f32e54a77ab4978fc7b0da172.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3.html deleted file mode 100644 index dc098d59..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3.html +++ /dev/null @@ -1,671 +0,0 @@ -Energy Consumption Resource /eout

Energy Consumption Resource /eout

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Timeseries History remaining “tsh”2OptionalRead-Onlyenergy consumption 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Voltage (milliVolts) "vo"4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0Output voltage depending on data format registered by manufacturer
Current (centiAmps) "ao"4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0Output current depending on data format registered by manufacturer
Current Limit (centiAmps) "aol"4IntegerOptionalRead-Writeenergy consumption 1.0Current limit setting
Power (deciWatts) "po"4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0Output power depending on data format registered by manufacturer
eo4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0'Energy consumed' in deciwatt-hours(Wh / 10). Computed over a time window defined by egs and egp
eos4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0'Energy consumed start'. Minutes in the past (minutes ago) when the reported eg value began accumulation
eop4IntegerOptionalRead-OnlySource: Time-seriesenergy consumption 1.0'Energy consumed period'. Minutes since egs over which the value of eg was accumulated. For example, if egs is 60, and egp is 60, the value of eg represents the watt-hours generated during the past hour
Timeseries Timestamp “ts”4Read-Onlyenergy consumption 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-Onlyenergy consumption 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”Optionalenergy consumption 1.0Some Bluetooth chips require fixed-length Characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Current (centiAmps) ao 4a344aa3d5714277baed9a1f0e477e31.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Current (centiAmps) ao 4a344aa3d5714277baed9a1f0e477e31.html deleted file mode 100644 index 97caa68a..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Current (centiAmps) ao 4a344aa3d5714277baed9a1f0e477e31.html +++ /dev/null @@ -1,669 +0,0 @@ -Current (centiAmps) "ao"

Current (centiAmps) "ao"

Octets4
DescriptionOutput current depending on data format registered by manufacturer
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-OnlySource: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Current Limit (centiAmps) aol 2db90e4a95014c81b760dc78a283d7e2.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Current Limit (centiAmps) aol 2db90e4a95014c81b760dc78a283d7e2.html deleted file mode 100644 index aa4515e8..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Current Limit (centiAmps) aol 2db90e4a95014c81b760dc78a283d7e2.html +++ /dev/null @@ -1,669 +0,0 @@ -Current Limit (centiAmps) "aol"

Current Limit (centiAmps) "aol"

Octets4
DescriptionCurrent limit setting
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-Write
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Dummy \342\200\234dmy\342\200\235 03756fcf7535490bb7ff853987e18635.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Dummy \342\200\234dmy\342\200\235 03756fcf7535490bb7ff853987e18635.html" deleted file mode 100644 index 39ce8b2e..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Dummy \342\200\234dmy\342\200\235 03756fcf7535490bb7ff853987e18635.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

Octets
DescriptionSome Bluetooth chips require fixed-length Characteristics, this dummy can make up for variation in other properties lengths
Nx Resourceenergy consumption 1.0
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Power (deciWatts) po 332ce5ff5f944dc9ab0a6d1493dcdb34.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Power (deciWatts) po 332ce5ff5f944dc9ab0a6d1493dcdb34.html deleted file mode 100644 index c531f64f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Power (deciWatts) po 332ce5ff5f944dc9ab0a6d1493dcdb34.html +++ /dev/null @@ -1,669 +0,0 @@ -Power (deciWatts) "po"

Power (deciWatts) "po"

Octets4
DescriptionOutput power depending on data format registered by manufacturer
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-OnlySource: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries History Index \342\200\234thi\342\200\235 db86cd53bb3a4a63b9734c584da609b0.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries History Index \342\200\234thi\342\200\235 db86cd53bb3a4a63b9734c584da609b0.html" deleted file mode 100644 index 704cbcbd..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries History Index \342\200\234thi\342\200\235 db86cd53bb3a4a63b9734c584da609b0.html" +++ /dev/null @@ -1,671 +0,0 @@ -Timeseries History Index “thi”

Timeseries History Index “thi”

Octets4
DescriptionWhenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Nx Resourceenergy consumption 1.0
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries History remaining \342\200\234tsh\342\200\235 520d4478858e4055a240d72f00eb6913.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries History remaining \342\200\234tsh\342\200\235 520d4478858e4055a240d72f00eb6913.html" deleted file mode 100644 index 21014708..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries History remaining \342\200\234tsh\342\200\235 520d4478858e4055a240d72f00eb6913.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries History remaining “tsh”

Timeseries History remaining “tsh”

Octets2
DescriptionAny resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Nx Resourceenergy consumption 1.0
QualifiersOptionalRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries Timestamp \342\200\234ts\342\200\235 30fe2736b3f647a09dfe8bb374c60ed2.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries Timestamp \342\200\234ts\342\200\235 30fe2736b3f647a09dfe8bb374c60ed2.html" deleted file mode 100644 index d8b23e6b..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Timeseries Timestamp \342\200\234ts\342\200\235 30fe2736b3f647a09dfe8bb374c60ed2.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Timestamp “ts”

Timeseries Timestamp “ts”

Octets4
DescriptionTImestamp of when the data is recorded
Nx Resourceenergy consumption 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Voltage (milliVolts) vo 680dc91474f64414a844381340c5eeb1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Voltage (milliVolts) vo 680dc91474f64414a844381340c5eeb1.html deleted file mode 100644 index c7cf8190..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/Voltage (milliVolts) vo 680dc91474f64414a844381340c5eeb1.html +++ /dev/null @@ -1,669 +0,0 @@ -Voltage (milliVolts) "vo"

Voltage (milliVolts) "vo"

Octets4
DescriptionOutput voltage depending on data format registered by manufacturer
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-OnlySource: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/cbor header b7d17e797faf4ecca60d3a868f7fbd67.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/cbor header b7d17e797faf4ecca60d3a868f7fbd67.html deleted file mode 100644 index 251c4842..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/cbor header b7d17e797faf4ecca60d3a868f7fbd67.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eo 3bb54778540d43c1ae3230436c4e65e5.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eo 3bb54778540d43c1ae3230436c4e65e5.html deleted file mode 100644 index 524bd438..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eo 3bb54778540d43c1ae3230436c4e65e5.html +++ /dev/null @@ -1,669 +0,0 @@ -eo

eo

Octets4
Description'Energy consumed' in deciwatt-hours(Wh / 10). Computed over a time window defined by egs and egp
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-OnlySource: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eop 69bc4d85189c48f5a359da48fd6b5bd6.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eop 69bc4d85189c48f5a359da48fd6b5bd6.html deleted file mode 100644 index 06f88b6b..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eop 69bc4d85189c48f5a359da48fd6b5bd6.html +++ /dev/null @@ -1,669 +0,0 @@ -eop

eop

Octets4
Description'Energy consumed period'. Minutes since egs over which the value of eg was accumulated. For example, if egs is 60, and egp is 60, the value of eg represents the watt-hours generated during the past hour
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-OnlySource: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eos e56e3f632c064cdc810fc56bdde9883e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eos e56e3f632c064cdc810fc56bdde9883e.html deleted file mode 100644 index 85986531..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Consumption Resource eout 6a412ad84155409fbe6ecf130ad18ff3/eos e56e3f632c064cdc810fc56bdde9883e.html +++ /dev/null @@ -1,669 +0,0 @@ -eos

eos

Octets4
Description'Energy consumed start'. Minutes in the past (minutes ago) when the reported eg value began accumulation
Nx Resourceenergy consumption 1.0
QualifiersIntegerOptionalRead-OnlySource: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4.html deleted file mode 100644 index ef77740e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4.html +++ /dev/null @@ -1,679 +0,0 @@ -Energy Generation Resource /ein

Energy Generation Resource /ein

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
Voltage (milliVolts) "vi"4IntegerOptionalRead-Onlyenergy generation 1.0Input voltage depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Current (centiAmps) "ai"4IntegerOptionalRead-Writeenergy generation 1.0Input current depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Power (deciWatts) "pi"4IntegerOptionalRead-Onlyenergy generation 1.0Input power depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Type of source "st"1EnumIntegerMandatoryRead-Writeenergy generation 1.0Type of power generator. Known types - -0 = Disconnected/None - autodetected -1 = DC Solar - autodetected -2 = AC Grid/microgrid (as a source) - autodetected -3 = DC Grid/microgrid (as a source) - from gateway -4 = AC Wind power - from gateway -5 = DC Wind power - from gateway -6 = AC Hydro power - from gateway -7 = DC Hydro power - from gateway -8 = AC Petrol/Diesel Generator - from gateway -100 = Unknown - from gateway
eg4IntegerOptionalRead-Onlyenergy generation 1.0'Energy generated' in deciwatt-hours(Wh / 10). Computed over a time window defined by egs and egp.
egs4IntegerOptionalRead-Onlyenergy generation 1.0'Energy generation start'. Minutes in the past (minutes ago) when the reported eg value began accumulation.
egp4IntegerOptionalRead-Onlyenergy generation 1.0'Energy generation period'. Minutes since egs over which the value of eg was accumulated. For example, if egs is 60, and egp is 60, the value of eg represents the watt-hours generated during the past hour.
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Current (centiAmps) ai 0c2ae0b6e7514b3086da4a95fab600d4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Current (centiAmps) ai 0c2ae0b6e7514b3086da4a95fab600d4.html deleted file mode 100644 index c34cdd19..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Current (centiAmps) ai 0c2ae0b6e7514b3086da4a95fab600d4.html +++ /dev/null @@ -1,669 +0,0 @@ -Current (centiAmps) "ai"

Current (centiAmps) "ai"

Octets4
DescriptionInput current depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Nx Resourceenergy generation 1.0
QualifiersIntegerOptionalRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Power (deciWatts) pi ce199a07e16e41e482942c6c1f4bafdb.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Power (deciWatts) pi ce199a07e16e41e482942c6c1f4bafdb.html deleted file mode 100644 index 82cf4895..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Power (deciWatts) pi ce199a07e16e41e482942c6c1f4bafdb.html +++ /dev/null @@ -1,669 +0,0 @@ -Power (deciWatts) "pi"

Power (deciWatts) "pi"

Octets4
DescriptionInput power depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Nx Resourceenergy generation 1.0
QualifiersIntegerOptionalRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Type of source st c1e974c45f3b4742b91113f69931bac1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Type of source st c1e974c45f3b4742b91113f69931bac1.html deleted file mode 100644 index 146837fb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Type of source st c1e974c45f3b4742b91113f69931bac1.html +++ /dev/null @@ -1,679 +0,0 @@ -Type of source "st"

Type of source "st"

Octets1
DescriptionType of power generator. Known types - -0 = Disconnected/None - autodetected -1 = DC Solar - autodetected -2 = AC Grid/microgrid (as a source) - autodetected -3 = DC Grid/microgrid (as a source) - from gateway -4 = AC Wind power - from gateway -5 = DC Wind power - from gateway -6 = AC Hydro power - from gateway -7 = DC Hydro power - from gateway -8 = AC Petrol/Diesel Generator - from gateway -100 = Unknown - from gateway
Nx Resourceenergy generation 1.0
QualifiersEnumIntegerMandatoryRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Voltage (milliVolts) vi d775d1c3b3774dd098e93bc6b25c3a78.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Voltage (milliVolts) vi d775d1c3b3774dd098e93bc6b25c3a78.html deleted file mode 100644 index 7d510ae8..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/Voltage (milliVolts) vi d775d1c3b3774dd098e93bc6b25c3a78.html +++ /dev/null @@ -1,669 +0,0 @@ -Voltage (milliVolts) "vi"

Voltage (milliVolts) "vi"

Octets4
DescriptionInput voltage depending on data format registered by manufacturer. We will start with PV in controllers and Output in FL
Nx Resourceenergy generation 1.0
QualifiersIntegerOptionalRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/cbor header 9efb8fe529444ed988208442b6a0e1e1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/cbor header 9efb8fe529444ed988208442b6a0e1e1.html deleted file mode 100644 index 8ad2cf6c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/cbor header 9efb8fe529444ed988208442b6a0e1e1.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/eg d028a053a80541b0aa366a9cd9cee104.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/eg d028a053a80541b0aa366a9cd9cee104.html deleted file mode 100644 index 1ff1e3ed..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/eg d028a053a80541b0aa366a9cd9cee104.html +++ /dev/null @@ -1,669 +0,0 @@ -eg

eg

Octets4
Description'Energy generated' in deciwatt-hours(Wh / 10). Computed over a time window defined by egs and egp.
Nx Resourceenergy generation 1.0
QualifiersIntegerOptionalRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/egp 0eae208ec85247eda715114b76cb6448.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/egp 0eae208ec85247eda715114b76cb6448.html deleted file mode 100644 index fe987f0d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/egp 0eae208ec85247eda715114b76cb6448.html +++ /dev/null @@ -1,669 +0,0 @@ -egp

egp

Octets4
Description'Energy generation period'. Minutes since egs over which the value of eg was accumulated. For example, if egs is 60, and egp is 60, the value of eg represents the watt-hours generated during the past hour.
Nx Resourceenergy generation 1.0
QualifiersIntegerOptionalRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/egs 2e60e7641bf54ca095ddb22bd93d4fc1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/egs 2e60e7641bf54ca095ddb22bd93d4fc1.html deleted file mode 100644 index 782b00ce..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Energy Generation Resource ein 9707ac361be74048ad6c418807b577d4/egs 2e60e7641bf54ca095ddb22bd93d4fc1.html +++ /dev/null @@ -1,669 +0,0 @@ -egs

egs

Octets4
Description'Energy generation start'. Minutes in the past (minutes ago) when the reported eg value began accumulation.
Nx Resourceenergy generation 1.0
QualifiersIntegerOptionalRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4.html deleted file mode 100644 index 42a4b69b..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4.html +++ /dev/null @@ -1,671 +0,0 @@ -Location Resource /loc

Location Resource /loc

Resource PropertyOctetsQualifiersNx ResourceDescription
Array Cbor header1CBOR HeaderArray declaration header of 8 elements
Timestamp last pulled from gateway or network "gts"5Byte ArrayRead-OnlyLocation Resource 1.0Linux epoch format, expires in Y2035
Gateway Manufacturer ID "gmid" added by gateway device2Integer (uint16_t)MandatoryRead-OnlyLocation Resource 1.0How can we prevent one manufacturer from messing up the other's IDs?
Gateway AirLink ID "gid" added by gateway device5Integer (uint32_t)Location Resource 1.0
Longitude "ln" added by gateway deviceStringLocation Resource 1.0Added by gateway device reporting location of non-gateway device, 10 octets
Latitude "lt" added by gatway deviceStringLocation Resource 1.0Added by gateway device reporting location of non-gateway device, 10 octets
Location accuracy "la" added by gateway deviceStringLocation Resource 1.0Added by gateway device reporting location of non-gateway device, 6 octets
Device Signal strength "dss" added by gateway deviceStringLocation Resource 1.0Added by gateway device reporting the exactly location of the device from a gateway expressed in dBm
Timeseries Timestamp “ts”4Read-OnlyAirLink PUE Timeseries 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyAirLink PUE Timeseries 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalAirLink PUE Timeseries 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Array Cbor header b3832bd6e6784980b69e4248b16f8da4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Array Cbor header b3832bd6e6784980b69e4248b16f8da4.html deleted file mode 100644 index 9199d089..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Array Cbor header b3832bd6e6784980b69e4248b16f8da4.html +++ /dev/null @@ -1,669 +0,0 @@ -Array Cbor header

Array Cbor header

DescriptionArray declaration header of 8 elements
Nx Resource
Octets1
QualifiersCBOR Header
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Device Signal strength dss added by gateway device cba4eb12802d4022a7ee935131fca528.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Device Signal strength dss added by gateway device cba4eb12802d4022a7ee935131fca528.html deleted file mode 100644 index dd9e124e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Device Signal strength dss added by gateway device cba4eb12802d4022a7ee935131fca528.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Signal strength "dss" added by gateway device

Device Signal strength "dss" added by gateway device

DescriptionAdded by gateway device reporting the exactly location of the device from a gateway expressed in dBm
Nx ResourceLocation Resource 1.0
Octets
QualifiersString
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Dummy \342\200\234dmy\342\200\235 3bd8a08a6ba94910a2fc4b341e660f38.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Dummy \342\200\234dmy\342\200\235 3bd8a08a6ba94910a2fc4b341e660f38.html" deleted file mode 100644 index bba68d50..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Dummy \342\200\234dmy\342\200\235 3bd8a08a6ba94910a2fc4b341e660f38.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

DescriptionSome Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
Nx ResourceAirLink PUE Timeseries 1.0
Octets
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Gateway AirLink ID gid added by gateway device 40e213a988e7431a91fade26163be4e4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Gateway AirLink ID gid added by gateway device 40e213a988e7431a91fade26163be4e4.html deleted file mode 100644 index 79410e76..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Gateway AirLink ID gid added by gateway device 40e213a988e7431a91fade26163be4e4.html +++ /dev/null @@ -1,669 +0,0 @@ -Gateway AirLink ID "gid" added by gateway device

Gateway AirLink ID "gid" added by gateway device

Description
Nx ResourceLocation Resource 1.0
Octets5
QualifiersInteger (uint32_t)
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Gateway Manufacturer ID gmid added by gateway devi 97eef973738548959e5f3520ee1c010e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Gateway Manufacturer ID gmid added by gateway devi 97eef973738548959e5f3520ee1c010e.html deleted file mode 100644 index f1e87100..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Gateway Manufacturer ID gmid added by gateway devi 97eef973738548959e5f3520ee1c010e.html +++ /dev/null @@ -1,669 +0,0 @@ -Gateway Manufacturer ID "gmid" added by gateway device

Gateway Manufacturer ID "gmid" added by gateway device

DescriptionHow can we prevent one manufacturer from messing up the other's IDs?
Nx ResourceLocation Resource 1.0
Octets2
QualifiersInteger (uint16_t)MandatoryRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Latitude lt added by gatway device 701bac14e8d1483ea8c00e0ffd0a50c1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Latitude lt added by gatway device 701bac14e8d1483ea8c00e0ffd0a50c1.html deleted file mode 100644 index 5aab74e0..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Latitude lt added by gatway device 701bac14e8d1483ea8c00e0ffd0a50c1.html +++ /dev/null @@ -1,669 +0,0 @@ -Latitude "lt" added by gatway device

Latitude "lt" added by gatway device

DescriptionAdded by gateway device reporting location of non-gateway device, 10 octets
Nx ResourceLocation Resource 1.0
Octets
QualifiersString
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Location accuracy la added by gateway device 0da012bdf52242d89bbdd8faf7384479.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Location accuracy la added by gateway device 0da012bdf52242d89bbdd8faf7384479.html deleted file mode 100644 index c5310eeb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Location accuracy la added by gateway device 0da012bdf52242d89bbdd8faf7384479.html +++ /dev/null @@ -1,669 +0,0 @@ -Location accuracy "la" added by gateway device

Location accuracy "la" added by gateway device

DescriptionAdded by gateway device reporting location of non-gateway device, 6 octets
Nx ResourceLocation Resource 1.0
Octets
QualifiersString
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Longitude ln added by gateway device 9ec99c93487141b3ad85fe8c79288e0b.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Longitude ln added by gateway device 9ec99c93487141b3ad85fe8c79288e0b.html deleted file mode 100644 index 03476b12..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Longitude ln added by gateway device 9ec99c93487141b3ad85fe8c79288e0b.html +++ /dev/null @@ -1,669 +0,0 @@ -Longitude "ln" added by gateway device

Longitude "ln" added by gateway device

DescriptionAdded by gateway device reporting location of non-gateway device, 10 octets
Nx ResourceLocation Resource 1.0
Octets
QualifiersString
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timeseries History Index \342\200\234thi\342\200\235 9bd2f22622c34d0588137ae8ecb834e5.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timeseries History Index \342\200\234thi\342\200\235 9bd2f22622c34d0588137ae8ecb834e5.html" deleted file mode 100644 index dba513a3..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timeseries History Index \342\200\234thi\342\200\235 9bd2f22622c34d0588137ae8ecb834e5.html" +++ /dev/null @@ -1,671 +0,0 @@ -Timeseries History Index “thi”

Timeseries History Index “thi”

DescriptionWhenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Nx ResourceAirLink PUE Timeseries 1.0
Octets4
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timeseries Timestamp \342\200\234ts\342\200\235 a73891099b11477e9cd08008d6a191c3.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timeseries Timestamp \342\200\234ts\342\200\235 a73891099b11477e9cd08008d6a191c3.html" deleted file mode 100644 index e67486a9..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timeseries Timestamp \342\200\234ts\342\200\235 a73891099b11477e9cd08008d6a191c3.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Timestamp “ts”

Timeseries Timestamp “ts”

DescriptionTImestamp of when the data is recorded
Nx ResourceAirLink PUE Timeseries 1.0
Octets4
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timestamp last pulled from gateway or network gts 78eb3260d15b4f45a8a6c3ff50a49117.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timestamp last pulled from gateway or network gts 78eb3260d15b4f45a8a6c3ff50a49117.html deleted file mode 100644 index 8cd0b740..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Location Resource loc 1e2833229c0a42fe92acc35cf066cbb4/Timestamp last pulled from gateway or network gts 78eb3260d15b4f45a8a6c3ff50a49117.html +++ /dev/null @@ -1,669 +0,0 @@ -Timestamp last pulled from gateway or network "gts"

Timestamp last pulled from gateway or network "gts"

DescriptionLinux epoch format, expires in Y2035
Nx ResourceLocation Resource 1.0
Octets5
QualifiersByte ArrayRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0.html deleted file mode 100644 index b6d63c95..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0.html +++ /dev/null @@ -1,669 +0,0 @@ -Nexus Command Resource /nxc

Nexus Command Resource /nxc

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor header1Read-Writeencapsulating the rest of the properties
COSE command "cmd"120EncryptedWrite-OnlyAirLink Nexus Command 1.0Upto 120 bytes for Nexus Channel Passthrough commands
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0/COSE command cmd 854e60d9cf7c42bdb3ccdd5571389d76.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0/COSE command cmd 854e60d9cf7c42bdb3ccdd5571389d76.html deleted file mode 100644 index cef45d66..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0/COSE command cmd 854e60d9cf7c42bdb3ccdd5571389d76.html +++ /dev/null @@ -1,669 +0,0 @@ -COSE command "cmd"

COSE command "cmd"

Octets120
DescriptionUpto 120 bytes for Nexus Channel Passthrough commands
Nx ResourceAirLink Nexus Command 1.0
QualifiersEncryptedWrite-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0/cbor header d5440a5437974c6e898fad616e623875.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0/cbor header d5440a5437974c6e898fad616e623875.html deleted file mode 100644 index 1a313242..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Nexus Command Resource nxc ed4247090ba4475583e05f72cc537ff0/cbor header d5440a5437974c6e898fad616e623875.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor header

cbor header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9.html deleted file mode 100644 index 474c9b47..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9.html +++ /dev/null @@ -1,675 +0,0 @@ -PAYG Credit Resource /pc

PAYG Credit Resource /pc

Resource PropertyOctetsQualifiersNx ResourceDescription
cbor map header1Read-Writeencapsulating the rest of the properties
AirLink PAYG resource version "rv"3Read-Only10 (major/minor digits)
Timeseries History remaining “tsh”2OptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Any resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Device PayG Credit Remaining "re"5IntegerMandatoryRead-WriteScope: Time-seriesPAYG Credit 1.0should be The value remaining for the device to OFF. - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token
Mode "mo"1Read-WriteScope: Shared AttrPAYG Credit 1.0mode of device i.e. leading/following etc - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token
PayG Token "tkn"5EncryptedIntegerScope: Shared AttrWrite-OnlyPAYG Credit 1.0https://github.com/EnAccess/OpenPAYGO-HW. Accepted by device only if valid. No read token to ensure unsecured gateways cannot act maliciously.
Last Added PayG Credit "lcr"2IntegerOptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Historical last PayG credit update duration. Range is from 01-9999
Timestamp at which PayG remaining was calculated "pts"6DateTimeOptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Linux epoch format, expires in Y2035. The Last date and time when the PayG update was fetched from the Server to client [Mobile phone or other communication device]
Timestamp of last PAYG Update to device "lts"6DateTimeOptionalRead-OnlyScope: Time-seriesPAYG Credit 1.0Linux epoch format, expires in Y2035, readonly - Historical last PayG update Timestamp
Current Local Time "lt"6DateTimeOptionalRead-WriteScope: Time-seriesPAYG Credit 1.0Linux epoch format, expires in Y2035. The current time when updating the device with PayG update. We do not recommend using this to calculate PAYG use, because it could be used to trick the device into more tokens. This is for non-PAYG purposes
Timeseries Timestamp “ts”4Read-OnlyAirLink PUE Timeseries 1.0TImestamp of when the data is recorded
Timeseries History Index “thi”4Read-OnlyAirLink PUE Timeseries 1.0Whenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Dummy “dmy”OptionalAirLink PUE Timeseries 1.0Some Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/AirLink PAYG resource version rv 1f3a5adf4f924ff0a5b38d64c90db47e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/AirLink PAYG resource version rv 1f3a5adf4f924ff0a5b38d64c90db47e.html deleted file mode 100644 index 775422ce..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/AirLink PAYG resource version rv 1f3a5adf4f924ff0a5b38d64c90db47e.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink PAYG resource version "rv"

AirLink PAYG resource version "rv"

Octets3
Description10 (major/minor digits)
Nx Resource
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Current Local Time lt 6e4941b4bf754e21a7e8a19d1ba30bf2.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Current Local Time lt 6e4941b4bf754e21a7e8a19d1ba30bf2.html deleted file mode 100644 index c0c87d1d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Current Local Time lt 6e4941b4bf754e21a7e8a19d1ba30bf2.html +++ /dev/null @@ -1,669 +0,0 @@ -Current Local Time "lt"

Current Local Time "lt"

Octets6
DescriptionLinux epoch format, expires in Y2035. The current time when updating the device with PayG update. We do not recommend using this to calculate PAYG use, because it could be used to trick the device into more tokens. This is for non-PAYG purposes
Nx ResourcePAYG Credit 1.0
QualifiersDateTimeOptionalRead-WriteScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Device PayG Credit Remaining re 3007039c266f4d0491cf8af57e474145.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Device PayG Credit Remaining re 3007039c266f4d0491cf8af57e474145.html deleted file mode 100644 index 3d06a50f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Device PayG Credit Remaining re 3007039c266f4d0491cf8af57e474145.html +++ /dev/null @@ -1,671 +0,0 @@ -Device PayG Credit Remaining "re"

Device PayG Credit Remaining "re"

Octets5
Descriptionshould be The value remaining for the device to OFF. - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token
Nx ResourcePAYG Credit 1.0
QualifiersIntegerMandatoryRead-WriteScope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Dummy \342\200\234dmy\342\200\235 955a58001e0b49cfa50bdd7ea7b41e39.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Dummy \342\200\234dmy\342\200\235 955a58001e0b49cfa50bdd7ea7b41e39.html" deleted file mode 100644 index fd8e6831..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Dummy \342\200\234dmy\342\200\235 955a58001e0b49cfa50bdd7ea7b41e39.html" +++ /dev/null @@ -1,669 +0,0 @@ -Dummy “dmy”

Dummy “dmy”

Octets
DescriptionSome Bluetooth chips require fixed-length characteristics, this dummy can make up for variation in other properties lengths
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersOptional
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Last Added PayG Credit lcr 81566cd01ed4418ea2d58275d95be744.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Last Added PayG Credit lcr 81566cd01ed4418ea2d58275d95be744.html deleted file mode 100644 index 9a3ca176..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Last Added PayG Credit lcr 81566cd01ed4418ea2d58275d95be744.html +++ /dev/null @@ -1,669 +0,0 @@ -Last Added PayG Credit "lcr"

Last Added PayG Credit "lcr"

Octets2
DescriptionHistorical last PayG credit update duration. Range is from 01-9999
Nx ResourcePAYG Credit 1.0
QualifiersIntegerOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Mode mo b3b54440869e4e28ab6484305302b94d.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Mode mo b3b54440869e4e28ab6484305302b94d.html deleted file mode 100644 index ab1c0065..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Mode mo b3b54440869e4e28ab6484305302b94d.html +++ /dev/null @@ -1,671 +0,0 @@ -Mode "mo"

Mode "mo"

Octets1
Descriptionmode of device i.e. leading/following etc - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token
Nx ResourcePAYG Credit 1.0
QualifiersRead-WriteScope: Shared Attr
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/PayG Token tkn a325dc9913444fffa0e7406337797acd.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/PayG Token tkn a325dc9913444fffa0e7406337797acd.html deleted file mode 100644 index 0e6b7dd8..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/PayG Token tkn a325dc9913444fffa0e7406337797acd.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Token "tkn"

PayG Token "tkn"

Octets5
Descriptionhttps://github.com/EnAccess/OpenPAYGO-HW. Accepted by device only if valid. No read token to ensure unsecured gateways cannot act maliciously.
Nx ResourcePAYG Credit 1.0
QualifiersEncryptedIntegerScope: Shared AttrWrite-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries History Index \342\200\234thi\342\200\235 32f0ca52c1ba47fbbd9a9540fc05b9f3.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries History Index \342\200\234thi\342\200\235 32f0ca52c1ba47fbbd9a9540fc05b9f3.html" deleted file mode 100644 index d78e6fb5..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries History Index \342\200\234thi\342\200\235 32f0ca52c1ba47fbbd9a9540fc05b9f3.html" +++ /dev/null @@ -1,671 +0,0 @@ -Timeseries History Index “thi”

Timeseries History Index “thi”

Octets4
DescriptionWhenever this property is available that means it is a timeseries resource. -thi = 0, means there is no more timeseries data. -Any number greater than zero can be used for indicating which data proceeds especially when the timestamp is the same.
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersRead-Only
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries History remaining \342\200\234tsh\342\200\235 97453b8372914a0fa4042380ee986285.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries History remaining \342\200\234tsh\342\200\235 97453b8372914a0fa4042380ee986285.html" deleted file mode 100644 index 18cfc9f9..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries History remaining \342\200\234tsh\342\200\235 97453b8372914a0fa4042380ee986285.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries History remaining “tsh”

Timeseries History remaining “tsh”

Octets2
DescriptionAny resource with one or more timeseries properties is enabled with this optional property which can indicate that the device has stored historical data while offline that it can sequentially upload to the gateway via multiple reads
Nx ResourcePAYG Credit 1.0
QualifiersOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries Timestamp \342\200\234ts\342\200\235 b8c65dbbb1054b0db0ec3f10e052b039.html" "b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries Timestamp \342\200\234ts\342\200\235 b8c65dbbb1054b0db0ec3f10e052b039.html" deleted file mode 100644 index d2a87875..00000000 --- "a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timeseries Timestamp \342\200\234ts\342\200\235 b8c65dbbb1054b0db0ec3f10e052b039.html" +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Timestamp “ts”

Timeseries Timestamp “ts”

Octets4
DescriptionTImestamp of when the data is recorded
Nx ResourceAirLink PUE Timeseries 1.0
QualifiersRead-Only
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timestamp at which PayG remaining was calculated p 836dff85b1184a0fba33a4d3ee43d249.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timestamp at which PayG remaining was calculated p 836dff85b1184a0fba33a4d3ee43d249.html deleted file mode 100644 index c30ceea2..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timestamp at which PayG remaining was calculated p 836dff85b1184a0fba33a4d3ee43d249.html +++ /dev/null @@ -1,669 +0,0 @@ -Timestamp at which PayG remaining was calculated "pts"

Timestamp at which PayG remaining was calculated "pts"

Octets6
DescriptionLinux epoch format, expires in Y2035. The Last date and time when the PayG update was fetched from the Server to client [Mobile phone or other communication device]
Nx ResourcePAYG Credit 1.0
QualifiersDateTimeOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timestamp of last PAYG Update to device lts 6d90c70764b34215ad2ebeee7a8829ac.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timestamp of last PAYG Update to device lts 6d90c70764b34215ad2ebeee7a8829ac.html deleted file mode 100644 index f75bbedc..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/Timestamp of last PAYG Update to device lts 6d90c70764b34215ad2ebeee7a8829ac.html +++ /dev/null @@ -1,669 +0,0 @@ -Timestamp of last PAYG Update to device "lts"

Timestamp of last PAYG Update to device "lts"

Octets6
DescriptionLinux epoch format, expires in Y2035, readonly - Historical last PayG update Timestamp
Nx ResourcePAYG Credit 1.0
QualifiersDateTimeOptionalRead-OnlyScope: Time-series
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/cbor map header dad9bb74ae304a7db2b24cf1f5f0393f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/cbor map header dad9bb74ae304a7db2b24cf1f5f0393f.html deleted file mode 100644 index c0e19f9a..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/PAYG Credit Resource pc fe07481669c0479abdec399ee05fddb9/cbor map header dad9bb74ae304a7db2b24cf1f5f0393f.html +++ /dev/null @@ -1,669 +0,0 @@ -cbor map header

cbor map header

Octets1
Descriptionencapsulating the rest of the properties
Nx Resource
QualifiersRead-Write
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42.html deleted file mode 100644 index 00af3dc4..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42.html +++ /dev/null @@ -1,669 +0,0 @@ -Range Testing Results
📏

Range Testing Results

Range testing was done with a Laird BL652 (nRF51832) chip in advertisement mode being scanned from an Android phone.

Coverage around concrete house
Coverage through concrete walls
Line of sight range
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/0CAA08AD-79CD-42BD-ADC3-AA65A3272E82.jpeg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/0CAA08AD-79CD-42BD-ADC3-AA65A3272E82.jpeg deleted file mode 100644 index ff9feda6..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/0CAA08AD-79CD-42BD-ADC3-AA65A3272E82.jpeg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/20210614_085821_mfnr.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/20210614_085821_mfnr.jpg deleted file mode 100644 index 0f80c164..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/20210614_085821_mfnr.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/768DFA45-AB63-408E-B84A-8A7F18BEFE90.jpeg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/768DFA45-AB63-408E-B84A-8A7F18BEFE90.jpeg deleted file mode 100644 index e09a7629..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Range Testing Results ef4c4ece8fba4542830d415dc0fa1a42/768DFA45-AB63-408E-B84A-8A7F18BEFE90.jpeg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.29_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.29_AM.png deleted file mode 100644 index 65b99efa..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.29_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.40_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.40_AM.png deleted file mode 100644 index aac0e7fc..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.40_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.54_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.54_AM.png deleted file mode 100644 index a0a016c0..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-07-13_at_11.34.54_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-08-13_at_12.35.43_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-08-13_at_12.35.43_PM.png deleted file mode 100644 index 68b4c936..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screen_Shot_2021-08-13_at_12.35.43_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screenshot_20230208-141454_AirLink_BLE_Simulator.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screenshot_20230208-141454_AirLink_BLE_Simulator.jpg deleted file mode 100644 index 83ed0383..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/Screenshot_20230208-141454_AirLink_BLE_Simulator.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/bluetooth-logo-color-black.svg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/bluetooth-logo-color-black.svg deleted file mode 100644 index d74b09f9..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/bluetooth-logo-color-black.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - bluetooth-logo-color-black - Created with Sketch. - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/dvkble_kit.jpeg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/dvkble_kit.jpeg deleted file mode 100644 index c3d78a6d..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/dvkble_kit.jpeg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/programmer.jpeg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/programmer.jpeg deleted file mode 100644 index f7420495..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Devices 4dfc27f9e47e452594ec42eafbb56154/programmer.jpeg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26.html deleted file mode 100644 index 553e1506..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26.html +++ /dev/null @@ -1,712 +0,0 @@ -AirLink Server

AirLink Server

Demo Tenant

We have created a fully functional demo tenant to enable quick testing of AirLink in conjunction with the gateway and device apps. The demo tenant also can plot information reported from the Nordic BLE kit, as shown below:

AirLink IoT Server Architecture

AirLink builds a structure on top of a standard Thingsboard.io professional edition server. The only, minimal customization is the addition of a rule node to generate PAYG tokens, which is not a default part of Thingsboard. A Thingsboard PE server is a ‘multi-tenant’ server, which means several separated businesses can run their IoT devices from a single server without visibility into the other tenants data. This setup makes it a perfect candidate for a centrally hosted server that can onboard new participants in the AirLink community. Please familiarize yourself with http://thingsboard.io/ documentation before reading the rest of this page!

-

In the figure, the “AirLink Tenant” is the main location of the IoT setup of a particular tenant, which can be very different from the next tenant. In fact, we setup a second “Lost & Found Tenant”, also referred in this documentation as “Neighborhood Watch”, which is intended to be a common repository for tenant gateways who find AirLink devices that don’t belong to them but want to help locate them.

This documentation serves as the reference to setup your own tenant in a way that is AirLink compliant. The bulk of the setup is very simple, and the only relatively complex configuration which is the “Rule Chain”, can be imported from a JSON file available in the AirLink Server repository.

AirLink Server Tenant Setup

Concepts by Use Case

Business NeedBusiness ConceptsThingsboard Concepts
Devices provision themselvesProvisionDeviceTechnicianAPI TokenDevice AuthTokenGatewayIntegrationProvisioningRule-chain Script
AirLink uses nexus channel resource models ie standard device typesAirLinkAttributesDevice Profiles
Simusolar uses Aeris globalSIM in PAYG** gatewaysAeris VPNFirst PAYG ServerDevice AuthTokenGatewayIntegration
Phone or solar panel controls deviceAirLinkDevice AuthTokenDevice Group
Device belongs to customerPAYG Box IDPAYG CustomerSales OrderSystem IDAPI TokenCustomerDeviceIntegration
Orders make CustomersPAYG CustomerSales OrderAssetCustomer
CBOR transfer over HTTP/MQTTAirLinkData ConverterIntegration
Loan platform updates creditsFinancingPAYG CreditWebiAPI TokenIntegration
Device heeds PAYG creditsFinancingDevice AuthTokenIntegration
AirLink uses Nexus Keycode or Solaris OpenPAYGO TokenAirLinkToken AutomationAttributesRule-chain Script
Device data savedCallhome DataGraphs and MapsData ConverterDeviceDevice AuthTokenRule-chain Script
Partners can see referred customer dataGraphs and MapsPAYG CreditPAYG CustomerCustomer GroupData ChartEntity View Group
Technicians update devicesDFUDebug DataProvisionDeviceService SwapTechnicianAssetAsset GroupDFUData ConverterDeviceDevice AuthTokenGatewayIntegrationUser Group
Simusolar operates in several countries with inter-country asset movementCentralized ITAssetAsset GroupUser Group
Simusolar franchises payg functionalityDebug DataDistributorGraphs and MapsPAYG CreditToken AutomationCustomer GroupCustomer HierarchyMulti-tenancy

Test entities

We encourage creating test entities to learn about Thingsboard, that way production entities can be easily kept separate. Every entity can be grouped, so creating a test group for each type of entity is an easy way to do testing. Entities can be added to a test group by selecting one or more entities from the 'All' catch-all group, and adding to a specific group.

-

Tenant Configuration

How to get started with your AirLink Server tenant

Here is a step by step setup to your own tenancy in the AirLink server. Alternatively, if you end up installing your own Thingsboard.io server, this guide can also help you right past the end of the installation steps detailed on Thingsboard.io.

  1. Assumption: You have a “Tenant Administrator” email login provided by EnAccess for the first AirLink server, or one that you made for your own server
  1. Setup Device Profiles
    1. Setup a “Gateways” profile and enable the “Allow provisioning...” option. To do this, you need to tap the pencil button and then remember to save by pressing the tick-mark button.
    1. Setup a “Devices” Profile, and enable the “Default” checkbox as in the figure above. Also enable the “Allow provisioning...” option as in the previous step
    1. Copy the Provisioning Keys and Secrets, you will need to input these in the AirLink app!
  1. Import the rule chains: All data that flows to the thingsboard server goes to the root rule chain, and any other rule chain that the root chain hands off to. To process AirLink data, especially to enable PAYG token generation as well as the Neighborhood watch function, we customized this rule chain and saved it as a JSON file in the AirLink Server repository. To use functionality beyond just the core AirLink functionality, we created another “Business Logic” rule chain which gets handed off all the data from the Root rule chain.
    1. First import the “Business Logic”, “Unknown Device Piggyback” and “PAYG Software Providers” rule chains JSON file by going to Rule Chain → + → Import Rule Chain
    1. Next, Import the “Root Advertisements and Telemetry” Rule chain. Your rule chain setup should look like this with no errors now:
    1. Mark this rule chain as “Root” using the ‘flag’ button
  1. Setup Test Devices, Customers, Users, Assets etc as shown in test entities above to assign devices, test the “Relationships” property and so on to build a digital model of your IoT business model. As you can see, each screenshot above has our own Test entities for good measure!
  1. That’s it for the minimum required configuration! Next, configure your AirLink App to talk to your server, and your set to test with real devices!

The following sections show a few details of the other elements of the server, the latest documentation for which can be found on thingsboard.io.

User Roles

Two main roles are defined, Tenant Admin (first assigned along with tenant) who has full privileges within the platform including controlling other users access, and Technician who has full device privileges including re-provisioning and assigning to customers. Customer administration is presumed to be done via API integration by the business applications server, hence there is no third role regarding customer administration.

-

Device Provisioning Flow in AirLink Server

Device StateGateway Action
No Serial #Program Serial # via BLE to Device
Has Serial #, but not ProvisionedAct as Application Server: using Tenant Admin or Customer User credentials (login + password) -1. Generate Server Auth Token (SAT) and Airlink ID (aid) -2. Provision Device to Devices Profile* in Server and get DeviceUUID -3. Generate PAYG Token Secret (PTS) -4. Write PTS to Server Side Attributes using DeviceUUID in Thingsboard server -5. Forget DeviceUUID - -using BLE, -1. write (SAT), (PTS) to device
Has Serial #, SAT, PTSAct as application server: -Request PAYG Token generation using user credentials / token generation credentials - -Act as regular gateway: -1. Request PAYG Attributes for Device using SAT -2. Write PAYG Token to device using BLE
Has Serial#, SAT, PTS and test tokenRead device telemetry and post to server

*Device profiles can be considered as the equivalent of 'class definitions' in object oriented programming, with each device then being an instance of a particular profile. We have two main device profiles, an edge device and a gateway. These could potentially be merged, however Thingsboard does make a differentiation between a gateway and non-gateway with a checkbox as well as requirements on data format, hence we define two profiles.

Attributes and Time Series Data

Data exchanged with the device or with the application server in the context of a device are termed attributes.

In the AirLink server (based on Thingsboard), Attributes are Device properties that are only stored as current values, while Timeseries data are properties tracked over time. Attributes and Timeseries keys can be created during provisioning or are automatically created in the Airlink server when first posted, allowing for flexibility in growing resource models over time without requiring reconfiguration of the server. The core AirLink resource models are registered in the Nexus Resource Models Registry.

The following are the major attribute types and their scopes in a basic AirLink setup.

Server Side: Attributes only seen by the server and application server integrations

Shared by Server: Attributes written to by the server and application server integrations, and available to the Device to read only

Device Side: Attributes written to by the device, and by application server integrations. Time series data also behaves this way.

Screenshot from AirLink server showing Attributes and Telemetry. Telemetry is always client-scope or 'device side'

Attribute Scopes for AirLink resource properties

NameScope
Rule chain alarm ThresholdsServer Side
Device Administration ConfigurationServer Side
PAYG Token Secret, Message IDServer Side
PAYG Command or TokenShared by Server
Device provisioning or claiming keysShared by Server
Customer Provisioning InformationShared by Server
AirLink IDShared by Server
Timeseries DataDevice (Client) Side:
PAYG StatusDevice (Client) Side:
Config status e.g. Firmware versionDevice (Client) Side:

CBOR data types are defined here:

https://datatracker.ietf.org/doc/html/rfc7049#section-2.1

Server and Shared Data to support AirLink Devices

Nx ResourcertrResource Propertykeyrtr_propQualifiersCBOR TypeDescription
AirLink Device Provisioning 1.0prdServer Auth Tokensatprd_satMandatoryScope: SharedString3Thinsboard.io has a 20-char device authentication token unique to each device. During device provisioning, this token is written to the device, permanently attaching the device to the server. The token is never transmitted again.
AirLink Device Provisioning 1.0prdProvisioning Statuspstprd_pstInteger (uint8_t)MandatoryScope: Shared0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
AirLink Device Provisioning 1.0prdPayG Unitpuprd_puMandatoryScope: SharedString336^1 The unit of the PayG update, it can be minutes, hours, days, months and years. [m-minutes, h-hours, d- days, M-months, Y-years]
AirLink Device Provisioning 1.0prdPayG Token starting codepscprd_pscScope: SharedString31-day token, https://github.com/EnAccess/OpenPAYGO-HW
AirLink Device Provisioning 1.0prdPayG Units acceptedpulprd_pulMandatoryScope: DeviceString3CSV list of acceptable Units e.g. "l" for liters, "h,d" for hours and days
AirLink Client Provisioning 1.0prcProvisioning Statuspstprc_pstInteger (uint8_t)MandatoryScope: Shared0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
AirLink Client Provisioning 1.0prcReadable ID + Cbor header 2 bytesridprc_ridInteger (uint32_t)MandatoryScope: Shared262^(8*4) = 4,294,967,296 numeric device ids or payment reference or any number that device should display
AirLink Client Provisioning 1.0prcCustomer's Phonecpprc_cpOptionalScope: SharedString3Requested by customers for stolen device reporting (needs a workflow to collect this number explicitly from client in addition to regular lead number). Assign the mobile number of the customer to a device. With maximum of 16 character including + and country code number. This is for security purpose
AirLink Client Provisioning 1.0prcCustomer Namecnprc_cnOptionalScope: SharedString3Requested by customers for lost device reporting. This writes the customer name to a device with the maximum of 16 characters with space and special characters inclusive.
AirLink Nexus Command 1.0nxcNexus COSE commandcmdnxc_cmdScope: Shared3Upto 120 bytes for Nexus Channel Passthrough commands
AirLink PAYG 1.0pygCurrent Server Timeltpyg_ltOptionalScope: DeviceLinux epoch format, expires in Y2035. The current time when updating the device with PayG update. We do not recommend using this to calculate PAYG use, because it could be used to trick the device into more tokens. This is for non-PAYG purposes eg client experience
AirLink PAYG 1.0pygTimestamp of last PAYG Update to deviceltspyg_ltsOptionalScope: DeviceLinux epoch format, expires in Y2035, readonly - Historical last PayG update Timestamp
AirLink PAYG 1.0pygTimestamp at which PayG remaining was calculatedtspyg_tsOptionalScope: DeviceLinux epoch format, expires in Y2035. The Last date and time when the PayG update was fetched from the Server to client [Mobile phone or other communication device]
AirLink PAYG 1.0pygLast Added PayG Creditlcrpyg_lcrOptionalScope: DeviceHistorical last PayG credit update duration. Range is from 01-9999
AirLink PAYG 1.0pygPayG Tokentknpyg_tknScope: SharedSipHash token. Accepted by device only if valid. No read token to ensure unsecured gateways cannot act maliciously.
PAYG Credit 1.0pygModemopyg_moNot ImplementedScope: Sharedmode of device i.e. leading/following etc - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token. AirLink 1.0 does not implement Nexus Channel, which was in development at the time of release of AirLink 1.0
PAYG Credit 1.0pygDevice PayG Credit Remainingrepyg_reMandatoryScope: Time Seriesshould be The value remaining for the device to OFF. - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token. AirLink 1.0 does not implement Nexus Channel, which was in development at the time of release of AirLink 1.0
PAYG Credit 1.0pygPayg Token Secretptspyg_ptsMandatoryScope: ServerOn first release, this is the Nexus Keycode secret
PAYG Credit 1.0pygPayg Token Message IDmsgpyg_msgMandatoryScope: ServerOn first release, this is the Nexus Keycode message ID

Posting of device data to the server for off-edge devices is done via gateway by sharing their device access tokens with the gateway using the application server. For Smartphone gateways, this can be done via a separate channel to the application server. For 'thing' gateways, this must be done via a 'disappearing' shared server attribute for that gateway, so that tokens are not saved in the insecure data space for too long. The application server then would update the attribute to transfer tokens to the gateway, and then blank it out once the gateway receives the tokens or after a certain timeout.

Authentication and Access types

AirLink server controls IoT interactions and can connect with the business applications server via REST API. The Business Applications server must authenticate itself as a User or Customer using JWT authentication, or have access keys to a custom integration as specified in the authentication flow. Note that only Custom Integration configurations are visible in the UI, the built-in telemetry, admin etc endpoints are only visible in the Swagger documentation but all events from each endpoint are posted to the root rule chain, enabling customized business logic for all types of data.

AirLink Server Device Auth Flows

Full API reference is available as live Swagger documentation here after you have a tenant login:

Swagger UI
https://airlink.enaccess.org/swagger-ui.html

Data Transport

Device-initiated or gateway-initiated communications posting time-series data and accepting a PAYG update response are expected to form the bulk of IoT traffic in PAYG use cases. Considering the Auth flows available for posting data, AirLink recommends four types of transport:

  1. Individual devices equipped with GSM send data directly using their device token e.g. water pump control boxes
  1. Gateways bundled with a sale register as MQTT gateways in the AirLink server to be able to post data from multiple downstream devices while minimizing bandwidth use. This is relevant because such IoT gateways often use data-thrifty 'Global-SIM' cards which can rack up high data costs e.g. solar panel with GSM chip bundled with 3 batteries that it charges
  1. Phone apps acting as gateways post data as the device and get PAYG updates from the server, using the individual device tokens downloaded during the sales and service flows. This needs to be enabled by the business applications server and is useful because several phone gateways may be used to operate the same device and a one-device multi-gateway scenario with offline access is not well served by MQTT. PAYG security is still ensured by the fact that the token is still only decode-able to the server and the device and not the intervening gateways. e.g. equipment owner could operate the device, several equipment technicians could operate the device etc.
  1. Phone apps and gateways post advertisement data for unknown AirLink devices to facilitate lost-and-found using a special property within the gateway's telemetry which is then processed by the root rule chain with the necessary validations to ensure that data gets send to the correct recipient and so that it is not used for posting non-advertising telemetry or attributes for the device.

AirLink currently only supports HTTP transport, CoAP will be enabled in the future. CBOR formatting of data is not currently supported.

MQTT vs HTTP/CoAP in an AirLink context

ConceptMQTTHTTP/CoAP ✅
Application Server + IoT Server model for value-added services⚠️ Can only be used for IoT comms, not business app commsNeeded by phone app for comms to application server, but not by non-phone gateways
BandwidthBetter than HTTP for persistent connections - not expected in AirLink✅ CoAP is better than MQTT, more so when connections are sporadic - as is expected in AirLink
IoT Gateway functionality✅ Thingsboard supports MQTT as gateway paired with customer devices, majority use case -✅ Single connection can report multiple devices' data -❌ If multiple gateways need to own devices, they would need to be transferred between devices e.g. Field service agent's phone, customer's phone, farm boys' phone etc by online transactions with server - may not be feasible in the field⚠️ Credential of each device would need to be known to gateway (additional thingsboard workflow), and list of gateways that can control device wouldn't be registered with Airlink server (more potential for spoofing), requiring credentials to be refreshed or other security measures -⚠️ Each device would need to be reported separately, increasing number of HTTP required connections -✅ Could support arbitrary number of gateways

KeyCode generation

Nexus Keycode generation integrated into the Root Rule Chain

Nexus Keycode as well as OpenPAYGO Token use 'SipHash' to generate the key, and have Python/Java libraries available. However Thingsboard only runs single-file JavaScript in it's rule chains and custom Java in it's rule nodes, hence we decided to create a Java rule node based on Nexus Keycode. External keycodes could also be used by swapping that rule node with an External REST component in the AirLink server that points to a client's server running code generation, and response sent as token via AirLink to the device.

Since Keycode generation is not a telemetry-time operation but rather account-payment time operation, the number of requests will scale with the number of devices and payment frequency rather than the number or frequency of telemetry data.

The provided KeyCode node

  1. Understands incoming business request as adding credit, setting credit or unlocking the device - POST REST requests to the rule-engine, authenticated using role-based access control (login) are used for the same.
  1. Uses a per-device secret stored in the AirLink server db and the SipHash algorithm to generate the actual keycode
  1. Returns this keycode to the rule chain for saving in the database to serve future GET requests from devices, and potentially sends it to a business server if required for SMS communications or saving in the business application server database

KeyCode Generator Test Results

Here is a test sequence that can verify that the PAYG Token chain is working end to end from credit request to device function.

KeyCode Node Functionmsg_id, saved in server side attributesCredit Request Packet from Postman POST mimicking loan management server - note the knowledge of ‘Device ID’, which is the UUID of the IoT device on the AirLink ServerInput Key to KeyCode node, visible in node “Events” metadata with Debug enabled on AirLink ServerOutput Message from KeyCode node sent to Device via Shared Attributes sync’d through the AirLink gateway App, visible in node “Events” metadata with Debug enabled on AirLink ServerDecoded Output within AirLink Device implementing Nexus Keycode
Added 6 Days1{ - “pay_g_tkn”:”6” -}“pay_g_tkn”:”6”,*010 050 135 981 34#- Received tkn *01005013598134# -- PayG update received -- Keycode is valid. -- Credit remaining: 86400 seconds -- PayG update received
Set Device to exactly 10 Days2{ - “set_tkn”:”11” -}“set_tkn”:”11”*123 026 694 078 81#- Received tkn *12302669407881# -- PayG update received -- Keycode is valid. -- Credit remaining: 950100 seconds -- PayG update received
Unlock the Device3{ - “unlock_tkn”:”1” -} “unlock_tkn”:”1”*336 153 083 439 44#- Received tkn *33615308343944# -- PayG update received -- Keycode is valid. -- The device is unlocked -- PayG update received

Lost asset location tracking

A significant benefit of interoperability is the ability across vendors to track lost and stolen items. Given the distributed and rural nature of PAYG distribution, this becomes particularly relevant if all wireless-enabled devices can report their current location to any AirLink gateway whether paired with the device or not. The gateway then needs to be able to post this data to Thingsboard without knowing the device's security token. To facilitate this process, the gateway posts device data one at a time as it's own timeseries property which is processed by the Rule chain modification shown below. We then host a 'Lost and Found Tenant' in the server as shown in the architecture diagram, where un-secured device locations can be stored by gateways registered to other tenants. The process then is that if a gateway chances upon a device it doesn't have access to, it reports the advertising packet along with it's own location to the 'neighborhood watch' tenant, which then passes on the information to the tenant that owns the device using the device's manufacturer code, and automated rule-chain code passes this unregistered device onto the lost and found tenant where it can be available for access by the tenant who may have lost the device. If the tenant owning the device is the same as that of the gateway, then MQTT can also be leveraged for posting advertisement data without any change required to the server. However for devices belonging to other tenants, since a gateway cannot claim them, this flow of posting via the /timeseries/ endpoint for the gateway itself as a piggyback device is valid. Unfortunately thingsboard.io does not provide an easy method to post several devices from the gateway within the same transmission, hence the gateway will see one transmission per reported device. This should be considered in the data limits of each device, and alternate flows employed if the data flow is a bottleneck. Data-rich gateways such as Smartphones should afford virtually unlimited device reporting per day.

Gateway Telemetry with a Piggyback Device

-

\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2.html deleted file mode 100644 index 6edab83d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2.html +++ /dev/null @@ -1,669 +0,0 @@ -Attribute Scopes for AirLink resource properties

Attribute Scopes for AirLink resource properties

NameScope
Rule chain alarm ThresholdsServer Side
Device Administration ConfigurationServer Side
PAYG Token Secret, Message IDServer Side
PAYG Command or TokenShared by Server
Device provisioning or claiming keysShared by Server
Customer Provisioning InformationShared by Server
AirLink IDShared by Server
Timeseries DataDevice (Client) Side:
PAYG StatusDevice (Client) Side:
Config status e.g. Firmware versionDevice (Client) Side:
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/AirLink ID 34a6a602814745ab9a28940d1d3af142.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/AirLink ID 34a6a602814745ab9a28940d1d3af142.html deleted file mode 100644 index 72b2fc2f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/AirLink ID 34a6a602814745ab9a28940d1d3af142.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink ID

AirLink ID

ScopeShared by Server
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Config status e g Firmware version 988f3023800e4866a1e1261b6fa36f35.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Config status e g Firmware version 988f3023800e4866a1e1261b6fa36f35.html deleted file mode 100644 index 6e6fe70d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Config status e g Firmware version 988f3023800e4866a1e1261b6fa36f35.html +++ /dev/null @@ -1,669 +0,0 @@ -Config status e.g. Firmware version

Config status e.g. Firmware version

ScopeDevice (Client) Side:
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Customer Provisioning Information c6f47efb3ff542858cf76d07d5186883.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Customer Provisioning Information c6f47efb3ff542858cf76d07d5186883.html deleted file mode 100644 index 2831030c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Customer Provisioning Information c6f47efb3ff542858cf76d07d5186883.html +++ /dev/null @@ -1,669 +0,0 @@ -Customer Provisioning Information

Customer Provisioning Information

ScopeShared by Server
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Device Administration Configuration 30d49450eb1a44ccbd1ac620dcc63072.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Device Administration Configuration 30d49450eb1a44ccbd1ac620dcc63072.html deleted file mode 100644 index 0ff530bb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Device Administration Configuration 30d49450eb1a44ccbd1ac620dcc63072.html +++ /dev/null @@ -1,669 +0,0 @@ -Device Administration Configuration

Device Administration Configuration

ScopeServer Side
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Device provisioning or claiming keys c74f19fa1fe54dddb737c804e3d103da.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Device provisioning or claiming keys c74f19fa1fe54dddb737c804e3d103da.html deleted file mode 100644 index 70976d72..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Device provisioning or claiming keys c74f19fa1fe54dddb737c804e3d103da.html +++ /dev/null @@ -1,669 +0,0 @@ -Device provisioning or claiming keys

Device provisioning or claiming keys

ScopeShared by Server
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Command or Token ef142acab5b44b3a9fcb61522d5acaf5.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Command or Token ef142acab5b44b3a9fcb61522d5acaf5.html deleted file mode 100644 index bee91aaf..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Command or Token ef142acab5b44b3a9fcb61522d5acaf5.html +++ /dev/null @@ -1,669 +0,0 @@ -PAYG Command or Token

PAYG Command or Token

ScopeShared by Server
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Status 11596ed3dbde4bf4a6f9621ddc6dcede.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Status 11596ed3dbde4bf4a6f9621ddc6dcede.html deleted file mode 100644 index 75aff009..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Status 11596ed3dbde4bf4a6f9621ddc6dcede.html +++ /dev/null @@ -1,669 +0,0 @@ -PAYG Status

PAYG Status

ScopeDevice (Client) Side:
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Token Secret, Message ID b093831971814a90b318c81b731c49f2.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Token Secret, Message ID b093831971814a90b318c81b731c49f2.html deleted file mode 100644 index 88fc0c3c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/PAYG Token Secret, Message ID b093831971814a90b318c81b731c49f2.html +++ /dev/null @@ -1,669 +0,0 @@ -PAYG Token Secret, Message ID

PAYG Token Secret, Message ID

ScopeServer Side
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Rule chain alarm Thresholds c22121ef28224db891e765cb24ba59d5.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Rule chain alarm Thresholds c22121ef28224db891e765cb24ba59d5.html deleted file mode 100644 index ea22e9fa..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Rule chain alarm Thresholds c22121ef28224db891e765cb24ba59d5.html +++ /dev/null @@ -1,669 +0,0 @@ -Rule chain alarm Thresholds

Rule chain alarm Thresholds

ScopeServer Side
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Timeseries Data 5c5d4a527a5e4fa18fc32c31fe1fba8c.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Timeseries Data 5c5d4a527a5e4fa18fc32c31fe1fba8c.html deleted file mode 100644 index e33705dc..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Attribute Scopes for AirLink resource properties 81cd9ab605c54348a6c03bbef738dbd2/Timeseries Data 5c5d4a527a5e4fa18fc32c31fe1fba8c.html +++ /dev/null @@ -1,669 +0,0 @@ -Timeseries Data

Timeseries Data

ScopeDevice (Client) Side:
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82.html deleted file mode 100644 index 6c1b74b9..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82.html +++ /dev/null @@ -1,669 +0,0 @@ -Concepts by Use Case

Concepts by Use Case

Business NeedBusiness ConceptsThingsboard Concepts
Devices provision themselvesProvisionDeviceTechnicianAPI TokenDevice AuthTokenGatewayIntegrationProvisioningRule-chain Script
AirLink uses nexus channel resource models ie standard device typesAirLinkAttributesDevice Profiles
Simusolar uses Aeris globalSIM in PAYG** gatewaysAeris VPNFirst PAYG ServerDevice AuthTokenGatewayIntegration
Phone or solar panel controls deviceAirLinkDevice AuthTokenDevice Group
Device belongs to customerPAYG Box IDPAYG CustomerSales OrderSystem IDAPI TokenCustomerDeviceIntegration
Orders make CustomersPAYG CustomerSales OrderAssetCustomer
CBOR transfer over HTTP/MQTTAirLinkData ConverterIntegration
Loan platform updates creditsFinancingPAYG CreditWebiAPI TokenIntegration
Device heeds PAYG creditsFinancingDevice AuthTokenIntegration
AirLink uses Nexus Keycode or Solaris OpenPAYGO TokenAirLinkToken AutomationAttributesRule-chain Script
Device data savedCallhome DataGraphs and MapsData ConverterDeviceDevice AuthTokenRule-chain Script
Partners can see referred customer dataGraphs and MapsPAYG CreditPAYG CustomerCustomer GroupData ChartEntity View Group
Technicians update devicesDFUDebug DataProvisionDeviceService SwapTechnicianAssetAsset GroupDFUData ConverterDeviceDevice AuthTokenGatewayIntegrationUser Group
Simusolar operates in several countries with inter-country asset movementCentralized ITAssetAsset GroupUser Group
Simusolar franchises payg functionalityDebug DataDistributorGraphs and MapsPAYG CreditToken AutomationCustomer GroupCustomer HierarchyMulti-tenancy
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/AirLink uses Nexus Keycode or Solaris OpenPAYGO To baad0df87fe542168bcf5ebd8a6668b4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/AirLink uses Nexus Keycode or Solaris OpenPAYGO To baad0df87fe542168bcf5ebd8a6668b4.html deleted file mode 100644 index a1c801ca..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/AirLink uses Nexus Keycode or Solaris OpenPAYGO To baad0df87fe542168bcf5ebd8a6668b4.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink uses Nexus Keycode or Solaris OpenPAYGO Token

AirLink uses Nexus Keycode or Solaris OpenPAYGO Token

Thingsboard ConceptsAttributesRule-chain Script
Business ConceptsAirLinkToken Automation
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/AirLink uses nexus channel resource models ie stan c3012da3a0104f53b8832c21fa16a52c.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/AirLink uses nexus channel resource models ie stan c3012da3a0104f53b8832c21fa16a52c.html deleted file mode 100644 index ec8c155d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/AirLink uses nexus channel resource models ie stan c3012da3a0104f53b8832c21fa16a52c.html +++ /dev/null @@ -1,669 +0,0 @@ -AirLink uses nexus channel resource models ie standard device types

AirLink uses nexus channel resource models ie standard device types

Thingsboard ConceptsAttributesDevice Profiles
Business ConceptsAirLink
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/CBOR transfer over HTTP MQTT 6044cee84d404ef0a3933ca8fab60303.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/CBOR transfer over HTTP MQTT 6044cee84d404ef0a3933ca8fab60303.html deleted file mode 100644 index 1d669684..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/CBOR transfer over HTTP MQTT 6044cee84d404ef0a3933ca8fab60303.html +++ /dev/null @@ -1,669 +0,0 @@ -CBOR transfer over HTTP/MQTT

CBOR transfer over HTTP/MQTT

Thingsboard ConceptsData ConverterIntegration
Business ConceptsAirLink
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device belongs to customer 4f8b0c6fa1804ae2ad3a30f3584702ed.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device belongs to customer 4f8b0c6fa1804ae2ad3a30f3584702ed.html deleted file mode 100644 index 118b6ba5..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device belongs to customer 4f8b0c6fa1804ae2ad3a30f3584702ed.html +++ /dev/null @@ -1,669 +0,0 @@ -Device belongs to customer

Device belongs to customer

Thingsboard ConceptsAPI TokenCustomerDeviceIntegration
Business ConceptsPAYG Box IDPAYG CustomerSales OrderSystem ID
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device data saved 0f4a8cfa163841a7b0a3994c8d861c47.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device data saved 0f4a8cfa163841a7b0a3994c8d861c47.html deleted file mode 100644 index 0c05a649..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device data saved 0f4a8cfa163841a7b0a3994c8d861c47.html +++ /dev/null @@ -1,669 +0,0 @@ -Device data saved

Device data saved

Thingsboard ConceptsData ConverterDeviceDevice AuthTokenRule-chain Script
Business ConceptsCallhome DataGraphs and Maps
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device heeds PAYG credits 51d48f9c491d4eb1b18cbaefa5bf510f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device heeds PAYG credits 51d48f9c491d4eb1b18cbaefa5bf510f.html deleted file mode 100644 index b955df65..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Device heeds PAYG credits 51d48f9c491d4eb1b18cbaefa5bf510f.html +++ /dev/null @@ -1,669 +0,0 @@ -Device heeds PAYG credits

Device heeds PAYG credits

Thingsboard ConceptsDevice AuthTokenIntegration
Business ConceptsFinancing
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Devices provision themselves 66b81060a908455fbb17619a5f846bdc.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Devices provision themselves 66b81060a908455fbb17619a5f846bdc.html deleted file mode 100644 index 77e6aaed..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Devices provision themselves 66b81060a908455fbb17619a5f846bdc.html +++ /dev/null @@ -1,669 +0,0 @@ -Devices provision themselves

Devices provision themselves

Thingsboard ConceptsAPI TokenDevice AuthTokenGatewayIntegrationProvisioningRule-chain Script
Business ConceptsProvisionDeviceTechnician
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Loan platform updates credits d337d92a51e241658ab1da5c8b1457d8.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Loan platform updates credits d337d92a51e241658ab1da5c8b1457d8.html deleted file mode 100644 index e60606ee..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Loan platform updates credits d337d92a51e241658ab1da5c8b1457d8.html +++ /dev/null @@ -1,669 +0,0 @@ -Loan platform updates credits

Loan platform updates credits

Thingsboard ConceptsAPI TokenIntegration
Business ConceptsFinancingPAYG CreditWebi
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Orders make Customers d87fa72232354f28a90aeec6fa8e8371.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Orders make Customers d87fa72232354f28a90aeec6fa8e8371.html deleted file mode 100644 index 77aec0c1..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Orders make Customers d87fa72232354f28a90aeec6fa8e8371.html +++ /dev/null @@ -1,669 +0,0 @@ -Orders make Customers

Orders make Customers

Thingsboard ConceptsAssetCustomer
Business ConceptsPAYG CustomerSales Order
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Partners can see referred customer data 8b653e6eebf646529769f252c7c097a8.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Partners can see referred customer data 8b653e6eebf646529769f252c7c097a8.html deleted file mode 100644 index cd00add6..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Partners can see referred customer data 8b653e6eebf646529769f252c7c097a8.html +++ /dev/null @@ -1,669 +0,0 @@ -Partners can see referred customer data

Partners can see referred customer data

Thingsboard ConceptsCustomer GroupData ChartEntity View Group
Business ConceptsGraphs and MapsPAYG CreditPAYG Customer
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Phone or solar panel controls device 7f9bdd56757149afa4f118321faee0e1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Phone or solar panel controls device 7f9bdd56757149afa4f118321faee0e1.html deleted file mode 100644 index d087d1fc..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Phone or solar panel controls device 7f9bdd56757149afa4f118321faee0e1.html +++ /dev/null @@ -1,669 +0,0 @@ -Phone or solar panel controls device

Phone or solar panel controls device

Thingsboard ConceptsDevice AuthTokenDevice Group
Business ConceptsAirLink
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar franchises payg functionality 13bc9d05709f48e5adc0897d3b0b527e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar franchises payg functionality 13bc9d05709f48e5adc0897d3b0b527e.html deleted file mode 100644 index 697c51c6..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar franchises payg functionality 13bc9d05709f48e5adc0897d3b0b527e.html +++ /dev/null @@ -1,669 +0,0 @@ -Simusolar franchises payg functionality

Simusolar franchises payg functionality

Thingsboard ConceptsCustomer GroupCustomer HierarchyMulti-tenancy
Business ConceptsDebug DataDistributorGraphs and MapsPAYG CreditToken Automation
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar operates in several countries with inter 0b6402e0dc114363ababf162e27f883c.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar operates in several countries with inter 0b6402e0dc114363ababf162e27f883c.html deleted file mode 100644 index 1a24ffb2..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar operates in several countries with inter 0b6402e0dc114363ababf162e27f883c.html +++ /dev/null @@ -1,669 +0,0 @@ -Simusolar operates in several countries with inter-country asset movement

Simusolar operates in several countries with inter-country asset movement

Thingsboard ConceptsAssetAsset GroupUser Group
Business ConceptsCentralized IT
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar uses Aeris globalSIM in PAYG gateways 3f2fea6b31704024882cf9a5d171e742.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar uses Aeris globalSIM in PAYG gateways 3f2fea6b31704024882cf9a5d171e742.html deleted file mode 100644 index cefe7836..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Simusolar uses Aeris globalSIM in PAYG gateways 3f2fea6b31704024882cf9a5d171e742.html +++ /dev/null @@ -1,669 +0,0 @@ -Simusolar uses Aeris globalSIM in PAYG** gateways

Simusolar uses Aeris globalSIM in PAYG** gateways

Thingsboard ConceptsDevice AuthTokenGatewayIntegration
Business ConceptsAeris VPNFirst PAYG Server
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Technicians update devices ba872e9b2e5b4ae794e29ca8c342d176.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Technicians update devices ba872e9b2e5b4ae794e29ca8c342d176.html deleted file mode 100644 index 3b0ee360..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Concepts by Use Case 1e02ad21427d45808173baf543d9fb82/Technicians update devices ba872e9b2e5b4ae794e29ca8c342d176.html +++ /dev/null @@ -1,669 +0,0 @@ -Technicians update devices

Technicians update devices

Thingsboard ConceptsAssetAsset GroupDFUData ConverterDeviceDevice AuthTokenGatewayIntegrationUser Group
Business ConceptsDFUDebug DataProvisionDeviceService SwapTechnician
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933.html deleted file mode 100644 index e8f57ba5..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933.html +++ /dev/null @@ -1,672 +0,0 @@ -How we chose Thingsboard.io for AirLink Server
🔷

How we chose Thingsboard.io for AirLink Server

Decision Context

PAYG devices fall under the IoT 'edge device' umbrella. A small set of SaaS companies are currently offering integrated loan management and device management services to PAYG-IoT distributors, primarily focused on token-based GSM home-system devices with some extensions for data feedback. Companies like Angaza have proprietary hardware+software IoT stacks that offer API-integration at some levels while companies like Solaris offer more open source codebases for device firmware and token software. Neither offer an open-source provisioning or analytics platform, although both have SaaS offerings for analytics and PAYG control, integrated with their custom loan platform. Both have a per-end-user-per-month revenue model which is consistent with contemporary SaaS - their revenues scale directly with their customer's customer bases.

Simusolar would like to build or buy a PAYG + IoT Data system that has API integration, configurable analytics, cost-effective implementation, ability to serve partners as well as ability to aggregate data over BLE / GSM / Keypad / Wired systems. EnAccess has provided a $50,000 grant to Simusolar to build an open-source multi-medium IoT communication protocol and data format to support these goals in 2021, with a focus on a deliverable that can enable upstart companies in this area to easily overcome the PAYG-IoT technology barrier. Simusolar currently has pumps and fishing lights that will be modified to meet this standard.


We need to decide on the best alternative approach to building this IoT database and related tools. Simusolar has recently adopted several managed and no-code tools to enable speed of secure and scalable business process automation with low overhead costs. We believe this approach has long term value and hence we give priority to options which have managed or no-code cores. We consider two high-level options -a. custom database with open source dashboarding tools (no-code device/partner management can follow alternate no-code/code analysis) -b. open source IoT platforms

a. Custom db + Dashboard Options

(IaaS, e.g. managed Redis on DigitalOcean + custom droplet with code)

Pros of a custom db+dashboard approach

Freedom to adopt managed or self-managed databases without lock-in

Completely custom server code i.e. process triggers and PAYG responses

The communication layer ends at the database, cleanly separating the application layer which can be full-custom

A central database managed by one entity e.g. EnAccess would only require to handle communication layer while application layer would be handed off, making the central db more easily viable compared to a solution with an application layer

Cons of a custom db+dashboard approach

Requires coding competence to pre-process incoming IoT data stream

Requires domain-expert skill for building of device provisioning and basic analytics flows

Requires a full-time administrator to manage IoT connection to rest of business apps platform

New workflow features require coding and hence take weeks to develop

Initial adoption by business takes longer due to coding requirements

b. IoT Platform Options

(PaaS if managed or IaaS+PaaS in case of self-managed, includes closed-source options for reference)

Guide to IOT Dashboards and Platforms
IOT dashboards are essential for visualizing IOT data, and controlling IOT devices. A Dashboard is a crucial component of any IOT platform. An IOT platform is an hardware and software system for managing IOT devices and collecting, storing, visualising and analysing data from those devices.
http://www.steves-internet-guide.com/iot-mqtt-dashboards/
IoT Analytics - ThingSpeak Internet of Things
ThingSpeak is an IoT analytics platform service that allows you to aggregate, visualize, and analyze live data streams in the cloud. You can send data to ThingSpeak from your devices, create instant visualization of live data, and send alerts.
https://thingspeak.com
ThingsBoard - Open-source IoT Platform
ThingsBoard Read more ThingsBoard Read more ThingsBoard Read more ThingsBoard allows you to create rich IoT Dashboards for data visualization and remote device control in real-time. More than 30 customizable widgets allows you to build end-user custom dashboards for most IoT use-cases. ThingsBoard Features Sign up for ThingsBoard news
https://thingsboard.io
Homepage - Thingstream by u-blox IoT Communication-as-a-Service
u-blox IoT Communication-as-a-Service makes it simple to get data from IoT devices to the enterprise. Accelerate your IoT.
https://thingstream.io
➤ Kaa Demo | Kaa IoT Platform
We use cookies and other tracking technologies to understand how you interact with our website by collecting and reporting information anonymously. Analytics cookies allow us to count visits and traffic sources so that we can measure and improve the performance of our sites. We use cookies to give you a more personalized web experience.
https://www.kaaproject.org/demo
OpenRemote | The 100% Open Source IoT Platform
Our ambition is to overcome the challenges of integrating many different devices and data sources into a single, easy to use asset and data management solution. With the 100% open source OpenRemote IoT platform you can transform data into information and create customised applications.
https://openremote.io
Google Cloud IoT - Fully Managed IoT Services
Benefits Accelerate business agility with IoT data from your physical devices Boost intelligence from edge to cloud Google Cloud IoT services gather real-time insights, at the edge or in the cloud. Do ad hoc analysis with BigQuery, advanced analytics and ML with AI Platform, and visualize results in Google Data Studio.
https://cloud.google.com/solutions/iot
dweet™ - Bug Labs Enteprise IoT Platform
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.
https://dweetpro.io/pricing.html
SQL Database for IoT & Sensor Data | CrateDB
"CrateDB is the only database that gives us the speed, scalability and ease of use to collect and aggregate measurements from hundreds of thousands of industrial sensors for real-time visibility into power, temperature, pressure, speed and torque."
https://crate.io/use-cases/iot-sensor-data/
Particle Company News and Updates | Particle
Particle is a fully-integrated IoT platform that offers everything you need to deploy an IoT product.
https://particle.io
Learn More - ThingSpeak IoT
This website uses cookies to improve your user experience, personalize content and ads, and analyze website traffic. By continuing to use this website, you consent to our use of cookies. Please see our Privacy Policy to learn more about cookies and how to change your settings.
https://thingspeak.com/pages/commercial_learn_more
itead/IoTgo
IoTgo is an open source IoT platform, like WordPress, ZenCart and all other open source software, you can deploy your own IoTgo cloud service. We at ITEAD Studio are committed to provide a complete set of hardware for IoTgo with open source hardware designs and open source firmware.
https://github.com/itead/IoTgo
Introduction to the Azure Internet of Things (IoT)
The Azure Internet of Things (IoT) is a collection of Microsoft-managed cloud services that connect, monitor, and control billions of IoT assets. In simpler terms, an IoT solution is made up of one or more IoT devices that communicate with one or more back-end services hosted in the cloud.
https://docs.microsoft.com/en-us/azure/iot-fundamentals/iot-introduction
AWS IoT - Amazon Web Services
There are billions of devices in homes, factories, oil wells, hospitals, cars, and thousands of other places. With the proliferation of devices, you increasingly need solutions to connect them, and collect, store, and analyze device data. AWS has broad and deep IoT services, from the edge to the cloud.
https://aws.amazon.com/iot/

Pros of an open-source IoT Platform approach

Leverages a pre-built best-practices approach to managing incoming IoT data-stream

Leverages a device provisioning and basic analytics platform that is ready to go, reducing the startup-building burden

New workflows can be built quickly as many of these platforms offer drag and drop UIs for process triggers based on incoming IoT connections

Companies can choose a managed or SaaS model for the same service if their business model supports that choice better than a self-managed PaaS

Cons of an open-source IoT Platform approach

Adopters would be initially oblivious to implementation details before they can study the large amount of platform source code in the specific programming language

The Application layer comes with presumptions about IoT management that may not apply across all businesses

Any central entity such as EnAccess who manages a common db might need to provide application-level client-management/API as well as database management and communication layer level API


Perspectives on Approach

Simusolar has experienced the often hidden time-cost and domain-knowledge complexity of building device-provisioning/onboarding flows for IoT systems, and considers provisioning an important complement to the IoT data/PAYG flow when considering approaches facilitating new ventures in this field. Standardizing this while considering privacy best-practices could reduce a big barrier, further abstracting away the technical details for integrating PAYG IoT with other business applications.

Data Retention management and Analytics is another natural feature desired of GSM IoT collections. We conjecture that most IoT analysis usually pivots on a single plotted variable for a particular device class e.g. power used by time of day for energy products, along with some standard status variables e.g. location, error state. PAYG control also has common requirements e.g. on/off control or use-metered control.

Hence there are opportunities to design a platform that has pre-built, privacy-enabled standard features for device provisioning, single-variable control and single-variable graphing with map and status indicators and a built in retention policy. Such a platform could enable adopters of the project to incorporate standard IoT outcomes easily into their business operations.

Lock-in risks as well as the central role of EnAccess in enabling upstarts points to the importance of open source, modular approaches that allow the scaling of individual components as managed or self-managed entities, such as front end databases and servers that run data processing code.

Culling the options

AWS/Azure/IBM IoT offerings were not considered the right cost-value tradeoff due to the complexity of adoption and the fact that the dataset of most adopters of this project will be limited in size and will manage with smaller IT teams i.e. not tens of millions of devices/interactions per day managed by a specialist IT team, but hundreds of thousands at most managed by a multi-tasking IT team. The caveat is potentially losing out on AI integration which could be useful for predictive tasks. In the PAYG-IoT business case, learning and prediction requirements are as yet not well defined as business differentiators and hence AI was not considered a prime factor.

The alternatives list was further limited by the following parameter choices: Open source, Free/freemium versions and no per-device fees. Per-devices services are roughly $2/month/device (in addition to any network/SIM card fees), which adds up quickly when selling a large number of smart devices and can be margin-limiting in low-cost markets. This consideration discounted dweetpro.io, thingstream.io, particle.io and thingspeak.com

Baseline: SaaS + PaaS + IaaS + Support-vendor costs for Simusolar are $86,658/yr projected to reduce to $52,100/yr by December 2021 by using no-code platforms and internal support

Last Round Alternatives

Featurecustom developmentThingsBoard.io ✓Kaaproject.orgOpenRemote.io ❌Crate.io ❌
Total Cost of Ownership for paid premium option - 1 year, 10,000 devices$120/yr code server, $180/yr Redis managed, $180/yr postgresql managed = $480/yr$3600/yr for Docker+managed db or $6,000/yr for SaaS cloud, provides flexibility$3600/yr for self-managed or $24,000/yr for managed on-premise $3600/yr for self-managed, no cloud offeringdb-only $2616/month ❌
ModelIaaS: DigitalOcean droplet with custom stream-processing code, managed Redis db buffer for incoming data providing high-rel front end, then managed PostGreSQL db for IoT metrics. Custom device/partner management workflows on another platform e.g. Airtable-like no-code platformOpen Source or Managed PaaS: Monolithic/microservice interchangeable, IoT stream processing, device/partner management and and IoT Analytics platform in Docker on a DigitalOcean droplet with Aiven-Cassandra + PostGreSQL managed dbs on DigitalOcean. One downloadable package architecture, can be clustered Open Source or Managed PaaS: microservices type IoT stream processing, device/partner management and and IoT Analytics platform in Docker connecting to a Redis + PostGreSQL. No monolithic download so steeper initial learning curveAssissted deployment only, no managed cloud optionsOpen Source or Managed PaaS: CrateDB is a distributed SQL database built on top of a NoSQL foundation. Customers often use CrateDB to store and query machine data. This is because CrateDB makes it easy and economical to handle the velocity, volume, and diversity of machine and log data.
Open source Yes, updated in 2021Yes, updated in 2021Yes, updated in 2021Yes, updated in 2021
Performance / scaleFull-customSingle-container / managed cluster / cloud SaaS optionalityKubernetes bakedHighly scalable
Lock-in riskNilCompany could decide to fork free/paid codebases. Timestream data could be migrated but tenant management structure would probably need to fork codebaseTimestream data could be migrated but tenant management structure would probably need to fork codebaseTimestream data could be migrated but tenant management structure would probably need to fork codebaseDeveloping for specific db type could lead to harder migration options
Basic Data External forwarding and Workflow triggers Yes, Kafka stream and Rulechain configured from drag and drop UIYes Redis based queue'Rule-chain' for PAYG response seems very basic without custom scripts, only math/text functionsNeeds external SQL queries but performance is fast enough to support datastream analysis
Vendor info / any risk to businessSLA is fully dependent on internal developersthingsboard pro used by Engie, no SLA for community edition, dependent on internal developersFDA and HIPAA as customersGermany focus with some cities adopting it also Schipol security
Feature dev speed~1wk-1mo~1day-1wk (most common features are UI based)~1day-1wk (most common features are UI based)~1day-1wk (most common features are UI based)~1wk-1mo
Feature costInternal Development @$1000/monthInternal Development @$1000/monthInternal Development @$1000/monthInternal Development @$1000/monthInternal Development @$1000/month
IoT Comms CustomizablePOST/MQTT/CoAP upload, GET request or Gateway subscribing via MQTTPOST/MQTT/CoAP upload, GET request or Gateway subscribing via MQTT
APIWill need to be builtREST with JWT auth per device/entityREST API
Analytics for metricsNoYesYesNot inbuilt
Device managementWill need to be builtYes with profiles and gateway MQTT-only devicesYes with profiles, versions and gateway MQTT-only devicesNo
Data management possiblityManaged Redis + Managed PostgreSQLPart of docker image as starting point, Managed Cassandra (Aiven on DigitalOcean) + PostgreSQL (native DigitalOcean) databaseManaged Redis + Managed PostgreSQL
Customer managementWill need to be builtYes with groups and embeddable client dashboardsYes with groupsNo
Customer supportInternalOnly for cloud otherwise internalOnly for cloud otherwise internal
Interoperable format compatibilityYesJSON key-value pairs, additional Customizable 'connectors' for custom binaryJSON
Chart optionsWill need external service e.g. No code big-data serviceMoving line/bar/speed-gauge/mapMoving line/bar/speed-gauge/mapNo
Filters on displayed chartsOnly time filters?Only time filters?No
Dashboard UXBasic, sufficientBasic, sufficient
Login based filteringCustom developmentYesYes
SSO types for users/customersCustom developmentOauth2Oauth2
Programming languagePHPJavaGoGoJava
Device/Sandbox codebasenot seen anyArduino samples, web sandbox, etcPython client example
Git / source Linkhttps://thingsboard.io/docs/user-guide/install/digital-ocean/ also https://github.com/thingsboard/thingsboardhttps://github.com/kaaproject/kaahttps://github.com/openremotehttps://github.com/crate

Proposed Solution: thingsboard.io docker monolithic

Scale Architecture

Deployment proposal: Lock-in mitigation is by using a managed database for Cassandra/PostgreSQL

Multi-vendor management from a single central db

Private devices and dashboards via tenancy

PAYG control

Self-Provisioning

Plotting the primary variable by device type

Feasible Implementation Plan

Stakeholder validation (R.A.C.I.)

Were the responsible (implementers) persons consulted for feasibility?

Are the accountable (project manager) persons committed to the outcome?

Have the consulted (change recipients) people indicated their support?

Will the Informed (all other impacted) people receive the information in time?

Final Choice:

Date:

Decider (Proof):

-

\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548.html deleted file mode 100644 index 3c06443f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548.html +++ /dev/null @@ -1,669 +0,0 @@ -Last Round Alternatives
🧩

Last Round Alternatives

Featurecustom developmentThingsBoard.io ✓Kaaproject.orgOpenRemote.io ❌Crate.io ❌
Total Cost of Ownership for paid premium option - 1 year, 10,000 devices$120/yr code server, $180/yr Redis managed, $180/yr postgresql managed = $480/yr$3600/yr for Docker+managed db or $6,000/yr for SaaS cloud, provides flexibility$3600/yr for self-managed or $24,000/yr for managed on-premise $3600/yr for self-managed, no cloud offeringdb-only $2616/month ❌
ModelIaaS: DigitalOcean droplet with custom stream-processing code, managed Redis db buffer for incoming data providing high-rel front end, then managed PostGreSQL db for IoT metrics. Custom device/partner management workflows on another platform e.g. Airtable-like no-code platformOpen Source or Managed PaaS: Monolithic/microservice interchangeable, IoT stream processing, device/partner management and and IoT Analytics platform in Docker on a DigitalOcean droplet with Aiven-Cassandra + PostGreSQL managed dbs on DigitalOcean. One downloadable package architecture, can be clustered Open Source or Managed PaaS: microservices type IoT stream processing, device/partner management and and IoT Analytics platform in Docker connecting to a Redis + PostGreSQL. No monolithic download so steeper initial learning curveAssissted deployment only, no managed cloud optionsOpen Source or Managed PaaS: CrateDB is a distributed SQL database built on top of a NoSQL foundation. Customers often use CrateDB to store and query machine data. This is because CrateDB makes it easy and economical to handle the velocity, volume, and diversity of machine and log data.
Open source Yes, updated in 2021Yes, updated in 2021Yes, updated in 2021Yes, updated in 2021
Performance / scaleFull-customSingle-container / managed cluster / cloud SaaS optionalityKubernetes bakedHighly scalable
Lock-in riskNilCompany could decide to fork free/paid codebases. Timestream data could be migrated but tenant management structure would probably need to fork codebaseTimestream data could be migrated but tenant management structure would probably need to fork codebaseTimestream data could be migrated but tenant management structure would probably need to fork codebaseDeveloping for specific db type could lead to harder migration options
Basic Data External forwarding and Workflow triggers Yes, Kafka stream and Rulechain configured from drag and drop UIYes Redis based queue'Rule-chain' for PAYG response seems very basic without custom scripts, only math/text functionsNeeds external SQL queries but performance is fast enough to support datastream analysis
Vendor info / any risk to businessSLA is fully dependent on internal developersthingsboard pro used by Engie, no SLA for community edition, dependent on internal developersFDA and HIPAA as customersGermany focus with some cities adopting it also Schipol security
Feature dev speed~1wk-1mo~1day-1wk (most common features are UI based)~1day-1wk (most common features are UI based)~1day-1wk (most common features are UI based)~1wk-1mo
Feature costInternal Development @$1000/monthInternal Development @$1000/monthInternal Development @$1000/monthInternal Development @$1000/monthInternal Development @$1000/month
IoT Comms CustomizablePOST/MQTT/CoAP upload, GET request or Gateway subscribing via MQTTPOST/MQTT/CoAP upload, GET request or Gateway subscribing via MQTT
APIWill need to be builtREST with JWT auth per device/entityREST API
Analytics for metricsNoYesYesNot inbuilt
Device managementWill need to be builtYes with profiles and gateway MQTT-only devicesYes with profiles, versions and gateway MQTT-only devicesNo
Data management possiblityManaged Redis + Managed PostgreSQLPart of docker image as starting point, Managed Cassandra (Aiven on DigitalOcean) + PostgreSQL (native DigitalOcean) databaseManaged Redis + Managed PostgreSQL
Customer managementWill need to be builtYes with groups and embeddable client dashboardsYes with groupsNo
Customer supportInternalOnly for cloud otherwise internalOnly for cloud otherwise internal
Interoperable format compatibilityYesJSON key-value pairs, additional Customizable 'connectors' for custom binaryJSON
Chart optionsWill need external service e.g. No code big-data serviceMoving line/bar/speed-gauge/mapMoving line/bar/speed-gauge/mapNo
Filters on displayed chartsOnly time filters?Only time filters?No
Dashboard UXBasic, sufficientBasic, sufficient
Login based filteringCustom developmentYesYes
SSO types for users/customersCustom developmentOauth2Oauth2
Programming languagePHPJavaGoGoJava
Device/Sandbox codebasenot seen anyArduino samples, web sandbox, etcPython client example
Git / source Linkhttps://thingsboard.io/docs/user-guide/install/digital-ocean/ also https://github.com/thingsboard/thingsboardhttps://github.com/kaaproject/kaahttps://github.com/openremotehttps://github.com/crate
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/API 2b45090acf5a4dd3bb6c93cf09bbd247.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/API 2b45090acf5a4dd3bb6c93cf09bbd247.html deleted file mode 100644 index 0378ac3e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/API 2b45090acf5a4dd3bb6c93cf09bbd247.html +++ /dev/null @@ -1,669 +0,0 @@ -API

API

ThingsBoard.io ✓REST with JWT auth per device/entity
Crate.io ❌
Kaaproject.orgREST API
OpenRemote.io ❌
custom developmentWill need to be built
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Analytics for metrics 5d54acc723e1438499645a7d8fd8e7b5.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Analytics for metrics 5d54acc723e1438499645a7d8fd8e7b5.html deleted file mode 100644 index bff41a0f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Analytics for metrics 5d54acc723e1438499645a7d8fd8e7b5.html +++ /dev/null @@ -1,669 +0,0 @@ -Analytics for metrics

Analytics for metrics

ThingsBoard.io ✓Yes
Crate.io ❌Not inbuilt
Kaaproject.orgYes
OpenRemote.io ❌
custom developmentNo
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Basic Data External forwarding and Workflow trigge 04a000ddf27045a58324c05c69129708.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Basic Data External forwarding and Workflow trigge 04a000ddf27045a58324c05c69129708.html deleted file mode 100644 index 5be3cc66..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Basic Data External forwarding and Workflow trigge 04a000ddf27045a58324c05c69129708.html +++ /dev/null @@ -1,669 +0,0 @@ -Basic Data External forwarding and Workflow triggers

Basic Data External forwarding and Workflow triggers

ThingsBoard.io ✓Yes, Kafka stream and Rulechain configured from drag and drop UI
Crate.io ❌Needs external SQL queries but performance is fast enough to support datastream analysis
Kaaproject.orgYes Redis based queue
OpenRemote.io ❌'Rule-chain' for PAYG response seems very basic without custom scripts, only math/text functions
custom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Chart options e17ee203b9f24c1aada36ec4907d4e53.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Chart options e17ee203b9f24c1aada36ec4907d4e53.html deleted file mode 100644 index 463d4dcb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Chart options e17ee203b9f24c1aada36ec4907d4e53.html +++ /dev/null @@ -1,669 +0,0 @@ -Chart options

Chart options

ThingsBoard.io ✓Moving line/bar/speed-gauge/map
Crate.io ❌No
Kaaproject.orgMoving line/bar/speed-gauge/map
OpenRemote.io ❌
custom developmentWill need external service e.g. No code big-data service
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Customer management 8db790b517ed40b0ad46a54d5e22d3e6.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Customer management 8db790b517ed40b0ad46a54d5e22d3e6.html deleted file mode 100644 index 7fa0c13c..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Customer management 8db790b517ed40b0ad46a54d5e22d3e6.html +++ /dev/null @@ -1,669 +0,0 @@ -Customer management

Customer management

ThingsBoard.io ✓Yes with groups and embeddable client dashboards
Crate.io ❌No
Kaaproject.orgYes with groups
OpenRemote.io ❌
custom developmentWill need to be built
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Customer support c389bb7fd1314df5b11b9229e3913f07.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Customer support c389bb7fd1314df5b11b9229e3913f07.html deleted file mode 100644 index 2d23ede4..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Customer support c389bb7fd1314df5b11b9229e3913f07.html +++ /dev/null @@ -1,669 +0,0 @@ -Customer support

Customer support

ThingsBoard.io ✓Only for cloud otherwise internal
Crate.io ❌
Kaaproject.orgOnly for cloud otherwise internal
OpenRemote.io ❌
custom developmentInternal
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Dashboard UX 5dad589f771c4a029339bbaf7a3c88eb.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Dashboard UX 5dad589f771c4a029339bbaf7a3c88eb.html deleted file mode 100644 index 15b01486..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Dashboard UX 5dad589f771c4a029339bbaf7a3c88eb.html +++ /dev/null @@ -1,669 +0,0 @@ -Dashboard UX

Dashboard UX

ThingsBoard.io ✓Basic, sufficient
Crate.io ❌
Kaaproject.orgBasic, sufficient
OpenRemote.io ❌
custom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Data management possiblity 452df22571f145aeb569939c9146bc21.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Data management possiblity 452df22571f145aeb569939c9146bc21.html deleted file mode 100644 index e5c35ad9..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Data management possiblity 452df22571f145aeb569939c9146bc21.html +++ /dev/null @@ -1,669 +0,0 @@ -Data management possiblity

Data management possiblity

ThingsBoard.io ✓Part of docker image as starting point, Managed Cassandra (Aiven on DigitalOcean) + PostgreSQL (native DigitalOcean) database
Crate.io ❌
Kaaproject.orgManaged Redis + Managed PostgreSQL
OpenRemote.io ❌
custom developmentManaged Redis + Managed PostgreSQL
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Device Sandbox codebase 4ad4a1269d814bc498180c06887a9355.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Device Sandbox codebase 4ad4a1269d814bc498180c06887a9355.html deleted file mode 100644 index 870e8c9f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Device Sandbox codebase 4ad4a1269d814bc498180c06887a9355.html +++ /dev/null @@ -1,669 +0,0 @@ -Device/Sandbox codebase

Device/Sandbox codebase

ThingsBoard.io ✓not seen any
Crate.io ❌Python client example
Kaaproject.orgArduino samples, web sandbox, etc
OpenRemote.io ❌
custom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Device management 89dd4a0b8d174648b6b88b68ba915f89.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Device management 89dd4a0b8d174648b6b88b68ba915f89.html deleted file mode 100644 index dc7eee16..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Device management 89dd4a0b8d174648b6b88b68ba915f89.html +++ /dev/null @@ -1,669 +0,0 @@ -Device management

Device management

ThingsBoard.io ✓Yes with profiles and gateway MQTT-only devices
Crate.io ❌No
Kaaproject.orgYes with profiles, versions and gateway MQTT-only devices
OpenRemote.io ❌
custom developmentWill need to be built
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Feature cost a078e1055d1c4dc3be68b1c194a6d0bc.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Feature cost a078e1055d1c4dc3be68b1c194a6d0bc.html deleted file mode 100644 index 1adca490..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Feature cost a078e1055d1c4dc3be68b1c194a6d0bc.html +++ /dev/null @@ -1,669 +0,0 @@ -Feature cost

Feature cost

ThingsBoard.io ✓Internal Development @$1000/month
Crate.io ❌Internal Development @$1000/month
Kaaproject.orgInternal Development @$1000/month
OpenRemote.io ❌Internal Development @$1000/month
custom developmentInternal Development @$1000/month
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Feature dev speed 7468c1c2b41f4e07a5c21f60089fcc1d.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Feature dev speed 7468c1c2b41f4e07a5c21f60089fcc1d.html deleted file mode 100644 index dd36efff..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Feature dev speed 7468c1c2b41f4e07a5c21f60089fcc1d.html +++ /dev/null @@ -1,669 +0,0 @@ -Feature dev speed

Feature dev speed

ThingsBoard.io ✓~1day-1wk (most common features are UI based)
Crate.io ❌~1wk-1mo
Kaaproject.org~1day-1wk (most common features are UI based)
OpenRemote.io ❌~1day-1wk (most common features are UI based)
custom development~1wk-1mo
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Filters on displayed charts 085f49ada5944cadb42c9865898b0232.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Filters on displayed charts 085f49ada5944cadb42c9865898b0232.html deleted file mode 100644 index 10b07668..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Filters on displayed charts 085f49ada5944cadb42c9865898b0232.html +++ /dev/null @@ -1,669 +0,0 @@ -Filters on displayed charts

Filters on displayed charts

ThingsBoard.io ✓Only time filters?
Crate.io ❌No
Kaaproject.orgOnly time filters?
OpenRemote.io ❌
custom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Git source Link 3d7d92e5cc5f458db244260d3b9424ac.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Git source Link 3d7d92e5cc5f458db244260d3b9424ac.html deleted file mode 100644 index 0719b387..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Git source Link 3d7d92e5cc5f458db244260d3b9424ac.html +++ /dev/null @@ -1,669 +0,0 @@ -Git / source Link

Git / source Link

ThingsBoard.io ✓https://thingsboard.io/docs/user-guide/install/digital-ocean/ also https://github.com/thingsboard/thingsboard
Crate.io ❌https://github.com/crate
Kaaproject.orghttps://github.com/kaaproject/kaa
OpenRemote.io ❌https://github.com/openremote
custom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Interoperable format compatibility 2566d647a3e4402890f3e48472e3b59f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Interoperable format compatibility 2566d647a3e4402890f3e48472e3b59f.html deleted file mode 100644 index 4d5b4ccf..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Interoperable format compatibility 2566d647a3e4402890f3e48472e3b59f.html +++ /dev/null @@ -1,669 +0,0 @@ -Interoperable format compatibility

Interoperable format compatibility

ThingsBoard.io ✓JSON key-value pairs, additional Customizable 'connectors' for custom binary
Crate.io ❌
Kaaproject.orgJSON
OpenRemote.io ❌
custom developmentYes
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/IoT Comms 7fccfe926a3b4b9fafa201822f7a164f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/IoT Comms 7fccfe926a3b4b9fafa201822f7a164f.html deleted file mode 100644 index 3953699d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/IoT Comms 7fccfe926a3b4b9fafa201822f7a164f.html +++ /dev/null @@ -1,669 +0,0 @@ -IoT Comms

IoT Comms

ThingsBoard.io ✓POST/MQTT/CoAP upload, GET request or Gateway subscribing via MQTT
Crate.io ❌
Kaaproject.orgPOST/MQTT/CoAP upload, GET request or Gateway subscribing via MQTT
OpenRemote.io ❌
custom developmentCustomizable
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Lock-in risk c4cee9ccea7b4add8234d7af062f0a1a.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Lock-in risk c4cee9ccea7b4add8234d7af062f0a1a.html deleted file mode 100644 index 323caf11..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Lock-in risk c4cee9ccea7b4add8234d7af062f0a1a.html +++ /dev/null @@ -1,669 +0,0 @@ -Lock-in risk

Lock-in risk

ThingsBoard.io ✓Company could decide to fork free/paid codebases. Timestream data could be migrated but tenant management structure would probably need to fork codebase
Crate.io ❌Developing for specific db type could lead to harder migration options
Kaaproject.orgTimestream data could be migrated but tenant management structure would probably need to fork codebase
OpenRemote.io ❌Timestream data could be migrated but tenant management structure would probably need to fork codebase
custom developmentNil
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Login based filtering ae8d17cc1af74ff99a1ec4324e53e3ba.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Login based filtering ae8d17cc1af74ff99a1ec4324e53e3ba.html deleted file mode 100644 index 423c431e..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Login based filtering ae8d17cc1af74ff99a1ec4324e53e3ba.html +++ /dev/null @@ -1,669 +0,0 @@ -Login based filtering

Login based filtering

ThingsBoard.io ✓Yes
Crate.io ❌
Kaaproject.orgYes
OpenRemote.io ❌
custom developmentCustom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Model f4340e4dcc1c424684d2345ff7352be7.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Model f4340e4dcc1c424684d2345ff7352be7.html deleted file mode 100644 index 82bd1008..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Model f4340e4dcc1c424684d2345ff7352be7.html +++ /dev/null @@ -1,669 +0,0 @@ -Model

Model

ThingsBoard.io ✓Open Source or Managed PaaS: Monolithic/microservice interchangeable, IoT stream processing, device/partner management and and IoT Analytics platform in Docker on a DigitalOcean droplet with Aiven-Cassandra + PostGreSQL managed dbs on DigitalOcean. One downloadable package architecture, can be clustered
Crate.io ❌Open Source or Managed PaaS: CrateDB is a distributed SQL database built on top of a NoSQL foundation. Customers often use CrateDB to store and query machine data. This is because CrateDB makes it easy and economical to handle the velocity, volume, and diversity of machine and log data.
Kaaproject.orgOpen Source or Managed PaaS: microservices type IoT stream processing, device/partner management and and IoT Analytics platform in Docker connecting to a Redis + PostGreSQL. No monolithic download so steeper initial learning curve
OpenRemote.io ❌Assissted deployment only, no managed cloud options
custom developmentIaaS: DigitalOcean droplet with custom stream-processing code, managed Redis db buffer for incoming data providing high-rel front end, then managed PostGreSQL db for IoT metrics. Custom device/partner management workflows on another platform e.g. Airtable-like no-code platform
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Open source 387cd4e6cba54538af21c020f6b19cf1.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Open source 387cd4e6cba54538af21c020f6b19cf1.html deleted file mode 100644 index 44fcd9d3..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Open source 387cd4e6cba54538af21c020f6b19cf1.html +++ /dev/null @@ -1,669 +0,0 @@ -Open source

Open source

ThingsBoard.io ✓Yes, updated in 2021
Crate.io ❌Yes, updated in 2021
Kaaproject.orgYes, updated in 2021
OpenRemote.io ❌Yes, updated in 2021
custom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Performance scale e6052517c5fa41a29509227c87dcf768.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Performance scale e6052517c5fa41a29509227c87dcf768.html deleted file mode 100644 index 65f56f33..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Performance scale e6052517c5fa41a29509227c87dcf768.html +++ /dev/null @@ -1,669 +0,0 @@ -Performance / scale

Performance / scale

ThingsBoard.io ✓Single-container / managed cluster / cloud SaaS optionality
Crate.io ❌Highly scalable
Kaaproject.orgKubernetes baked
OpenRemote.io ❌
custom developmentFull-custom
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Programming language dafec3aef11545a789df7e5c5326f130.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Programming language dafec3aef11545a789df7e5c5326f130.html deleted file mode 100644 index 94be0cf1..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Programming language dafec3aef11545a789df7e5c5326f130.html +++ /dev/null @@ -1,669 +0,0 @@ -Programming language

Programming language

ThingsBoard.io ✓Java
Crate.io ❌Java
Kaaproject.orgGo
OpenRemote.io ❌Go
custom developmentPHP
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/SSO types for users customers 565c4ec86bef46c78ece2158d6f80cd6.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/SSO types for users customers 565c4ec86bef46c78ece2158d6f80cd6.html deleted file mode 100644 index 2dd0c62d..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/SSO types for users customers 565c4ec86bef46c78ece2158d6f80cd6.html +++ /dev/null @@ -1,669 +0,0 @@ -SSO types for users/customers

SSO types for users/customers

ThingsBoard.io ✓Oauth2
Crate.io ❌
Kaaproject.orgOauth2
OpenRemote.io ❌
custom developmentCustom development
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Total Cost of Ownership for paid premium option - 6077e5705a174cdc86fe64348bf16fdb.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Total Cost of Ownership for paid premium option - 6077e5705a174cdc86fe64348bf16fdb.html deleted file mode 100644 index 6ab19a61..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Total Cost of Ownership for paid premium option - 6077e5705a174cdc86fe64348bf16fdb.html +++ /dev/null @@ -1,669 +0,0 @@ -Total Cost of Ownership for paid premium option - 1 year, 10,000 devices

Total Cost of Ownership for paid premium option - 1 year, 10,000 devices

ThingsBoard.io ✓$3600/yr for Docker+managed db or $6,000/yr for SaaS cloud, provides flexibility
Crate.io ❌db-only $2616/month ❌
Kaaproject.org$3600/yr for self-managed or $24,000/yr for managed on-premise
OpenRemote.io ❌$3600/yr for self-managed, no cloud offering
custom development$120/yr code server, $180/yr Redis managed, $180/yr postgresql managed = $480/yr
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Vendor info any risk to business 6ecbb09542ef478caeb5b327d783d74e.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Vendor info any risk to business 6ecbb09542ef478caeb5b327d783d74e.html deleted file mode 100644 index f1c5b0a6..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Last Round Alternatives 0ab7b7c54fa646a9ae62f45fe89de548/Vendor info any risk to business 6ecbb09542ef478caeb5b327d783d74e.html +++ /dev/null @@ -1,669 +0,0 @@ -Vendor info / any risk to business

Vendor info / any risk to business

ThingsBoard.io ✓thingsboard pro used by Engie, no SLA for community edition, dependent on internal developers
Crate.io ❌
Kaaproject.orgFDA and HIPAA as customers
OpenRemote.io ❌Germany focus with some cities adopting it also Schipol security
custom developmentSLA is fully dependent on internal developers
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-11_at_11.20.51_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-11_at_11.20.51_PM.png deleted file mode 100644 index b6418634..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-11_at_11.20.51_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.07.11_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.07.11_PM.png deleted file mode 100644 index 61a9fbe9..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.07.11_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.10.41_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.10.41_PM.png deleted file mode 100644 index 17daf6fc..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.10.41_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.14.02_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.14.02_PM.png deleted file mode 100644 index 331f980c..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.14.02_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.15.02_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.15.02_PM.png deleted file mode 100644 index f04cdf4e..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.15.02_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.16.29_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.16.29_PM.png deleted file mode 100644 index 6f4d4384..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Screen_Shot_2021-04-12_at_12.16.29_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Untitled.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Untitled.png deleted file mode 100644 index 5680e46f..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/How we chose Thingsboard io for AirLink Server fdf5dfccc506431c838c41eb1c407933/Untitled.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/IoT_Communications_and_Components_spec_-_Thingsboard.io_Architecture-2.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/IoT_Communications_and_Components_spec_-_Thingsboard.io_Architecture-2.png deleted file mode 100644 index 39f015c4..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/IoT_Communications_and_Components_spec_-_Thingsboard.io_Architecture-2.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/IoT_Communications_and_Components_spec_-_Thingsboard.io_Architecture.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/IoT_Communications_and_Components_spec_-_Thingsboard.io_Architecture.png deleted file mode 100644 index 4839b860..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/IoT_Communications_and_Components_spec_-_Thingsboard.io_Architecture.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_2.51.22_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_2.51.22_PM.png deleted file mode 100644 index d8a842fc..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_2.51.22_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.36.07_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.36.07_PM.png deleted file mode 100644 index 435feab9..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.36.07_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.30_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.30_PM.png deleted file mode 100644 index a74f3d3c..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.30_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.44_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.44_PM.png deleted file mode 100644 index dc68b262..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.44_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.53_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.53_PM.png deleted file mode 100644 index 05b870d1..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2021-11-14_at_3.42.53_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2022-01-26_at_9.29.42_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2022-01-26_at_9.29.42_PM.png deleted file mode 100644 index f77faffa..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screen_Shot_2022-01-26_at_9.29.42_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screenshot_2023-01-30_at_1.48.06_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screenshot_2023-01-30_at_1.48.06_PM.png deleted file mode 100644 index 90abf6e1..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Screenshot_2023-01-30_at_1.48.06_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0.html deleted file mode 100644 index 698289ca..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0.html +++ /dev/null @@ -1,673 +0,0 @@ -Server and Shared Data to support AirLink Devices

Server and Shared Data to support AirLink Devices

Nx ResourcertrResource Propertykeyrtr_propQualifiersCBOR TypeDescription
AirLink Device Provisioning 1.0prdServer Auth Tokensatprd_satMandatoryScope: SharedString3Thinsboard.io has a 20-char device authentication token unique to each device. During device provisioning, this token is written to the device, permanently attaching the device to the server. The token is never transmitted again.
AirLink Device Provisioning 1.0prdProvisioning Statuspstprd_pstInteger (uint8_t)MandatoryScope: Shared0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
AirLink Device Provisioning 1.0prdPayG Unitpuprd_puMandatoryScope: SharedString336^1 The unit of the PayG update, it can be minutes, hours, days, months and years. [m-minutes, h-hours, d- days, M-months, Y-years]
AirLink Device Provisioning 1.0prdPayG Token starting codepscprd_pscScope: SharedString31-day token, https://github.com/EnAccess/OpenPAYGO-HW
AirLink Device Provisioning 1.0prdPayG Units acceptedpulprd_pulMandatoryScope: DeviceString3CSV list of acceptable Units e.g. "l" for liters, "h,d" for hours and days
AirLink Client Provisioning 1.0prcProvisioning Statuspstprc_pstInteger (uint8_t)MandatoryScope: Shared0Reflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
AirLink Client Provisioning 1.0prcReadable ID + Cbor header 2 bytesridprc_ridInteger (uint32_t)MandatoryScope: Shared262^(8*4) = 4,294,967,296 numeric device ids or payment reference or any number that device should display
AirLink Client Provisioning 1.0prcCustomer's Phonecpprc_cpOptionalScope: SharedString3Requested by customers for stolen device reporting (needs a workflow to collect this number explicitly from client in addition to regular lead number). Assign the mobile number of the customer to a device. With maximum of 16 character including + and country code number. This is for security purpose
AirLink Client Provisioning 1.0prcCustomer Namecnprc_cnOptionalScope: SharedString3Requested by customers for lost device reporting. This writes the customer name to a device with the maximum of 16 characters with space and special characters inclusive.
AirLink Nexus Command 1.0nxcNexus COSE commandcmdnxc_cmdScope: Shared3Upto 120 bytes for Nexus Channel Passthrough commands
AirLink PAYG 1.0pygCurrent Server Timeltpyg_ltOptionalScope: DeviceLinux epoch format, expires in Y2035. The current time when updating the device with PayG update. We do not recommend using this to calculate PAYG use, because it could be used to trick the device into more tokens. This is for non-PAYG purposes eg client experience
AirLink PAYG 1.0pygTimestamp of last PAYG Update to deviceltspyg_ltsOptionalScope: DeviceLinux epoch format, expires in Y2035, readonly - Historical last PayG update Timestamp
AirLink PAYG 1.0pygTimestamp at which PayG remaining was calculatedtspyg_tsOptionalScope: DeviceLinux epoch format, expires in Y2035. The Last date and time when the PayG update was fetched from the Server to client [Mobile phone or other communication device]
AirLink PAYG 1.0pygLast Added PayG Creditlcrpyg_lcrOptionalScope: DeviceHistorical last PayG credit update duration. Range is from 01-9999
AirLink PAYG 1.0pygPayG Tokentknpyg_tknScope: SharedSipHash token. Accepted by device only if valid. No read token to ensure unsecured gateways cannot act maliciously.
PAYG Credit 1.0pygModemopyg_moNot ImplementedScope: Sharedmode of device i.e. leading/following etc - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token. AirLink 1.0 does not implement Nexus Channel, which was in development at the time of release of AirLink 1.0
PAYG Credit 1.0pygDevice PayG Credit Remainingrepyg_reMandatoryScope: Time Seriesshould be The value remaining for the device to OFF. - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token. AirLink 1.0 does not implement Nexus Channel, which was in development at the time of release of AirLink 1.0
PAYG Credit 1.0pygPayg Token Secretptspyg_ptsMandatoryScope: ServerOn first release, this is the Nexus Keycode secret
PAYG Credit 1.0pygPayg Token Message IDmsgpyg_msgMandatoryScope: ServerOn first release, this is the Nexus Keycode message ID
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Current Server Time 6e8ee941ef4840aeb3cb505a7bae6bd4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Current Server Time 6e8ee941ef4840aeb3cb505a7bae6bd4.html deleted file mode 100644 index a3c2628a..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Current Server Time 6e8ee941ef4840aeb3cb505a7bae6bd4.html +++ /dev/null @@ -1,669 +0,0 @@ -Current Server Time

Current Server Time

CBOR Type
DescriptionLinux epoch format, expires in Y2035. The current time when updating the device with PayG update. We do not recommend using this to calculate PAYG use, because it could be used to trick the device into more tokens. This is for non-PAYG purposes eg client experience
Nx ResourceAirLink PAYG 1.0
QualifiersOptionalScope: Device
keylt
rtrpyg
rtr_proppyg_lt
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Customer Name 8e700637a9ac4ad8ab4050baccd8d740.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Customer Name 8e700637a9ac4ad8ab4050baccd8d740.html deleted file mode 100644 index c033af98..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Customer Name 8e700637a9ac4ad8ab4050baccd8d740.html +++ /dev/null @@ -1,669 +0,0 @@ -Customer Name

Customer Name

CBOR Type3
DescriptionRequested by customers for lost device reporting. This writes the customer name to a device with the maximum of 16 characters with space and special characters inclusive.
Nx ResourceAirLink Client Provisioning 1.0
QualifiersOptionalScope: SharedString
keycn
rtrprc
rtr_propprc_cn
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Customer's Phone 447de667979044afa5b10b19150adc65.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Customer's Phone 447de667979044afa5b10b19150adc65.html deleted file mode 100644 index c0445085..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Customer's Phone 447de667979044afa5b10b19150adc65.html +++ /dev/null @@ -1,669 +0,0 @@ -Customer's Phone

Customer's Phone

CBOR Type3
DescriptionRequested by customers for stolen device reporting (needs a workflow to collect this number explicitly from client in addition to regular lead number). Assign the mobile number of the customer to a device. With maximum of 16 character including + and country code number. This is for security purpose
Nx ResourceAirLink Client Provisioning 1.0
QualifiersOptionalScope: SharedString
keycp
rtrprc
rtr_propprc_cp
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Device PayG Credit Remaining 4f885f938ca5444288920737f352d078.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Device PayG Credit Remaining 4f885f938ca5444288920737f352d078.html deleted file mode 100644 index 8623b150..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Device PayG Credit Remaining 4f885f938ca5444288920737f352d078.html +++ /dev/null @@ -1,671 +0,0 @@ -Device PayG Credit Remaining

Device PayG Credit Remaining

CBOR Type
Descriptionshould be The value remaining for the device to OFF. - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token. AirLink 1.0 does not implement Nexus Channel, which was in development at the time of release of AirLink 1.0
Nx ResourcePAYG Credit 1.0
QualifiersMandatoryScope: Time Series
keyre
rtrpyg
rtr_proppyg_re
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Last Added PayG Credit 555b1a7b375347b9b84c57559b23eafc.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Last Added PayG Credit 555b1a7b375347b9b84c57559b23eafc.html deleted file mode 100644 index 7a37e866..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Last Added PayG Credit 555b1a7b375347b9b84c57559b23eafc.html +++ /dev/null @@ -1,669 +0,0 @@ -Last Added PayG Credit

Last Added PayG Credit

CBOR Type
DescriptionHistorical last PayG credit update duration. Range is from 01-9999
Nx ResourceAirLink PAYG 1.0
QualifiersOptionalScope: Device
keylcr
rtrpyg
rtr_proppyg_lcr
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Mode 6b1abaa5863047ec8037f25373370564.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Mode 6b1abaa5863047ec8037f25373370564.html deleted file mode 100644 index 0f4d9ee1..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Mode 6b1abaa5863047ec8037f25373370564.html +++ /dev/null @@ -1,671 +0,0 @@ -Mode

Mode

CBOR Type
Descriptionmode of device i.e. leading/following etc - -For Write, a Nexus Channel Link must be established otherwise read-only, updated via token. AirLink 1.0 does not implement Nexus Channel, which was in development at the time of release of AirLink 1.0
Nx ResourcePAYG Credit 1.0
QualifiersNot ImplementedScope: Shared
keymo
rtrpyg
rtr_proppyg_mo
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Nexus COSE command cde93e10db0b4bdb90825e7f9cee0c78.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Nexus COSE command cde93e10db0b4bdb90825e7f9cee0c78.html deleted file mode 100644 index d385fdc0..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Nexus COSE command cde93e10db0b4bdb90825e7f9cee0c78.html +++ /dev/null @@ -1,669 +0,0 @@ -Nexus COSE command

Nexus COSE command

CBOR Type3
DescriptionUpto 120 bytes for Nexus Channel Passthrough commands
Nx ResourceAirLink Nexus Command 1.0
QualifiersScope: Shared
keycmd
rtrnxc
rtr_propnxc_cmd
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Token d214d4ed63434ed8be594f6edc120a44.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Token d214d4ed63434ed8be594f6edc120a44.html deleted file mode 100644 index 833d2b8f..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Token d214d4ed63434ed8be594f6edc120a44.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Token

PayG Token

CBOR Type
DescriptionSipHash token. Accepted by device only if valid. No read token to ensure unsecured gateways cannot act maliciously.
Nx ResourceAirLink PAYG 1.0
QualifiersScope: Shared
keytkn
rtrpyg
rtr_proppyg_tkn
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Token starting code cbbcf7cc9486491eac188e8d4f46de54.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Token starting code cbbcf7cc9486491eac188e8d4f46de54.html deleted file mode 100644 index 8d0b835b..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Token starting code cbbcf7cc9486491eac188e8d4f46de54.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Token starting code

PayG Token starting code

CBOR Type3
Description1-day token, https://github.com/EnAccess/OpenPAYGO-HW
Nx ResourceAirLink Device Provisioning 1.0
QualifiersScope: SharedString
keypsc
rtrprd
rtr_propprd_psc
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Unit 0e789d8da48f4055b7c88bb763d2f06c.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Unit 0e789d8da48f4055b7c88bb763d2f06c.html deleted file mode 100644 index fbecf9c7..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Unit 0e789d8da48f4055b7c88bb763d2f06c.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Unit

PayG Unit

CBOR Type3
Description36^1 The unit of the PayG update, it can be minutes, hours, days, months and years. [m-minutes, h-hours, d- days, M-months, Y-years]
Nx ResourceAirLink Device Provisioning 1.0
QualifiersMandatoryScope: SharedString
keypu
rtrprd
rtr_propprd_pu
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Units accepted 0b96489501154a758273ff020a0340fa.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Units accepted 0b96489501154a758273ff020a0340fa.html deleted file mode 100644 index 3ca10106..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/PayG Units accepted 0b96489501154a758273ff020a0340fa.html +++ /dev/null @@ -1,669 +0,0 @@ -PayG Units accepted

PayG Units accepted

CBOR Type3
DescriptionCSV list of acceptable Units e.g. "l" for liters, "h,d" for hours and days
Nx ResourceAirLink Device Provisioning 1.0
QualifiersMandatoryScope: DeviceString
keypul
rtrprd
rtr_propprd_pul
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Payg Token Message ID 38de87cbf4494a1491faf64dacd53f40.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Payg Token Message ID 38de87cbf4494a1491faf64dacd53f40.html deleted file mode 100644 index 6515e5ef..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Payg Token Message ID 38de87cbf4494a1491faf64dacd53f40.html +++ /dev/null @@ -1,669 +0,0 @@ -Payg Token Message ID

Payg Token Message ID

CBOR Type
DescriptionOn first release, this is the Nexus Keycode message ID
Nx ResourcePAYG Credit 1.0
QualifiersMandatoryScope: Server
keymsg
rtrpyg
rtr_proppyg_msg
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Payg Token Secret 489aacc5c473465eb1b4cc4ea4d343ca.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Payg Token Secret 489aacc5c473465eb1b4cc4ea4d343ca.html deleted file mode 100644 index 1db03df0..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Payg Token Secret 489aacc5c473465eb1b4cc4ea4d343ca.html +++ /dev/null @@ -1,669 +0,0 @@ -Payg Token Secret

Payg Token Secret

CBOR Type
DescriptionOn first release, this is the Nexus Keycode secret
Nx ResourcePAYG Credit 1.0
QualifiersMandatoryScope: Server
keypts
rtrpyg
rtr_proppyg_pts
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Provisioning Status b8372b205dcd46eca168cbe185648c48.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Provisioning Status b8372b205dcd46eca168cbe185648c48.html deleted file mode 100644 index aed3b3ee..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Provisioning Status b8372b205dcd46eca168cbe185648c48.html +++ /dev/null @@ -1,669 +0,0 @@ -Provisioning Status

Provisioning Status

CBOR Type0
DescriptionReflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Nx ResourceAirLink Device Provisioning 1.0
QualifiersInteger (uint8_t)MandatoryScope: Shared
keypst
rtrprd
rtr_propprd_pst
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Provisioning Status ffeee399beb440d29a6b5f60041533c4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Provisioning Status ffeee399beb440d29a6b5f60041533c4.html deleted file mode 100644 index fa03e5d6..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Provisioning Status ffeee399beb440d29a6b5f60041533c4.html +++ /dev/null @@ -1,669 +0,0 @@ -Provisioning Status

Provisioning Status

CBOR Type0
DescriptionReflected in Advt packet also. It can be unprovisioned, disabled, recall, stolen, Cash, Loan. The range is from 1-9. If not supported then 0
Nx ResourceAirLink Client Provisioning 1.0
QualifiersInteger (uint8_t)MandatoryScope: Shared
keypst
rtrprc
rtr_propprc_pst
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Readable ID + Cbor header 2 bytes 17a1f308a1bd43e9ba68644e1d36dcc7.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Readable ID + Cbor header 2 bytes 17a1f308a1bd43e9ba68644e1d36dcc7.html deleted file mode 100644 index 71bfcd57..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Readable ID + Cbor header 2 bytes 17a1f308a1bd43e9ba68644e1d36dcc7.html +++ /dev/null @@ -1,669 +0,0 @@ -Readable ID + Cbor header 2 bytes

Readable ID + Cbor header 2 bytes

CBOR Type26
Description2^(8*4) = 4,294,967,296 numeric device ids or payment reference or any number that device should display
Nx ResourceAirLink Client Provisioning 1.0
QualifiersInteger (uint32_t)MandatoryScope: Shared
keyrid
rtrprc
rtr_propprc_rid
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Server Auth Token 35227ec20e694686bc5e726f9bebdb01.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Server Auth Token 35227ec20e694686bc5e726f9bebdb01.html deleted file mode 100644 index 169828f8..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Server Auth Token 35227ec20e694686bc5e726f9bebdb01.html +++ /dev/null @@ -1,669 +0,0 @@ -Server Auth Token

Server Auth Token

CBOR Type3
DescriptionThinsboard.io has a 20-char device authentication token unique to each device. During device provisioning, this token is written to the device, permanently attaching the device to the server. The token is never transmitted again.
Nx ResourceAirLink Device Provisioning 1.0
QualifiersMandatoryScope: SharedString
keysat
rtrprd
rtr_propprd_sat
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Timestamp at which PayG remaining was calculated d6145c33d5d8466f9cfb7e13d0c836a4.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Timestamp at which PayG remaining was calculated d6145c33d5d8466f9cfb7e13d0c836a4.html deleted file mode 100644 index 6bed2eec..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Timestamp at which PayG remaining was calculated d6145c33d5d8466f9cfb7e13d0c836a4.html +++ /dev/null @@ -1,669 +0,0 @@ -Timestamp at which PayG remaining was calculated

Timestamp at which PayG remaining was calculated

CBOR Type
DescriptionLinux epoch format, expires in Y2035. The Last date and time when the PayG update was fetched from the Server to client [Mobile phone or other communication device]
Nx ResourceAirLink PAYG 1.0
QualifiersOptionalScope: Device
keyts
rtrpyg
rtr_proppyg_ts
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Timestamp of last PAYG Update to device 5762bdc2311b4b7bae362427af8f67f5.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Timestamp of last PAYG Update to device 5762bdc2311b4b7bae362427af8f67f5.html deleted file mode 100644 index 7a6b8603..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Server and Shared Data to support AirLink Devices 8f353da8b8544540b1c97a5f36b166b0/Timestamp of last PAYG Update to device 5762bdc2311b4b7bae362427af8f67f5.html +++ /dev/null @@ -1,669 +0,0 @@ -Timestamp of last PAYG Update to device

Timestamp of last PAYG Update to device

CBOR Type
DescriptionLinux epoch format, expires in Y2035, readonly - Historical last PayG update Timestamp
Nx ResourceAirLink PAYG 1.0
QualifiersOptionalScope: Device
keylts
rtrpyg
rtr_proppyg_lts
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Token_Generation_in_Rule_Chain.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Token_Generation_in_Rule_Chain.png deleted file mode 100644 index fd51c69e..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/Token_Generation_in_Rule_Chain.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/demo_tenant.jpg b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/demo_tenant.jpg deleted file mode 100644 index a06dd68c..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink Server 641fbcdbfd2840be835111db708aba26/demo_tenant.jpg and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink_Unknown_Device_Flow.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink_Unknown_Device_Flow.png deleted file mode 100644 index df7d0420..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/AirLink_Unknown_Device_Flow.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/IoT_Communications_and_Components_spec_-_App_Architecture.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/IoT_Communications_and_Components_spec_-_App_Architecture.png deleted file mode 100644 index b9945f3a..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/IoT_Communications_and_Components_spec_-_App_Architecture.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f.html b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f.html deleted file mode 100644 index 81d5134a..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f.html +++ /dev/null @@ -1,672 +0,0 @@ -Quick-start guide
🏁

Quick-start guide

Trying out AirLink is easy:

  1. Download two Android apps and install on two smartphones (one acting as device and one acting as the actual AirLink smartphone gateway),
  1. Request the Demo tenant server login from EnAccess,

and you have the three components needed to try AirLink quickly without buying any hardware!

Who Is AirLink for?

AirLink is a ready-made protocol and software backend for businesses who want to enable Pay as you go control and data on their products using a smartphones as a gateway; either because the end product e.g. a home light does not have a remote control or GSM based pay as you go built in, or because adding a smartphone to your product offering adds significant value to your customers. - -AirLink is also for businesses who want their products secured against loss or theft using crowd-sourced ‘pings’ via everyone else who uses AirLink devices.

Components

  1. Server: EnAccess.org runs a multi-tenant AirLink server for early adopters and people who want to try out airlink - you can subscribe to as a tenant
    1. Get a tenant login from EnAccess via an email request or use the Demo tenant to try out AirLink (contact EnAccess for login)
    1. Optional: Get your own thingsboard.io server configured to support AirLink using the JSON files available on AirLink Server Github page, then you don’t need the EnAccess server.
  1. PAYG Devices: Get AirLink Devices
    1. Use a smartphone with the ‘AirLink Device Emulator’ app from the AirLink Devices repository to get started and test airlink without requiring any hardware!
    1. Find Suppliers or make your own Bluetooth hardware that is compatible with the AirLink Devices spec. Use the example firmware available for Nordic BLE products on the AirLink Devices Github library
    1. If you want to re-brand the devices that you sell, register with Bluetooth SIG, create a declaration for your product, and use ID text they provide as the 'advertisement' manufacturer text in the Bluetooth advertisement
  1. Smartphone: Get an Android phone and install the Airlink App!
    1. Follow the steps in the next section to setup your AirLink Server tenant
    1. Scan the device via the app and see if it registers on the server
  1. API: Use a third party business application to automate device on/off e.g. Solaris via API calls to the AirLink server
    1. Develop your business integrations further by building on the open source app for clients or API integrations with the IoT server
    1. Don't forget to integrate with the EnAccess server for the inter-company, crowdsourced 'Neighborhood Watch' (lost assets database)

-

How to get started with your AirLink Server tenant

Here is a step by step setup for your tenant login in the AirLink server. Alternatively, if you end up installing your own Thingsboard.io server, this guide can also help you configure it to AirLink specifications after the native thingsboard installation is ready. You will first setup the server, then connect the AirLink App to the server, provision a device using the App, and finally generate a Pay as you go token for the airlink device.

  1. Assumption: You have a “Tenant Administrator” email login provided by EnAccess, or one that you made for your own server. Login with this administrator account.
  1. Go to Users → Tenant Users, click on the + sign at the the top right of the page to create a new Tenant User. Once activated, note down the email and password. Note that the AirLink app uses this login information for administrative actions like registering devices via Oauth, whereas device data exchange is done using access tokens.
  1. Setup Device Profiles
    1. Setup a “Gateways” profile and enable the “Allow provisioning...” option. To do this, you need to tap the pencil button and then remember to save by pressing the tick-mark button.
    1. Setup a “Devices” Profile, and enable the “Default” checkbox as in the figure above. Also enable the “Allow provisioning...” option as in the previous step
    1. Copy the Provisioning Keys and Secrets, you will need to input these in the AirLink app!
  1. Import the rule chains: All data that flows to the thingsboard server goes to the root rule chain, and any other rule chain that the root chain hands off to. To process AirLink data, especially to enable PAYG token generation as well as the Neighborhood watch function, we customized this rule chain and saved it as a JSON file in the AirLink Server repository. To use functionality beyond just the core AirLink functionality, we created another “Business Logic” rule chain which gets handed off all the data from the Root rule chain.
    1. First import the “Business Logic” rule chain JSON file by going to Rule Chain → + → Import Rule Chain
    1. Next, Import the “Root Advertisements and Telemetry” Rule chain. Your rule chain setup should look like this with no errors now:
    1. Mark this rule chain as “Root” using the ‘flag’ button
  1. That’s it for the minimum required configuration on the Server! Next, configure your AirLink App to talk to your server per the following video, and you are set to provision and test real devices!
  1. After registering a device using the above flow, you can generate a Nexus Keycode PAYG token for it by using the Postman collection in the AirLink-Server repository.
    1. Download both the API calls collection and the environment, and upload to your Postman (getpostman.com)
    1. First use the login flow with the Tenant User username/password of the demo user to authenticate and get a JWT token, then
    1. enter the JWT token into the Airlink environment current value
    1. Use the Generate Token flow with the correct device ID to generate a Nexus Keycode PAYG token for your device. This token will be automatically saved in the device properties as well
    1. Connect the AirLink App and type the token in manually into the PC resource, or via keypad as shown in the video above
\ No newline at end of file diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.15.41_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.15.41_PM.png deleted file mode 100644 index 14a5f39c..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.15.41_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.16.36_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.16.36_PM.png deleted file mode 100644 index aec64b8d..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.16.36_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.20.13_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.20.13_PM.png deleted file mode 100644 index f6762221..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.20.13_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.20.24_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.20.24_PM.png deleted file mode 100644 index 2d7c0dd5..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.20.24_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.27.48_PM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.27.48_PM.png deleted file mode 100644 index 17944952..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Quick-start guide 2cc1a0d344594b08ac92916bf933fe6f/Screen_Shot_2022-01-26_at_9.27.48_PM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/README.md b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/README.md deleted file mode 100644 index 5b3af6bb..00000000 --- a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Old AirLink documentation - -This documentation is archived. -It's a snapshot of the old AirLink documentation managed in Notion. - -The new (and updated) documentation can be found at: diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Screenshot_2023-01-19_at_11.58.05_AM.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Screenshot_2023-01-19_at_11.58.05_AM.png deleted file mode 100644 index 6b0e1e38..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Screenshot_2023-01-19_at_11.58.05_AM.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Simusolar_Architecture_Diagram_-_IoT_Data_Flow.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Simusolar_Architecture_Diagram_-_IoT_Data_Flow.png deleted file mode 100644 index 06b3a86a..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Simusolar_Architecture_Diagram_-_IoT_Data_Flow.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Simusolar_logo.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Simusolar_logo.png deleted file mode 100644 index f3901b0c..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/Simusolar_logo.png and /dev/null differ diff --git a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/logo.png b/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/logo.png deleted file mode 100644 index 41d24f7d..00000000 Binary files a/docs/AirLink Docs 83f2c2ce8fb0463a9078d63aad81a0c7/logo.png and /dev/null differ diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 65a31a41..00000000 --- a/docs/index.html +++ /dev/null @@ -1,705 +0,0 @@ -AirLink Docs

AirLink Docs

-

This is technical documentation for AirLink. - -If you are looking for an overview, the landing page is here: -https://enaccess.org/airlink/

Here is also a helpful guide that plays through the AirLink adoption flow in short

-

AirLink is an open source framework (MIT License) for Pay-As-You-Go (PAYG) IoT devices to connect to compatible servers via Bluetooth® gateways. The protocol provides an interoperable communication standard and example code for wire-free communication between PAYG devices and an IoT server using smartphones as gateways. -

-

-

-


AirLink Components

-

-

Nordic nRF firmware -- Open-source on GitHub

-

-

Xamarin and Flutter apps -- Open-source on GitHub

-

Thingsboard.io demo server -- Hosted by EnAccess

-

-


AirLink Flows

-

-

AirLink Data transfer flow
AirLink interactions during device manufacture, provisioning and use
AirLink Lost/Stolen Devices Flow

-

-

-


Related Resources

-

CBOR

Efficient data arrays

-

OCF

Models for device interactions

-

Nexus Channel

Angaza's Inter-operability initiative

-

OpenPAYGO Link

Wired inter-operability from Solaris/ EnAccess

OpenPAYGO Metrics

GSM inter-operability from Solaris

OpenPAYGO Token

Open Source PAYGO token reference design from Solaris/EnAccess

-

-

-


https://www.simusolar.com

AirLink was developed by Simusolar Inc with support from EnAccess -This manual developed using Notion.so and Lucid.app

https://enaccess.org
\ No newline at end of file diff --git a/app/lib/core/api/airlink_api_service.dart b/lib/core/api/airlink_api_service.dart similarity index 100% rename from app/lib/core/api/airlink_api_service.dart rename to lib/core/api/airlink_api_service.dart diff --git a/app/lib/core/api/angaza_api_service.dart b/lib/core/api/angaza_api_service.dart similarity index 100% rename from app/lib/core/api/angaza_api_service.dart rename to lib/core/api/angaza_api_service.dart diff --git a/app/lib/core/api/angaza_base_client.dart b/lib/core/api/angaza_base_client.dart similarity index 100% rename from app/lib/core/api/angaza_base_client.dart rename to lib/core/api/angaza_base_client.dart diff --git a/app/lib/core/api/base_api_client.dart b/lib/core/api/base_api_client.dart similarity index 100% rename from app/lib/core/api/base_api_client.dart rename to lib/core/api/base_api_client.dart diff --git a/app/lib/core/api/token_manager.dart b/lib/core/api/token_manager.dart similarity index 100% rename from app/lib/core/api/token_manager.dart rename to lib/core/api/token_manager.dart diff --git a/app/lib/core/bluetooth/bluetooth_info.dart b/lib/core/bluetooth/bluetooth_info.dart similarity index 100% rename from app/lib/core/bluetooth/bluetooth_info.dart rename to lib/core/bluetooth/bluetooth_info.dart diff --git a/app/lib/core/device_info/device_info.dart b/lib/core/device_info/device_info.dart similarity index 100% rename from app/lib/core/device_info/device_info.dart rename to lib/core/device_info/device_info.dart diff --git a/app/lib/core/errors/failures.dart b/lib/core/errors/failures.dart similarity index 100% rename from app/lib/core/errors/failures.dart rename to lib/core/errors/failures.dart diff --git a/app/lib/core/location/location_info.dart b/lib/core/location/location_info.dart similarity index 100% rename from app/lib/core/location/location_info.dart rename to lib/core/location/location_info.dart diff --git a/app/lib/core/network/network_info.dart b/lib/core/network/network_info.dart similarity index 100% rename from app/lib/core/network/network_info.dart rename to lib/core/network/network_info.dart diff --git a/app/lib/core/storage/storage.dart b/lib/core/storage/storage.dart similarity index 100% rename from app/lib/core/storage/storage.dart rename to lib/core/storage/storage.dart diff --git a/app/lib/core/utils/constants/characteristic_uuids.dart b/lib/core/utils/constants/characteristic_uuids.dart similarity index 100% rename from app/lib/core/utils/constants/characteristic_uuids.dart rename to lib/core/utils/constants/characteristic_uuids.dart diff --git a/app/lib/core/utils/enums/enums.dart b/lib/core/utils/enums/enums.dart similarity index 100% rename from app/lib/core/utils/enums/enums.dart rename to lib/core/utils/enums/enums.dart diff --git a/app/lib/core/utils/helper_functions.dart b/lib/core/utils/helper_functions.dart similarity index 100% rename from app/lib/core/utils/helper_functions.dart rename to lib/core/utils/helper_functions.dart diff --git a/app/lib/core/widgets/app_alert.dart b/lib/core/widgets/app_alert.dart similarity index 100% rename from app/lib/core/widgets/app_alert.dart rename to lib/core/widgets/app_alert.dart diff --git a/app/lib/core/widgets/appbar_actions.dart b/lib/core/widgets/appbar_actions.dart similarity index 100% rename from app/lib/core/widgets/appbar_actions.dart rename to lib/core/widgets/appbar_actions.dart diff --git a/app/lib/core/widgets/snackbars.dart b/lib/core/widgets/snackbars.dart similarity index 100% rename from app/lib/core/widgets/snackbars.dart rename to lib/core/widgets/snackbars.dart diff --git a/app/lib/features/device/data/data_sources/local/ble_device_local_data_source.dart b/lib/features/device/data/data_sources/local/ble_device_local_data_source.dart similarity index 100% rename from app/lib/features/device/data/data_sources/local/ble_device_local_data_source.dart rename to lib/features/device/data/data_sources/local/ble_device_local_data_source.dart diff --git a/app/lib/features/device/data/data_sources/local/ble_device_local_data_source_impl.dart b/lib/features/device/data/data_sources/local/ble_device_local_data_source_impl.dart similarity index 100% rename from app/lib/features/device/data/data_sources/local/ble_device_local_data_source_impl.dart rename to lib/features/device/data/data_sources/local/ble_device_local_data_source_impl.dart diff --git a/app/lib/features/device/data/data_sources/remote/device_remote_data_source.dart b/lib/features/device/data/data_sources/remote/device_remote_data_source.dart similarity index 100% rename from app/lib/features/device/data/data_sources/remote/device_remote_data_source.dart rename to lib/features/device/data/data_sources/remote/device_remote_data_source.dart diff --git a/app/lib/features/device/data/data_sources/remote/device_remote_data_source_impl.dart b/lib/features/device/data/data_sources/remote/device_remote_data_source_impl.dart similarity index 100% rename from app/lib/features/device/data/data_sources/remote/device_remote_data_source_impl.dart rename to lib/features/device/data/data_sources/remote/device_remote_data_source_impl.dart diff --git a/app/lib/features/device/data/models/advertisement_packet_model.dart b/lib/features/device/data/models/advertisement_packet_model.dart similarity index 100% rename from app/lib/features/device/data/models/advertisement_packet_model.dart rename to lib/features/device/data/models/advertisement_packet_model.dart diff --git a/app/lib/features/device/data/models/characteristic_model.dart b/lib/features/device/data/models/characteristic_model.dart similarity index 100% rename from app/lib/features/device/data/models/characteristic_model.dart rename to lib/features/device/data/models/characteristic_model.dart diff --git a/app/lib/features/device/data/models/device_model.dart b/lib/features/device/data/models/device_model.dart similarity index 100% rename from app/lib/features/device/data/models/device_model.dart rename to lib/features/device/data/models/device_model.dart diff --git a/app/lib/features/device/data/models/provisioned_device_model.dart b/lib/features/device/data/models/provisioned_device_model.dart similarity index 100% rename from app/lib/features/device/data/models/provisioned_device_model.dart rename to lib/features/device/data/models/provisioned_device_model.dart diff --git a/app/lib/features/device/data/models/telemetry_model.dart b/lib/features/device/data/models/telemetry_model.dart similarity index 100% rename from app/lib/features/device/data/models/telemetry_model.dart rename to lib/features/device/data/models/telemetry_model.dart diff --git a/app/lib/features/device/data/repositories/ble_device_repository_impl.dart b/lib/features/device/data/repositories/ble_device_repository_impl.dart similarity index 100% rename from app/lib/features/device/data/repositories/ble_device_repository_impl.dart rename to lib/features/device/data/repositories/ble_device_repository_impl.dart diff --git a/app/lib/features/device/domain/entities/advertisement_packet.dart b/lib/features/device/domain/entities/advertisement_packet.dart similarity index 100% rename from app/lib/features/device/domain/entities/advertisement_packet.dart rename to lib/features/device/domain/entities/advertisement_packet.dart diff --git a/app/lib/features/device/domain/entities/characteristic.dart b/lib/features/device/domain/entities/characteristic.dart similarity index 100% rename from app/lib/features/device/domain/entities/characteristic.dart rename to lib/features/device/domain/entities/characteristic.dart diff --git a/app/lib/features/device/domain/entities/characteristic_data.dart b/lib/features/device/domain/entities/characteristic_data.dart similarity index 100% rename from app/lib/features/device/domain/entities/characteristic_data.dart rename to lib/features/device/domain/entities/characteristic_data.dart diff --git a/app/lib/features/device/domain/entities/device.dart b/lib/features/device/domain/entities/device.dart similarity index 100% rename from app/lib/features/device/domain/entities/device.dart rename to lib/features/device/domain/entities/device.dart diff --git a/app/lib/features/device/domain/entities/provisioned_device.dart b/lib/features/device/domain/entities/provisioned_device.dart similarity index 100% rename from app/lib/features/device/domain/entities/provisioned_device.dart rename to lib/features/device/domain/entities/provisioned_device.dart diff --git a/app/lib/features/device/domain/entities/telemetry.dart b/lib/features/device/domain/entities/telemetry.dart similarity index 100% rename from app/lib/features/device/domain/entities/telemetry.dart rename to lib/features/device/domain/entities/telemetry.dart diff --git a/app/lib/features/device/domain/repositories/device_repository.dart b/lib/features/device/domain/repositories/device_repository.dart similarity index 100% rename from app/lib/features/device/domain/repositories/device_repository.dart rename to lib/features/device/domain/repositories/device_repository.dart diff --git a/app/lib/features/device/domain/usecases/authorize_device.dart b/lib/features/device/domain/usecases/authorize_device.dart similarity index 100% rename from app/lib/features/device/domain/usecases/authorize_device.dart rename to lib/features/device/domain/usecases/authorize_device.dart diff --git a/app/lib/features/device/domain/usecases/connect_to_ble_device.dart b/lib/features/device/domain/usecases/connect_to_ble_device.dart similarity index 100% rename from app/lib/features/device/domain/usecases/connect_to_ble_device.dart rename to lib/features/device/domain/usecases/connect_to_ble_device.dart diff --git a/app/lib/features/device/domain/usecases/disconnect_ble_device.dart b/lib/features/device/domain/usecases/disconnect_ble_device.dart similarity index 100% rename from app/lib/features/device/domain/usecases/disconnect_ble_device.dart rename to lib/features/device/domain/usecases/disconnect_ble_device.dart diff --git a/app/lib/features/device/domain/usecases/get_ble_devices.dart b/lib/features/device/domain/usecases/get_ble_devices.dart similarity index 100% rename from app/lib/features/device/domain/usecases/get_ble_devices.dart rename to lib/features/device/domain/usecases/get_ble_devices.dart diff --git a/app/lib/features/device/domain/usecases/get_device_access_token.dart b/lib/features/device/domain/usecases/get_device_access_token.dart similarity index 100% rename from app/lib/features/device/domain/usecases/get_device_access_token.dart rename to lib/features/device/domain/usecases/get_device_access_token.dart diff --git a/app/lib/features/device/domain/usecases/post_advertisement_data.dart b/lib/features/device/domain/usecases/post_advertisement_data.dart similarity index 100% rename from app/lib/features/device/domain/usecases/post_advertisement_data.dart rename to lib/features/device/domain/usecases/post_advertisement_data.dart diff --git a/app/lib/features/device/domain/usecases/provision_device.dart b/lib/features/device/domain/usecases/provision_device.dart similarity index 100% rename from app/lib/features/device/domain/usecases/provision_device.dart rename to lib/features/device/domain/usecases/provision_device.dart diff --git a/app/lib/features/device/domain/usecases/read_characteristic.dart b/lib/features/device/domain/usecases/read_characteristic.dart similarity index 100% rename from app/lib/features/device/domain/usecases/read_characteristic.dart rename to lib/features/device/domain/usecases/read_characteristic.dart diff --git a/app/lib/features/device/domain/usecases/save_advertisement_data.dart b/lib/features/device/domain/usecases/save_advertisement_data.dart similarity index 100% rename from app/lib/features/device/domain/usecases/save_advertisement_data.dart rename to lib/features/device/domain/usecases/save_advertisement_data.dart diff --git a/app/lib/features/device/domain/usecases/sync_gateway_and_device.dart b/lib/features/device/domain/usecases/sync_gateway_and_device.dart similarity index 100% rename from app/lib/features/device/domain/usecases/sync_gateway_and_device.dart rename to lib/features/device/domain/usecases/sync_gateway_and_device.dart diff --git a/app/lib/features/device/domain/usecases/sync_server_and_gateway.dart b/lib/features/device/domain/usecases/sync_server_and_gateway.dart similarity index 100% rename from app/lib/features/device/domain/usecases/sync_server_and_gateway.dart rename to lib/features/device/domain/usecases/sync_server_and_gateway.dart diff --git a/app/lib/features/device/domain/usecases/transfer_payg_token.dart b/lib/features/device/domain/usecases/transfer_payg_token.dart similarity index 100% rename from app/lib/features/device/domain/usecases/transfer_payg_token.dart rename to lib/features/device/domain/usecases/transfer_payg_token.dart diff --git a/app/lib/features/device/domain/usecases/usecase.dart b/lib/features/device/domain/usecases/usecase.dart similarity index 100% rename from app/lib/features/device/domain/usecases/usecase.dart rename to lib/features/device/domain/usecases/usecase.dart diff --git a/app/lib/features/device/domain/usecases/write_characteristic.dart b/lib/features/device/domain/usecases/write_characteristic.dart similarity index 100% rename from app/lib/features/device/domain/usecases/write_characteristic.dart rename to lib/features/device/domain/usecases/write_characteristic.dart diff --git a/app/lib/features/device/presentation/pages/device_details_page.dart b/lib/features/device/presentation/pages/device_details_page.dart similarity index 100% rename from app/lib/features/device/presentation/pages/device_details_page.dart rename to lib/features/device/presentation/pages/device_details_page.dart diff --git a/app/lib/features/device/presentation/pages/device_list_page.dart b/lib/features/device/presentation/pages/device_list_page.dart similarity index 100% rename from app/lib/features/device/presentation/pages/device_list_page.dart rename to lib/features/device/presentation/pages/device_list_page.dart diff --git a/app/lib/features/device/presentation/providers/device_provider.dart b/lib/features/device/presentation/providers/device_provider.dart similarity index 100% rename from app/lib/features/device/presentation/providers/device_provider.dart rename to lib/features/device/presentation/providers/device_provider.dart diff --git a/app/lib/features/device/presentation/widgets/action_button.dart b/lib/features/device/presentation/widgets/action_button.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/action_button.dart rename to lib/features/device/presentation/widgets/action_button.dart diff --git a/app/lib/features/device/presentation/widgets/barcode_scanner_dialog.dart b/lib/features/device/presentation/widgets/barcode_scanner_dialog.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/barcode_scanner_dialog.dart rename to lib/features/device/presentation/widgets/barcode_scanner_dialog.dart diff --git a/app/lib/features/device/presentation/widgets/ble_device_tile.dart b/lib/features/device/presentation/widgets/ble_device_tile.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/ble_device_tile.dart rename to lib/features/device/presentation/widgets/ble_device_tile.dart diff --git a/app/lib/features/device/presentation/widgets/characteristic_button.dart b/lib/features/device/presentation/widgets/characteristic_button.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/characteristic_button.dart rename to lib/features/device/presentation/widgets/characteristic_button.dart diff --git a/app/lib/features/device/presentation/widgets/device_actions.dart b/lib/features/device/presentation/widgets/device_actions.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/device_actions.dart rename to lib/features/device/presentation/widgets/device_actions.dart diff --git a/app/lib/features/device/presentation/widgets/device_data.dart b/lib/features/device/presentation/widgets/device_data.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/device_data.dart rename to lib/features/device/presentation/widgets/device_data.dart diff --git a/app/lib/features/device/presentation/widgets/input_field.dart b/lib/features/device/presentation/widgets/input_field.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/input_field.dart rename to lib/features/device/presentation/widgets/input_field.dart diff --git a/app/lib/features/device/presentation/widgets/input_payg_token_dialog.dart b/lib/features/device/presentation/widgets/input_payg_token_dialog.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/input_payg_token_dialog.dart rename to lib/features/device/presentation/widgets/input_payg_token_dialog.dart diff --git a/app/lib/features/device/presentation/widgets/input_serial_number_dialog.dart b/lib/features/device/presentation/widgets/input_serial_number_dialog.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/input_serial_number_dialog.dart rename to lib/features/device/presentation/widgets/input_serial_number_dialog.dart diff --git a/app/lib/features/device/presentation/widgets/payg_token_input_form.dart b/lib/features/device/presentation/widgets/payg_token_input_form.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/payg_token_input_form.dart rename to lib/features/device/presentation/widgets/payg_token_input_form.dart diff --git a/app/lib/features/device/presentation/widgets/search_field.dart b/lib/features/device/presentation/widgets/search_field.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/search_field.dart rename to lib/features/device/presentation/widgets/search_field.dart diff --git a/app/lib/features/device/presentation/widgets/serial_number_input_form.dart b/lib/features/device/presentation/widgets/serial_number_input_form.dart similarity index 100% rename from app/lib/features/device/presentation/widgets/serial_number_input_form.dart rename to lib/features/device/presentation/widgets/serial_number_input_form.dart diff --git a/app/lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source.dart b/lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source.dart similarity index 100% rename from app/lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source.dart rename to lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source.dart diff --git a/app/lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source_impl.dart b/lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source_impl.dart similarity index 100% rename from app/lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source_impl.dart rename to lib/features/generate_token/data/data_sources/remote/token_device_remote_data_source_impl.dart diff --git a/app/lib/features/generate_token/data/models/device_suggestion_model.dart b/lib/features/generate_token/data/models/device_suggestion_model.dart similarity index 100% rename from app/lib/features/generate_token/data/models/device_suggestion_model.dart rename to lib/features/generate_token/data/models/device_suggestion_model.dart diff --git a/app/lib/features/generate_token/data/models/token_device_model.dart b/lib/features/generate_token/data/models/token_device_model.dart similarity index 100% rename from app/lib/features/generate_token/data/models/token_device_model.dart rename to lib/features/generate_token/data/models/token_device_model.dart diff --git a/app/lib/features/generate_token/data/repositories/token_device_repository_impl.dart b/lib/features/generate_token/data/repositories/token_device_repository_impl.dart similarity index 100% rename from app/lib/features/generate_token/data/repositories/token_device_repository_impl.dart rename to lib/features/generate_token/data/repositories/token_device_repository_impl.dart diff --git a/app/lib/features/generate_token/domain/entities/device_suggestion.dart b/lib/features/generate_token/domain/entities/device_suggestion.dart similarity index 100% rename from app/lib/features/generate_token/domain/entities/device_suggestion.dart rename to lib/features/generate_token/domain/entities/device_suggestion.dart diff --git a/app/lib/features/generate_token/domain/entities/token_device.dart b/lib/features/generate_token/domain/entities/token_device.dart similarity index 100% rename from app/lib/features/generate_token/domain/entities/token_device.dart rename to lib/features/generate_token/domain/entities/token_device.dart diff --git a/app/lib/features/generate_token/domain/repositories/token_device_repository.dart b/lib/features/generate_token/domain/repositories/token_device_repository.dart similarity index 100% rename from app/lib/features/generate_token/domain/repositories/token_device_repository.dart rename to lib/features/generate_token/domain/repositories/token_device_repository.dart diff --git a/app/lib/features/generate_token/domain/usecases/generate_token.dart b/lib/features/generate_token/domain/usecases/generate_token.dart similarity index 100% rename from app/lib/features/generate_token/domain/usecases/generate_token.dart rename to lib/features/generate_token/domain/usecases/generate_token.dart diff --git a/app/lib/features/generate_token/domain/usecases/get_device_suggestion.dart b/lib/features/generate_token/domain/usecases/get_device_suggestion.dart similarity index 100% rename from app/lib/features/generate_token/domain/usecases/get_device_suggestion.dart rename to lib/features/generate_token/domain/usecases/get_device_suggestion.dart diff --git a/app/lib/features/generate_token/domain/usecases/usecase.dart b/lib/features/generate_token/domain/usecases/usecase.dart similarity index 100% rename from app/lib/features/generate_token/domain/usecases/usecase.dart rename to lib/features/generate_token/domain/usecases/usecase.dart diff --git a/app/lib/features/generate_token/presentation/pages/generate_token_page.dart b/lib/features/generate_token/presentation/pages/generate_token_page.dart similarity index 100% rename from app/lib/features/generate_token/presentation/pages/generate_token_page.dart rename to lib/features/generate_token/presentation/pages/generate_token_page.dart diff --git a/app/lib/features/generate_token/presentation/providers/token_device_provider.dart b/lib/features/generate_token/presentation/providers/token_device_provider.dart similarity index 100% rename from app/lib/features/generate_token/presentation/providers/token_device_provider.dart rename to lib/features/generate_token/presentation/providers/token_device_provider.dart diff --git a/app/lib/features/generate_token/presentation/widgets/search_field.dart b/lib/features/generate_token/presentation/widgets/search_field.dart similarity index 100% rename from app/lib/features/generate_token/presentation/widgets/search_field.dart rename to lib/features/generate_token/presentation/widgets/search_field.dart diff --git a/app/lib/features/profile/data/data_sources/local/angaza_local_data_source.dart b/lib/features/profile/data/data_sources/local/angaza_local_data_source.dart similarity index 100% rename from app/lib/features/profile/data/data_sources/local/angaza_local_data_source.dart rename to lib/features/profile/data/data_sources/local/angaza_local_data_source.dart diff --git a/app/lib/features/profile/data/data_sources/local/angaza_local_data_source_impl.dart b/lib/features/profile/data/data_sources/local/angaza_local_data_source_impl.dart similarity index 100% rename from app/lib/features/profile/data/data_sources/local/angaza_local_data_source_impl.dart rename to lib/features/profile/data/data_sources/local/angaza_local_data_source_impl.dart diff --git a/app/lib/features/profile/data/data_sources/local/profile_local_data_source.dart b/lib/features/profile/data/data_sources/local/profile_local_data_source.dart similarity index 100% rename from app/lib/features/profile/data/data_sources/local/profile_local_data_source.dart rename to lib/features/profile/data/data_sources/local/profile_local_data_source.dart diff --git a/app/lib/features/profile/data/data_sources/local/profile_local_data_source_impl.dart b/lib/features/profile/data/data_sources/local/profile_local_data_source_impl.dart similarity index 100% rename from app/lib/features/profile/data/data_sources/local/profile_local_data_source_impl.dart rename to lib/features/profile/data/data_sources/local/profile_local_data_source_impl.dart diff --git a/app/lib/features/profile/data/data_sources/remote/profile_remote_data_source.dart b/lib/features/profile/data/data_sources/remote/profile_remote_data_source.dart similarity index 100% rename from app/lib/features/profile/data/data_sources/remote/profile_remote_data_source.dart rename to lib/features/profile/data/data_sources/remote/profile_remote_data_source.dart diff --git a/app/lib/features/profile/data/data_sources/remote/profile_remote_data_source_impl.dart b/lib/features/profile/data/data_sources/remote/profile_remote_data_source_impl.dart similarity index 100% rename from app/lib/features/profile/data/data_sources/remote/profile_remote_data_source_impl.dart rename to lib/features/profile/data/data_sources/remote/profile_remote_data_source_impl.dart diff --git a/app/lib/features/profile/data/models/angaza_user_model.dart b/lib/features/profile/data/models/angaza_user_model.dart similarity index 100% rename from app/lib/features/profile/data/models/angaza_user_model.dart rename to lib/features/profile/data/models/angaza_user_model.dart diff --git a/app/lib/features/profile/data/models/profile_model.dart b/lib/features/profile/data/models/profile_model.dart similarity index 100% rename from app/lib/features/profile/data/models/profile_model.dart rename to lib/features/profile/data/models/profile_model.dart diff --git a/app/lib/features/profile/data/repositories/angaza_repository_impl.dart b/lib/features/profile/data/repositories/angaza_repository_impl.dart similarity index 100% rename from app/lib/features/profile/data/repositories/angaza_repository_impl.dart rename to lib/features/profile/data/repositories/angaza_repository_impl.dart diff --git a/app/lib/features/profile/data/repositories/profile_repository_impl.dart b/lib/features/profile/data/repositories/profile_repository_impl.dart similarity index 100% rename from app/lib/features/profile/data/repositories/profile_repository_impl.dart rename to lib/features/profile/data/repositories/profile_repository_impl.dart diff --git a/app/lib/features/profile/domain/entities/angaza_user.dart b/lib/features/profile/domain/entities/angaza_user.dart similarity index 100% rename from app/lib/features/profile/domain/entities/angaza_user.dart rename to lib/features/profile/domain/entities/angaza_user.dart diff --git a/app/lib/features/profile/domain/entities/profile.dart b/lib/features/profile/domain/entities/profile.dart similarity index 100% rename from app/lib/features/profile/domain/entities/profile.dart rename to lib/features/profile/domain/entities/profile.dart diff --git a/app/lib/features/profile/domain/repositories/angaza_repository.dart b/lib/features/profile/domain/repositories/angaza_repository.dart similarity index 100% rename from app/lib/features/profile/domain/repositories/angaza_repository.dart rename to lib/features/profile/domain/repositories/angaza_repository.dart diff --git a/app/lib/features/profile/domain/repositories/profile_repository.dart b/lib/features/profile/domain/repositories/profile_repository.dart similarity index 100% rename from app/lib/features/profile/domain/repositories/profile_repository.dart rename to lib/features/profile/domain/repositories/profile_repository.dart diff --git a/app/lib/features/profile/domain/usecases/get_angaza_credentials.dart b/lib/features/profile/domain/usecases/get_angaza_credentials.dart similarity index 100% rename from app/lib/features/profile/domain/usecases/get_angaza_credentials.dart rename to lib/features/profile/domain/usecases/get_angaza_credentials.dart diff --git a/app/lib/features/profile/domain/usecases/get_gateway_device_id.dart b/lib/features/profile/domain/usecases/get_gateway_device_id.dart similarity index 100% rename from app/lib/features/profile/domain/usecases/get_gateway_device_id.dart rename to lib/features/profile/domain/usecases/get_gateway_device_id.dart diff --git a/app/lib/features/profile/domain/usecases/get_profile.dart b/lib/features/profile/domain/usecases/get_profile.dart similarity index 100% rename from app/lib/features/profile/domain/usecases/get_profile.dart rename to lib/features/profile/domain/usecases/get_profile.dart diff --git a/app/lib/features/profile/domain/usecases/provision_gateway.dart b/lib/features/profile/domain/usecases/provision_gateway.dart similarity index 100% rename from app/lib/features/profile/domain/usecases/provision_gateway.dart rename to lib/features/profile/domain/usecases/provision_gateway.dart diff --git a/app/lib/features/profile/domain/usecases/save_angaza_credentials.dart b/lib/features/profile/domain/usecases/save_angaza_credentials.dart similarity index 100% rename from app/lib/features/profile/domain/usecases/save_angaza_credentials.dart rename to lib/features/profile/domain/usecases/save_angaza_credentials.dart diff --git a/app/lib/features/profile/domain/usecases/usecase.dart b/lib/features/profile/domain/usecases/usecase.dart similarity index 100% rename from app/lib/features/profile/domain/usecases/usecase.dart rename to lib/features/profile/domain/usecases/usecase.dart diff --git a/app/lib/features/profile/presentation/pages/profile_page.dart b/lib/features/profile/presentation/pages/profile_page.dart similarity index 100% rename from app/lib/features/profile/presentation/pages/profile_page.dart rename to lib/features/profile/presentation/pages/profile_page.dart diff --git a/app/lib/features/profile/presentation/provider/angaza_provider.dart b/lib/features/profile/presentation/provider/angaza_provider.dart similarity index 100% rename from app/lib/features/profile/presentation/provider/angaza_provider.dart rename to lib/features/profile/presentation/provider/angaza_provider.dart diff --git a/app/lib/features/profile/presentation/provider/profile_provider.dart b/lib/features/profile/presentation/provider/profile_provider.dart similarity index 100% rename from app/lib/features/profile/presentation/provider/profile_provider.dart rename to lib/features/profile/presentation/provider/profile_provider.dart diff --git a/app/lib/features/profile/presentation/widgets/airlink_credentials.dart b/lib/features/profile/presentation/widgets/airlink_credentials.dart similarity index 100% rename from app/lib/features/profile/presentation/widgets/airlink_credentials.dart rename to lib/features/profile/presentation/widgets/airlink_credentials.dart diff --git a/app/lib/features/profile/presentation/widgets/angaza_credentials_form.dart b/lib/features/profile/presentation/widgets/angaza_credentials_form.dart similarity index 100% rename from app/lib/features/profile/presentation/widgets/angaza_credentials_form.dart rename to lib/features/profile/presentation/widgets/angaza_credentials_form.dart diff --git a/app/lib/features/profile/presentation/widgets/input_field.dart b/lib/features/profile/presentation/widgets/input_field.dart similarity index 100% rename from app/lib/features/profile/presentation/widgets/input_field.dart rename to lib/features/profile/presentation/widgets/input_field.dart diff --git a/app/lib/main.dart b/lib/main.dart similarity index 100% rename from app/lib/main.dart rename to lib/main.dart diff --git a/app/lib/providers.dart b/lib/providers.dart similarity index 100% rename from app/lib/providers.dart rename to lib/providers.dart diff --git a/app/lib/service_locator.dart b/lib/service_locator.dart similarity index 100% rename from app/lib/service_locator.dart rename to lib/service_locator.dart diff --git a/app/pubspec.lock b/pubspec.lock similarity index 100% rename from app/pubspec.lock rename to pubspec.lock diff --git a/app/pubspec.yaml b/pubspec.yaml similarity index 100% rename from app/pubspec.yaml rename to pubspec.yaml diff --git a/app/test/widget_test.dart b/test/widget_test.dart similarity index 100% rename from app/test/widget_test.dart rename to test/widget_test.dart