Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sendtohttp] Add Open-Meteo events + JSON event #5207

Open
wants to merge 33 commits into
base: mega
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
514a140
Update Networking.cpp
chromoxdor Jan 2, 2025
a553671
a tiny bit better formatting
chromoxdor Jan 2, 2025
86812a1
changes for OPENMETEO_EVENT and THINGSPEAK_EVENT
chromoxdor Jan 2, 2025
3bc16d8
Update Networking.cpp
chromoxdor Jan 2, 2025
aaa938e
combining two functions
chromoxdor Jan 2, 2025
94ec6b0
wrong use of concat times two :)
chromoxdor Jan 2, 2025
7325ed8
update
chromoxdor Jan 3, 2025
2bc5810
Update Networking.cpp
chromoxdor Jan 3, 2025
0f5b5f2
put thingspeak and openmeteo events into extra file
chromoxdor Jan 3, 2025
fc6ccaa
added inverter event
chromoxdor Jan 3, 2025
0ca2d75
fix for not building on minimal_core_274_esp8266...
chromoxdor Jan 3, 2025
daafc7d
#ifdef to #if. m(
chromoxdor Jan 3, 2025
56e2acf
more universal json event approach
chromoxdor Jan 4, 2025
171cbeb
Update HTTPResponseParser.h
chromoxdor Jan 4, 2025
6d2215b
added variable decimals for floating point numbers
chromoxdor Jan 4, 2025
fe8786f
some changes to the json-event
chromoxdor Jan 4, 2025
1500f3b
made the eventQueue even more complex :P
chromoxdor Jan 4, 2025
0bf7b66
minor changes
chromoxdor Jan 4, 2025
c7a23c2
moved variable to cpp file
chromoxdor Jan 4, 2025
2b571a4
updates
chromoxdor Jan 6, 2025
6083741
Update HTTPResponseParser.cpp
chromoxdor Jan 6, 2025
89a029f
Update define_plugin_sets.h
chromoxdor Jan 6, 2025
57569ca
Update HTTPResponseParser.cpp
chromoxdor Jan 6, 2025
bd6523a
Update HTTPResponseParser.cpp
chromoxdor Jan 6, 2025
229037b
Merge branch 'letscontrolit:mega' into openmeteo-events
chromoxdor Jan 15, 2025
768d4c2
documentation and slight reduction of code
chromoxdor Jan 15, 2025
68dba8c
Update define_plugin_sets.h
chromoxdor Jan 15, 2025
72b49bb
corrected json examples
chromoxdor Jan 15, 2025
390974f
Docs: Formatting and linking
chromoxdor Jan 16, 2025
35ed195
Merge branch 'mega' into openmeteo-events
chromoxdor Jan 21, 2025
40f83cc
fixed typo
chromoxdor Jan 21, 2025
97aab88
Merge branch 'openmeteo-events' of https://github.com/chromoxdor/ESPE…
chromoxdor Jan 21, 2025
b751e27
Merge branch 'mega' into openmeteo-events
chromoxdor Jan 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 6 additions & 19 deletions src/src/Helpers/Networking.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1685,11 +1685,11 @@ int http_authenticate(const String& logIdentifier,

# if FEATURE_OMETEO_EVENT
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved

// Generate an event with the response of an open-meteo request (https://open-meteo.com/en/docs)
// Generate an event with the response of an open-meteo request.
// Example command:
// sendtohttp,api.open-meteo.com,80,/v1/forecast?latitude=52.52&longitude=13.41&current=temperature_2m,weather_code,wind_speed_10m&daily=temperature_2m_max,temperature_2m_min&forecast_days=1
// sendtohttp,api.open-meteo.com,80,"/v1/forecast?latitude=52.52&longitude=13.41&current=temperature_2m,weather_code,wind_speed_10m&daily=temperature_2m_max,temperature_2m_min&forecast_days=1"
// No need for an api key and it is free (daily requests are limited to 10,000 in the free version)
// Visit the URL and build your personal URL by selecting the location and values you want to receive.
// Visit the URL (https://open-meteo.com/en/docs) and build your personal URL by selecting the location and values you want to receive.
// Supported variable kinds are current, hourly, daily!
// In rules you can grep the reply by the kind of weather variables with "On Openmeteo#<type> Do ..."
// e.g. "On Openmeteo#current Do ..."
Expand All @@ -1707,8 +1707,6 @@ int http_authenticate(const String& logIdentifier,
String str = http.getString();
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved

// Process URL to get unique keys


auto getCombinedParams = [](String url, String paramName) {
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved
int start = url.indexOf(paramName + "=");
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved

Expand All @@ -1718,7 +1716,7 @@ int http_authenticate(const String& logIdentifier,
return (end == -1) ? url.substring(start) : url.substring(start, end);
};

// Extract current and daily parameters
// Extract current hourly and daily parameters
String currentParams = getCombinedParams(uri, "current");
String hourlyParams = getCombinedParams(uri, "hourly");
String dailyParams = getCombinedParams(uri, "daily");
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved
Expand All @@ -1734,18 +1732,13 @@ int http_authenticate(const String& logIdentifier,
// Split and add keys to the array
while (commaIndex != -1) {
String key = params.substring(startIndex, commaIndex);


keys[keyCount++] = key;
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved

startIndex = commaIndex + 1;
commaIndex = params.indexOf(',', startIndex);
startIndex = commaIndex + 1;
commaIndex = params.indexOf(',', startIndex);
}

// Add the last key
String lastKey = params.substring(startIndex);
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved


keys[keyCount++] = lastKey;
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved

String csv = "";
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved
Expand Down Expand Up @@ -1803,14 +1796,8 @@ int http_authenticate(const String& logIdentifier,
}
};


// Process currentParams
processAndQueueParams(currentParams, str, "current");

// Process hourlyParams
processAndQueueParams(hourlyParams, str, "hourly");

// Process dailyParams
processAndQueueParams(dailyParams, str, "daily");
chromoxdor marked this conversation as resolved.
Show resolved Hide resolved
}
}
Expand Down