Interfaçage BOX SFR nb6
Publié : 10 févr. 2020, 23:11
Bonjour,
Afin de suivre la qualité de ma connexion ADSL, je souhaite récupérer les valeurs de ma box SFR nb6 dans Domoticz.
La requête à effectuer est la suivante :
La réponse de ma box est la suivante :
Les valeurs à récupérer sont les suivantes :
- rate_down => Débit descendant
- rate_up => Débit montant
- attenuation_down => Atténuation flux descendant
- attenuation_up => Atténuation flux montant
- noise_down => Marge de bruit flux descendant
- noise_up => Marge de bruit flux montant
- crc => Nombre d’erreur CRC
- Counter => Nombre de connexion ADSL effectué
Quelqu'un pourrait-il m'aider à concevoir un script pour récupérer ces valeurs ?
L'idéal serait d'avoir un script événements style dzvents comme il est possible de faire avec une réponse au format Json.
Un exemple de script :
Merci à tous pour votre aide
Afin de suivre la qualité de ma connexion ADSL, je souhaite récupérer les valeurs de ma box SFR nb6 dans Domoticz.
La requête à effectuer est la suivante :
Code : Tout sélectionner
http://192.168.1.1/api/1.0/?method=dsl.getInfoCode : Tout sélectionner
<rsp stat="ok" version="1.0">
<dsl status="up" linemode="ADSL2+" uptime="21844" counter="2" crc="0" noise_down="30.6" noise_up="28.0" attenuation_down="22.0" attenuation_up="11.6" rate_down="2428" rate_up="509" line_status="No Defect" training="Showtime"/>
</rsp>- rate_down => Débit descendant
- rate_up => Débit montant
- attenuation_down => Atténuation flux descendant
- attenuation_up => Atténuation flux montant
- noise_down => Marge de bruit flux descendant
- noise_up => Marge de bruit flux montant
- crc => Nombre d’erreur CRC
- Counter => Nombre de connexion ADSL effectué
Quelqu'un pourrait-il m'aider à concevoir un script pour récupérer ces valeurs ?
L'idéal serait d'avoir un script événements style dzvents comme il est possible de faire avec une réponse au format Json.
Un exemple de script :
Code : Tout sélectionner
local idxCloudCover = 112 -- (Integer) Device ID of device holding cloudcoverage
local idxBarometer = 113 -- (Integer) Device ID of device barometric presusure
local idxPrecipIntensity = 131 -- (Integer) Device ID of device barometric presusure
local ApiKey = '79947d33c8097e153533ce959hsjeldi' -- (string) API key for Darksky
local GPSCoordinates = '47.454062,8.846521' -- (string) City GPS coordinates (lat, long)
local Debug = true
return {
on = {
timer = { 'every 4 minutes' },
httpResponses = { 'result' }
},
execute = function(domoticz, item)
if (item.isTimer) then
domoticz.openURL({
--url = "https://api.openweathermap.org/data/2.5/weather?id=".. CityID .."&appid=" .. ApiKey,
url = "https://api.darksky.net/forecast/" .. ApiKey .. "/" .. GPSCoordinates,
method = 'GET',
callback = 'result'
})
elseif (item.isJSON) then
if (item.ok) then -- statusCode == 2xx
-- Read Pressure
--local pressure = item.json.main.pressure
local pressure = item.json.currently.pressure
domoticz.devices(idxBarometer).updateBarometer(domoticz.utils.round(pressure,0))
-- Read Clouds
--local CloudCover = item.json.clouds.all
local CloudCover = item.json.currently.cloudCover
CloudCover = CloudCover * 100
domoticz.devices(idxCloudCover).updatePercentage(domoticz.utils.round(CloudCover,0))
-- Read precipIntensity
local PrecipIntensity = item.json.currently.precipIntensity
PrecipIntensity = PrecipIntensity*100
domoticz.devices(idxPrecipIntensity).updateRain(domoticz.utils.round(PrecipIntensity,0))
--Debug
if (Debug == true) then
domoticz.log("pressure=" .. pressure .. "hPa")
domoticz.log("CloudCover=" .. CloudCover .. "%")
domoticz.log("precipIntensity=" .. PrecipIntensity .. "mm/h * 100")
end
end
end
end
}