Aller au contenu
Goldfinger

HC2 and ESPHome

Recommended Posts

Bonjour à tous,

 

j'ai besoin d'aide sur un sujet pour lequel je ne trouve pas de solution.  J'aurais voulu lire les valeurs de capteurs connecté à un ESP12 et ceci sous ESPHOME.  L'avantage est la facilité de configuration via HA et la qualité de la bibliothèque de capteurs disponibles.

 

J'ai dont réalisé une scène

 

 

--[[
%% properties
%% events
%% globals
--]]

-- Création de la requête HTTP
local request = net.HTTPClient()

-- Configuration de la requête
request:request('http://192.168.1.215/sensor/temperature', {
    options = {
        method = 'GET',
        timeout = 10
    },
    success = function(response)
        -- Traitement de la réponse en cas de succès
        local data = json.decode(response.data)
        local temperature = data.temperature
        fibaro:debug("Température actuelle: " .. temperature .. "°C")
    end,
    error = function(error)
        -- Traitement de l'erreur en cas d'échec
        fibaro:debug("Erreur lors de la requête HTTP: " .. error)
    end
})

 

et immanquablement, la réponse du debug est :

 

"Erreur lors de la requête HTTP : operation canceled"

 

Lorsque je lance la requête à partir de Chrome à savoir http://192.168.1.215/sensor/temperature, je reçois bien en retour le message me donnant la valeur de la température.

 

En terme de réseau, j'ai un réseau câblé sur lequel est connecté la HC2 et l'ESP est connecté en wifi, le tout géré avec un UDM pro.

 

Merci pour votre aide 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Petite précision, quand je rentre la requête dans Chrome http://192.168.1.215/sensor/temperature, voici la réponse : {"id":"sensor-temperature","value":15.6,"state":"15.6 °C"}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

la HC2 c'est loooooin ...

 

Mais ce que je crois voir de ton code : il s'agit d'une scène (et pas d'un VD) ?

Je me demande si les 

request:request('http ...

ne sont pas uniquement pour les VD (et donc pas les scènes) = essaye ton code dans un VD pour voir ce qu'il retourne.

 

La réponse est sous forme de JSON. Il faudra donc faire un decode, nmais je ne connais plus l'instruction précise.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

ça ne fonctionne pas dans un VD ... je continue mes investigations ...

 

merci pour votre aide, si vous avez encore une idée ... elle est la bienvenue ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ton code (scène) parait correct sauf qu'il me semble que le timeout est en millisecondes donc tu devrais essayer  timeout = 10*1000

Si cela ne fonctionne toujours pas : j'espère qu'il n'y a pas confusion entre

local request = net.HTTPClient()

et 
request:request('http://192.168.1.215/sensor/temperature', { .....

Dans le doute

local HTTP = net.HTTPClient()

HTTP:request

 

Sinon comme cela fonctionne avec Chrome, cela devrait fonctionner avec ton code sur HC2 ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour henri-allauch,

 

merci pour ta proposition que je viens de tester :

 

 

local HTTP = net.HTTPClient()


-- Configuration de la requête
HTTP:request('http://192.168.1.215/sensor/temperature', {
    options = {
        method = 'GET',
        timeout = 10*1000
    },
    success = function(response)
        -- Traitement de la réponse en cas de succès
        local data = json.decode(response.data)
        local temperature = data.temperature
        fibaro:debug("Température actuelle: " .. temperature .. "°C")
    end,
    error = function(error)
        -- Traitement de l'erreur en cas d'échec
        fibaro:debug("Erreur lors de la requête HTTP: " .. error)
    end
})

 

et encore la réponse

[DEBUG] 22:19:05: Erreur lors de la requête HTTP: Operation canceled

 

j'en perds mon latin ...

Partager ce message


Lien à poster
Partager sur d’autres sites

×