From a1641da8f663bae877a7536710ffbb2d51c13247 Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Thu, 11 Dec 2025 19:27:57 -0500
Subject: [PATCH 1/7] Documentation
---
.../ChallengeAdded.json | 0
...lengeConsumptionUpdatedValuesReceived.json | 0
...ChallengeDetailsInitialValuesReceived.json | 0
.../ChallengeListInitialValuesReceived.json | 0
.../ChallengeListUpdatedValuesReceived.json | 0
doc/Readme.md | 32 +++++++++++++++++++
6 files changed, 32 insertions(+)
rename doc/{ => Old JSONs (pre 2025-26 season)}/ChallengeAdded.json (100%)
rename doc/{ => Old JSONs (pre 2025-26 season)}/ChallengeConsumptionUpdatedValuesReceived.json (100%)
rename doc/{ => Old JSONs (pre 2025-26 season)}/ChallengeDetailsInitialValuesReceived.json (100%)
rename doc/{ => Old JSONs (pre 2025-26 season)}/ChallengeListInitialValuesReceived.json (100%)
rename doc/{ => Old JSONs (pre 2025-26 season)}/ChallengeListUpdatedValuesReceived.json (100%)
create mode 100644 doc/Readme.md
diff --git a/doc/ChallengeAdded.json b/doc/Old JSONs (pre 2025-26 season)/ChallengeAdded.json
similarity index 100%
rename from doc/ChallengeAdded.json
rename to doc/Old JSONs (pre 2025-26 season)/ChallengeAdded.json
diff --git a/doc/ChallengeConsumptionUpdatedValuesReceived.json b/doc/Old JSONs (pre 2025-26 season)/ChallengeConsumptionUpdatedValuesReceived.json
similarity index 100%
rename from doc/ChallengeConsumptionUpdatedValuesReceived.json
rename to doc/Old JSONs (pre 2025-26 season)/ChallengeConsumptionUpdatedValuesReceived.json
diff --git a/doc/ChallengeDetailsInitialValuesReceived.json b/doc/Old JSONs (pre 2025-26 season)/ChallengeDetailsInitialValuesReceived.json
similarity index 100%
rename from doc/ChallengeDetailsInitialValuesReceived.json
rename to doc/Old JSONs (pre 2025-26 season)/ChallengeDetailsInitialValuesReceived.json
diff --git a/doc/ChallengeListInitialValuesReceived.json b/doc/Old JSONs (pre 2025-26 season)/ChallengeListInitialValuesReceived.json
similarity index 100%
rename from doc/ChallengeListInitialValuesReceived.json
rename to doc/Old JSONs (pre 2025-26 season)/ChallengeListInitialValuesReceived.json
diff --git a/doc/ChallengeListUpdatedValuesReceived.json b/doc/Old JSONs (pre 2025-26 season)/ChallengeListUpdatedValuesReceived.json
similarity index 100%
rename from doc/ChallengeListUpdatedValuesReceived.json
rename to doc/Old JSONs (pre 2025-26 season)/ChallengeListUpdatedValuesReceived.json
diff --git a/doc/Readme.md b/doc/Readme.md
new file mode 100644
index 0000000..d3bd736
--- /dev/null
+++ b/doc/Readme.md
@@ -0,0 +1,32 @@
+# Using get_tokens.py
+This python script will let you use it to log in to your Hilo account.
+
+From there, you will be asked to copy the full HA redirect(callback) URL and go back to your python script and press enter.
+
+Negotiation will take place and you will receive three distinct tokens:
+- Your access token
+- Your devicehub token
+- Your challengehub token
+
+Take care not to share your tokens as they are not encrypted and contain personally identifiable information.
+
+1. Run get_tokens.py, you will be provided with a link. Either click it or copy it in your favourite browser.
+
+
+2. Login using your Hilo Credentials
+
+
+
+3. Once you get to this page, select the URL and copy it to clipboard
+
+
+
+4. Go back to get_tokens.py and press enter, you'll get all 3 tokens:
+
+
+
+
+# Using Postman to send payloads to devicehub or challengehub
+## Prerequisite: you need to have your tokens on hand, they are relatively short lived so once you have them, get to connecting!
+
+
From 077c2c76c5d739326e8d04acd935ee8d2116f6a9 Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Thu, 11 Dec 2025 19:28:55 -0500
Subject: [PATCH 2/7] Fix formatting in Readme.md
Removed an unnecessary line break in the README.
---
doc/Readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/Readme.md b/doc/Readme.md
index d3bd736..e2c0008 100644
--- a/doc/Readme.md
+++ b/doc/Readme.md
@@ -23,7 +23,7 @@ Take care not to share your tokens as they are not encrypted and contain persona
4. Go back to get_tokens.py and press enter, you'll get all 3 tokens:
-
+
# Using Postman to send payloads to devicehub or challengehub
From dec90303f13bd27b4e52ea909b4ba2e8592230f8 Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Thu, 11 Dec 2025 20:16:14 -0500
Subject: [PATCH 3/7] Enhance Readme with DeviceHub and ChallengeHub usage
Added detailed instructions for using DeviceHub and ChallengeHub with websocket connections, including token usage and message formats.
---
doc/Readme.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/doc/Readme.md b/doc/Readme.md
index e2c0008..d1ba29a 100644
--- a/doc/Readme.md
+++ b/doc/Readme.md
@@ -29,4 +29,51 @@ Take care not to share your tokens as they are not encrypted and contain persona
# Using Postman to send payloads to devicehub or challengehub
## Prerequisite: you need to have your tokens on hand, they are relatively short lived so once you have them, get to connecting!
+### DeviceHub
+
+1. Open up a new websocket connection and paste the DeviceHub URL
+2. In Headers, add "Authorization".
+3. In the Authorization field, type in "Bearer" then a space, and paste your DeviceHub token.
+
+4. Go to the "Messages" tab and type in. Notice the control character at the end chr(30). It is required.
+
+```
+{
+ "protocol": "json",
+ "version": 1
+}
+```
+5. You can then invoke "SubscribeToLocation" to get your device informations.
+```
+{
+ "arguments": [
+ 69420
+ ],
+ "invocationId": "0",
+ "target": "SubscribeToLocation",
+ "type": 1
+}
+```
+### ChallengeHub
+
+1. Open up a new websocket connection and paste the DeviceHub URL
+2. In Headers, add "Authorization".
+3. In the Authorization field, type in "Bearer" then a space, and paste your DeviceHub token.
+
+4. Go to the "Messages" tab and type in. Notice the control character at the end chr(30). It is required.
+
+```
+{
+ "protocol": "json",
+ "version": 1
+}
+```
+5. You can send various messages to the ChallengeHub to request different information. Some replies are documented here.
+
+ # TODO: ADD INVOKES ARE THEIR REPLIES
+
+
+
+
+
From 51c73b50c02542f68a4963954608b9fce8a27bd2 Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Thu, 11 Dec 2025 20:22:12 -0500
Subject: [PATCH 4/7] Moving some files around
---
.../EventCHConsumptionUpdatedValuesReceived | 0
.../EventCHDetailsUpdatedValuesReceived.json | 0
.../EventFlexDetailsUpdatedValuesReceived.json | 0
doc/Device Replies/DeviceListInitialValuesReceived.json | 0
doc/Readme.md | 4 +++-
5 files changed, 3 insertions(+), 1 deletion(-)
rename doc/{ => Challenge(Event) Replies}/EventCHConsumptionUpdatedValuesReceived (100%)
rename doc/{ => Challenge(Event) Replies}/EventCHDetailsUpdatedValuesReceived.json (100%)
rename doc/{ => Challenge(Event) Replies}/EventFlexDetailsUpdatedValuesReceived.json (100%)
create mode 100644 doc/Device Replies/DeviceListInitialValuesReceived.json
diff --git a/doc/EventCHConsumptionUpdatedValuesReceived b/doc/Challenge(Event) Replies/EventCHConsumptionUpdatedValuesReceived
similarity index 100%
rename from doc/EventCHConsumptionUpdatedValuesReceived
rename to doc/Challenge(Event) Replies/EventCHConsumptionUpdatedValuesReceived
diff --git a/doc/EventCHDetailsUpdatedValuesReceived.json b/doc/Challenge(Event) Replies/EventCHDetailsUpdatedValuesReceived.json
similarity index 100%
rename from doc/EventCHDetailsUpdatedValuesReceived.json
rename to doc/Challenge(Event) Replies/EventCHDetailsUpdatedValuesReceived.json
diff --git a/doc/EventFlexDetailsUpdatedValuesReceived.json b/doc/Challenge(Event) Replies/EventFlexDetailsUpdatedValuesReceived.json
similarity index 100%
rename from doc/EventFlexDetailsUpdatedValuesReceived.json
rename to doc/Challenge(Event) Replies/EventFlexDetailsUpdatedValuesReceived.json
diff --git a/doc/Device Replies/DeviceListInitialValuesReceived.json b/doc/Device Replies/DeviceListInitialValuesReceived.json
new file mode 100644
index 0000000..e69de29
diff --git a/doc/Readme.md b/doc/Readme.md
index d1ba29a..d3fa8d1 100644
--- a/doc/Readme.md
+++ b/doc/Readme.md
@@ -54,6 +54,8 @@ Take care not to share your tokens as they are not encrypted and contain persona
"type": 1
}
```
+6. You should received the DeviceListInitialValuesReceived message back.
+
### ChallengeHub
1. Open up a new websocket connection and paste the DeviceHub URL
@@ -70,7 +72,7 @@ Take care not to share your tokens as they are not encrypted and contain persona
```
5. You can send various messages to the ChallengeHub to request different information. Some replies are documented here.
- # TODO: ADD INVOKES ARE THEIR REPLIES
+TODO: ADD INVOKES AND THEIR REPLIES
From 17281b0557bdf94bc422e43b53aafec555334557 Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Thu, 11 Dec 2025 20:26:57 -0500
Subject: [PATCH 5/7] Update Readme.md
---
doc/Readme.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/doc/Readme.md b/doc/Readme.md
index d3fa8d1..f977d13 100644
--- a/doc/Readme.md
+++ b/doc/Readme.md
@@ -70,7 +70,8 @@ Take care not to share your tokens as they are not encrypted and contain persona
"version": 1
}
```
-5. You can send various messages to the ChallengeHub to request different information. Some replies are documented here.
+5. You can send various messages to the ChallengeHub to request different information. For the 2025-2026 season with the addition of Flex D, the messages were split between Winter Credit (Crédit Hivernal) and Flex D. Each of rates has its own event id, for example, event 337 was for Winter Credits, and event 338 was for Flex D, both occured at the same time. You will have access to one, or the other, depending on your rate.
+
TODO: ADD INVOKES AND THEIR REPLIES
From 2a6e8e89ca540d9784f5587a8cb9f2acdbad55b2 Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Fri, 12 Dec 2025 07:16:19 -0500
Subject: [PATCH 6/7] Update Readme.md
More info
---
doc/Readme.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/doc/Readme.md b/doc/Readme.md
index f977d13..e588483 100644
--- a/doc/Readme.md
+++ b/doc/Readme.md
@@ -70,11 +70,12 @@ Take care not to share your tokens as they are not encrypted and contain persona
"version": 1
}
```
-5. You can send various messages to the ChallengeHub to request different information. For the 2025-2026 season with the addition of Flex D, the messages were split between Winter Credit (Crédit Hivernal) and Flex D. Each of rates has its own event id, for example, event 337 was for Winter Credits, and event 338 was for Flex D, both occured at the same time. You will have access to one, or the other, depending on your rate.
+5. You can send various messages to the ChallengeHub to request different information. For the 2025-2026 season with the addition of Flex D, the messages were split between Winter Credit (Crédit Hivernal) and Flex D. Winter Credit messages will contain CH in their target, and Flex D event will contain Flex in their target. Each of rates has its own event id, for example, event 337 was for Winter Credits, and event 338 was for Flex D, both occured at the same time. You will have access to one, or the other, depending on your rate.
-TODO: ADD INVOKES AND THEIR REPLIES
+#### Examples of various invokesto the ChallengeHub
+SubcribeToEventList should return EventListInitialValuesReceived
From 34f63796f981db374be165efcd367b07fab7335e Mon Sep 17 00:00:00 2001
From: "Ian C." <108159253+ic-dev21@users.noreply.github.com>
Date: Fri, 12 Dec 2025 07:24:31 -0500
Subject: [PATCH 7/7] Update Readme.md
---
doc/Readme.md | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/doc/Readme.md b/doc/Readme.md
index e588483..4f7502d 100644
--- a/doc/Readme.md
+++ b/doc/Readme.md
@@ -73,11 +73,33 @@ Take care not to share your tokens as they are not encrypted and contain persona
5. You can send various messages to the ChallengeHub to request different information. For the 2025-2026 season with the addition of Flex D, the messages were split between Winter Credit (Crédit Hivernal) and Flex D. Winter Credit messages will contain CH in their target, and Flex D event will contain Flex in their target. Each of rates has its own event id, for example, event 337 was for Winter Credits, and event 338 was for Flex D, both occured at the same time. You will have access to one, or the other, depending on your rate.
-#### Examples of various invokesto the ChallengeHub
+### Examples of various invokesto the ChallengeHub
-SubcribeToEventList should return EventListInitialValuesReceived
+#### SubscribeToEventCH or SubscribeToEventFlex
+This invoke is used:
+```
+{
+ "arguments": [
+ {
+ "locationHiloId": "urn:YOUR-URN",
+ "eventId": ID(numberic)
+ }
+ ],
+ "invocationId": "1",
+ "target": "SubscribeToEventCH",
+ "type": 1
+}
+```
+And should return
+```
+EventCHDetailsInitialValuesReceived
+````
+Or
+```
+EventFlexDetailsInitialValuesReceived
+```