Se bem entendi, para quem se queira meter em "invenções" deveria no entanto ser possível melhorar a resolução para 0,5% (valores até 200). Era caso para pôr depois o WeeWX a fazer a divisão por 2...
EDITADO: Em relação ao infra, finalmente, deve explicar-se pelo facto de estar a usar o record_generation em modo "software". Neste caso, o WeeWX fará algo com uma média dos loops. Olhando os períodos em que o tive em modo hardware (e o valor era recuperado do arquivo) os valores nesse caso são sempre números inteiros.
Olhando a base de dados com mais atenção há uma coisa que eu não entendo (embora isto seja uma pergunta melhor posta no Weews UserGroup): se o WeatherDuino manda valores inteiros e o WeeWX espera valores inteiros porque é que na base de dados surgem por vezes resoluções mais detalhadas (tanto na temp. externa como interna). Por exemplo:
"83.6302521008403"
"81.775"
"81.3898305084746"
"81.0"
"81.0"
À partida poderia ter que ver com o processo de conversão entre unidades de medida, mas o valor da humidade não deveria precisar disso. % é %.
Bom. Parece que o driver trata o valor da humidade como floating point quando talvez o devesse tratar as it is como integer.
def _little_val(v):
return float(v) if v != 0x00ff else None
Seja como for não se entende bem a aparente arbitrariedade do resultado que acaba na base de dados.
EDITADO: Em relação ao infra, finalmente, deve explicar-se pelo facto de estar a usar o record_generation em modo "software". Neste caso, o WeeWX fará algo com uma média dos loops. Olhando os períodos em que o tive em modo hardware (e o valor era recuperado do arquivo) os valores nesse caso são sempre números inteiros.
Olhando a base de dados com mais atenção há uma coisa que eu não entendo (embora isto seja uma pergunta melhor posta no Weews UserGroup): se o WeatherDuino manda valores inteiros e o WeeWX espera valores inteiros porque é que na base de dados surgem por vezes resoluções mais detalhadas (tanto na temp. externa como interna). Por exemplo:
"83.6302521008403"
"81.775"
"81.3898305084746"
"81.0"
"81.0"
À partida poderia ter que ver com o processo de conversão entre unidades de medida, mas o valor da humidade não deveria precisar disso. % é %.
Bom. Parece que o driver trata o valor da humidade como floating point quando talvez o devesse tratar as it is como integer.
def _little_val(v):
return float(v) if v != 0x00ff else None
Seja como for não se entende bem a aparente arbitrariedade do resultado que acaba na base de dados.

