feat: change 3rd party price source to kraken
All checks were successful
BTClock CI / build (push) Successful in 32m35s
BTClock CI / merge (map[name:btclock_rev_b version:esp32s3], 213epd) (push) Successful in 22s
BTClock CI / merge (map[name:btclock_v8 version:esp32s3], 213epd) (push) Successful in 1m19s
BTClock CI / merge (map[name:lolin_s3_mini version:esp32s3], 213epd) (push) Successful in 21s
BTClock CI / merge (map[name:lolin_s3_mini version:esp32s3], 29epd) (push) Successful in 1m17s
BTClock CI / release (push) Successful in 1m20s
All checks were successful
BTClock CI / build (push) Successful in 32m35s
BTClock CI / merge (map[name:btclock_rev_b version:esp32s3], 213epd) (push) Successful in 22s
BTClock CI / merge (map[name:btclock_v8 version:esp32s3], 213epd) (push) Successful in 1m19s
BTClock CI / merge (map[name:lolin_s3_mini version:esp32s3], 213epd) (push) Successful in 21s
BTClock CI / merge (map[name:lolin_s3_mini version:esp32s3], 29epd) (push) Successful in 1m17s
BTClock CI / release (push) Successful in 1m20s
This commit is contained in:
parent
064fe8fe6c
commit
2ac2a62c61
1 changed files with 16 additions and 7 deletions
|
@ -1,6 +1,6 @@
|
||||||
#include "price_notify.hpp"
|
#include "price_notify.hpp"
|
||||||
|
|
||||||
const char *wsServerPrice = "wss://ws.coincap.io/prices?assets=bitcoin";
|
const char *wsServerPrice = "wss://ws.kraken.com/v2";
|
||||||
|
|
||||||
WebSocketsClient webSocket;
|
WebSocketsClient webSocket;
|
||||||
uint currentPrice = 90000;
|
uint currentPrice = 90000;
|
||||||
|
@ -14,7 +14,7 @@ void onWebsocketPriceEvent(WStype_t type, uint8_t * payload, size_t length);
|
||||||
|
|
||||||
void setupPriceNotify()
|
void setupPriceNotify()
|
||||||
{
|
{
|
||||||
webSocket.beginSSL("ws.coincap.io", 443, "/prices?assets=bitcoin");
|
webSocket.beginSSL("ws.kraken.com", 443, "/v2");
|
||||||
webSocket.onEvent([](WStype_t type, uint8_t * payload, size_t length) {
|
webSocket.onEvent([](WStype_t type, uint8_t * payload, size_t length) {
|
||||||
onWebsocketPriceEvent(type, payload, length);
|
onWebsocketPriceEvent(type, payload, length);
|
||||||
});
|
});
|
||||||
|
@ -32,7 +32,14 @@ void onWebsocketPriceEvent(WStype_t type, uint8_t * payload, size_t length) {
|
||||||
case WStype_CONNECTED:
|
case WStype_CONNECTED:
|
||||||
{
|
{
|
||||||
Serial.println("Connected to " + String(wsServerPrice));
|
Serial.println("Connected to " + String(wsServerPrice));
|
||||||
priceNotifyInit = true;
|
|
||||||
|
JsonDocument doc;
|
||||||
|
doc["method"] = "subscribe";
|
||||||
|
JsonObject params = doc["params"].to<JsonObject>();
|
||||||
|
params["channel"] = "ticker";
|
||||||
|
params["symbol"][0] = "BTC/USD";
|
||||||
|
|
||||||
|
webSocket.sendTXT(doc.as<String>().c_str());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WStype_TEXT:
|
case WStype_TEXT:
|
||||||
|
@ -40,11 +47,13 @@ void onWebsocketPriceEvent(WStype_t type, uint8_t * payload, size_t length) {
|
||||||
JsonDocument doc;
|
JsonDocument doc;
|
||||||
deserializeJson(doc, (char *)payload);
|
deserializeJson(doc, (char *)payload);
|
||||||
|
|
||||||
if (doc["bitcoin"].is<JsonObject>())
|
if (doc["data"][0].is<JsonObject>())
|
||||||
{
|
{
|
||||||
if (currentPrice != doc["bitcoin"].as<long>())
|
float price = doc["data"][0]["last"].as<float>();
|
||||||
|
uint roundedPrice = round(price);
|
||||||
|
if (currentPrice != roundedPrice)
|
||||||
{
|
{
|
||||||
processNewPrice(doc["bitcoin"].as<long>(), CURRENCY_USD);
|
processNewPrice(roundedPrice, CURRENCY_USD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue