Giter VIP home page Giter VIP logo

Comments (14)

franki29 avatar franki29 commented on May 30, 2024 1

Hi, I found some interesting side here:
https://www.brunweb.de/wetterstation-berechnungen/

Regards
Frank

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024 1

Added perceptive_temperature() in BresserWeatherSensorReceiver/src/WeatherUtils.h and BresserWeatherSensorReceiver/src/WeatherUtils.cpp. (1f1f97a)

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024

Sure it is possible from a technical point of view. I am confident that someone has done this before. Did you search for a possible implementation (maybe on Github) which can be adopted?
At first glance, there are two possible approaches - a rather time consuming floating point calculation (which should not be done on each and every data frame) or a table look-up (maybe with linear interpolation).
Besides, it is a little bit out-of-scope with respect to this library. It seems rather to be application specific.
Regards
Matthias

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024

https://de.m.wikipedia.org/wiki/Windchill

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024

Hi,

I have added BresserWeatherSensorReceiver/src/WeatherUtils.h and BresserWeatherSensorReceiver/src/WeatherUtils.cpp.
You can try it by copying both files in the same directory as you *.ino file and adding #include "WeatherUtils.h"to your sketch.

Best regards
Matthias

from bresserweathersensorreceiver.

franki29 avatar franki29 commented on May 30, 2024

Hi, I tried to implement, but I get result 0.0:

sprintf(&domo_payload[strlen(domo_payload)], ";%.1f", calcwindchill);

What did I made wrong?

from bresserweathersensorreceiver.

franki29 avatar franki29 commented on May 30, 2024

Or is it because there i no wind currently?
Than windchill should be set to actual temperature, what do you think?

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024

You have to pass parameters in the function call: calcwindchill(weatherSensor.temp_c, weatherSensor.wind_avg_meter_sec)

And: The windchill formula is only valid if temperature <= 10°C and windspeed >4.8 km/h!

Maybe you should try calheatindex() today if you live in Germany or anywhere else in Central Europe! ;-)

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024

Or is it because there i no wind currently? Than windchill should be set to actual temperature, what do you think?

Yes, if the conditions are not met, the actual temperature should be returned. I will add this later.

from bresserweathersensorreceiver.

franki29 avatar franki29 commented on May 30, 2024

Ah, I am learning.
I add now:
if (weatherSensor.temp_c >=11) {
sprintf(&domo_payload[strlen(domo_payload)], ";%.1f", calcheatindex(weatherSensor.temp_c,weatherSensor.humidity));
}
if (weatherSensor.temp_c <=10) {
sprintf(&domo_payload[strlen(domo_payload)], ";%.1f", calcwindchill(weatherSensor.temp_c, weatherSensor.wind_avg_meter_sec));
}
And get now a heatindex that seems to be OK

from bresserweathersensorreceiver.

franki29 avatar franki29 commented on May 30, 2024

grafik

from bresserweathersensorreceiver.

franki29 avatar franki29 commented on May 30, 2024

grafik

from bresserweathersensorreceiver.

matthias-bs avatar matthias-bs commented on May 30, 2024

Almost correct! ;-)

Windchill: Results are valid for temperatures <= 10°C and windspeeds >4.8 km/h only!
Heat index: Results are valid for temperatures >= 16,7°C and humidity >40% only!

This can be combined as "Gefühlte Temperatur" or "Feels like xx°C"

from bresserweathersensorreceiver.

franki29 avatar franki29 commented on May 30, 2024

Hmmm,
maybe this will work?

if ((weatherSensor.temp_c >=16.7) && (weatherSensor.humidity > 40)) {
sprintf(&domo_payload[strlen(domo_payload)], ";%.1f", calcheatindex(weatherSensor.temp_c,weatherSensor.humidity));
}
else if ((weatherSensor.temp_c <=10) && ( weatherSensor.wind_avg_meter_sec *3.6 > 4.8)) {
sprintf(&domo_payload[strlen(domo_payload)], ";%.1f", calcwindchill(weatherSensor.temp_c, weatherSensor.wind_avg_meter_sec));
}
else {
sprintf(&domo_payload[strlen(domo_payload)], ";%.1f", weatherSensor.temp_c);
}

from bresserweathersensorreceiver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.