-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Closed
Labels
Status: Awaiting triageIssue is waiting for triageIssue is waiting for triage
Description
Board
ESP32-PICO-D4
Device Description
ESP32 Watchy from SQFMI : https://watchy.sqfmi.com/docs/hardware
Hardware Configuration
na
Version
v2.0.15
IDE Name
Arduino IDE
Operating System
macOS 11.7
Flash frequency
na
PSRAM enabled
no
Upload speed
921600
Description
I want to trigger a GitHub actions dispatch workflow from my esp32 using HTTPClient.
It's working perfectly using curl with :
curl -L -X POST https://api.github.com/repos/mickahell/robots-data/dispatches \
-H "Accept: application/vnd.github+json" -H "Authorization: token ${TOKEN}" \
-d '{
"event_type": "watchy-data",
"client_payload":
{
"data-name":"steps", "date":"01-01-1970", "hour":"00", "data":"7000"
}
}'
But I'm always getting an error -1
connection refused from the esp32.
Sketch
#include "sendData.h"
#define API_URL "https://api.github.com/repos/mickahell/robots-data/dispatches"
#define API_TOKEN "toto"
const char* test_root_ca = "-----BEGIN CERTIFICATE-----\n" \
"MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL\n" \
"MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl\n" \
"eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT\n" \
"JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx\n" \
"MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT\n" \
"Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg\n" \
"VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm\n" \
"aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo\n" \
"I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng\n" \
"o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G\n" \
"A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD\n" \
"VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB\n" \
"zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW\n" \
"RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=\n" \
"-----END CERTIFICATE-----\n";
void SendData::pushAPIData(String json) {
HTTPClient https;
Serial.println(API_URL);
Serial.println(json);
https.setConnectTimeout(10000); // 3 second max timeout
https.begin(API_URL, test_root_ca);
https.addHeader("Accept", "application/vnd.github+json");
https.addHeader("Content-Type", "application/json");
https.addHeader("Authorization", "token " + String(API_TOKEN));
int httpsResponseCode = https.POST(json);
if (httpsResponseCode != 200) {
Serial.println("- not send to Github");
Serial.println(httpsResponseCode);
String response = https.getString();
Serial.println(response);
Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpsResponseCode).c_str());
} else {
Serial.println("- success send to Github");
Serial.println(httpsResponseCode);
String response = https.getString();
Serial.println(response);
}
https.end();
}
String day_api = (currentTime.Day < 10) ? ("0" + String(currentTime.Day)) : String(currentTime.Day);
String month_api = (currentTime.Month < 10) ? ("0" + String(currentTime.Month)) : String(currentTime.Month);
String date_api = day_api + "-" + month_api + "-" + String(currentTime.Year + 1970);
String hour_api = (currentTime.Hour < 10) ? ("0" + String(currentTime.Hour)) : String(currentTime.Hour);
String json_steps = "{\"event_type\":\"" + String(ENDPOINT_API) + "\",\"client_payload\":{\"data-name\":\"" + String(ENDPOINT_STEPS) + "\",\"date\":\"" + date_api + "\",\"hour\":\"" + hour_api + "\",\"data\":\"" + String(sensor.getCounter()) + "\"}}";
SendData::pushAPIData(json_steps);
Debug Message
https://api.github.com/repos/mickahell/robots-data/dispatches
{"event_type":"watchy-data","client_payload":{"data-name":"steps","date":"06-05-2024","hour":"16","data":"0"}}
[ 99][D][HTTPClient.cpp:303] beginInternal(): protocol: https, host: api.github.com port: 443 url: /repos/mickahell/robots-data/dispatches
[ 117][D][HTTPClient.cpp:598] sendRequest(): request type: 'POST' redirCount: 0
[ 124][E][WiFiGeneric.cpp:1583] hostByName(): DNS Failed for api.github.com
[ 131][D][HTTPClient.cpp:1163] connect(): failed connect to api.github.com:443
[ 139][W][HTTPClient.cpp:1483] returnError(): error(-1): connection refused
- not send to Github
-1
[ 146][W][HTTPClient.cpp:1483] returnError(): error(-4): not connected
[HTTPS] GET... failed, error: connection refused
[ 154][D][HTTPClient.cpp:408] disconnect(): tcp is closed
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
Status: Awaiting triageIssue is waiting for triageIssue is waiting for triage