Interfaçage BOX SFR nb6

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
neuvidor
Messages : 23
Inscription : 12 mars 2015, 14:21
Localisation : LOUGRES 25260

Interfaçage BOX SFR nb6

Message par neuvidor »

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 :

Code : Tout sélectionner

http://192.168.1.1/api/1.0/?method=dsl.getInfo
La réponse de ma box est la suivante :

Code : 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>
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 :

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
}
Merci à tous pour votre aide
Architecture : VM Proxmox
Software : Home Assistant OS stable
Hardware : RFXCOM / Conbee II / IPX800v4 + X-Dimmer + X8R / Doorbird / ECO Compteur / Schelly
Cywin
Messages : 8
Inscription : 21 févr. 2019, 06:22

Re: Interfaçage BOX SFR nb6

Message par Cywin »

Bonjour,

Avez vous réussi à avancer sur ce sujet et à adapter le script?

Il m'interesse aussi... Quand je répète la requête sur mon navigateur, par contre je vois que la connectio nest "down". Pourtant ce n'est pas le cas... Donc, peut on répéter ce genre de requête? Ou c'est lié au navigateur?
Répondre