#' @title Generación automática de horarios ON/OFF del alumbrado exterior y parking en base al orto y el ocaso
#'
#' @description Generación automática de horarios ON/OFF del alumbrado exterior y parking en base al orto y el ocaso
#'
#' @param campo
#'
#' @return json
#'
#' @examples generacion_automatica_horarios_alumbrado(campo=0)
#'
#' @import httr
#' jsonlite
#' rjson
#' RCurl
#' dplyr
#' lubridate
#' timeDate
#'
#' @export
generacion_automatica_horarios_alumbrado <- function(campo=0){
# ==============================================================================
# PETICIÓN TOKEN THB
# ==============================================================================
cuerpo <- '{"username":"kepa@techfriendly.es","password":"kepa_tech"}'
post <- httr::POST(url = "http://116.202.100.157:8080/api/auth/login",
add_headers("Content-Type"="application/json","Accept"="application/json"),
body = cuerpo,
encode = "json",verbose()
)
resultado_peticion_token <- httr::content(post)
auth_thb <- paste("Bearer",resultado_peticion_token$token)
# ==============================================================================
# LLAMADA API EL TIEMPO
# ==============================================================================
# Llamada api
url <- "https://www.el-tiempo.net/api/json/v2/provincias/26/municipios/26089"
get_tiempo <- httr::GET(url = url, add_headers("Content-Type"="application/json","Accept"="application/json"))
tiempo <- jsonlite::fromJSON(rawToChar(get_tiempo$content))
# ==============================================================================
# GENERACIÓN ORTO Y OCASO
# ==============================================================================
fecha_ref <- Sys.time()
day(fecha_ref) <- day(fecha_ref)+1
# Orto
hora_orto <- tiempo[["pronostico"]][["manana"]][["@attributes"]]$orto
# Eliminación de ceros a la izquierda
hora_orto_1 <- as.numeric(gsub("[:].*","",hora_orto))
hora_orto_2 <- as.numeric(gsub(".*[:]","",hora_orto))
fecha_ref <- Sys.time()
day(fecha_ref) <- day(fecha_ref)+1
hour(fecha_ref) <- hora_orto_1
minute(fecha_ref) <- hora_orto_2
minute(fecha_ref) <- minute(fecha_ref)+10 # Margen de 10 minuros para apagar
minutos <- ifelse(nchar(minute(fecha_ref)) == 1, paste("0",as.character(minute(fecha_ref)),sep = ""), minute(fecha_ref))
hora_orto <- paste(as.character(hour(fecha_ref)),":",as.character(minutos), sep = "")
# Ocaso
hora_ocaso <- tiempo[["pronostico"]][["manana"]][["@attributes"]]$ocaso
# Eliminación de ceros a la izquierda
hora_ocaso_1 <- as.numeric(gsub("[:].*","",hora_ocaso))
hora_ocaso_2 <- as.numeric(gsub(".*[:]","",hora_ocaso))
hora_ocaso <- paste(as.character(hora_ocaso_1),":",as.character(hora_ocaso_2), sep = "")
fecha_ref <- Sys.time()
day(fecha_ref) <- day(fecha_ref)+1
hour(fecha_ref) <- hora_ocaso_1
minute(fecha_ref) <- hora_ocaso_2
minute(fecha_ref) <- minute(fecha_ref)-10 # Margen de 10 minuros para apagar
minutos <- ifelse(nchar(minute(fecha_ref)) == 1, paste("0",as.character(minute(fecha_ref)),sep = ""), minute(fecha_ref))
hora_ocaso <- paste(as.character(hour(fecha_ref)),":",as.character(minutos), sep = "")
# ==============================================================================
# ACTUALIZACIÓN ATRIBUTOS
# ==============================================================================
id_dispositivo <- "3202bd70-418c-11ec-b26c-5339f6f4e88b" # Dispositivo horarios. Contienen los horarios de los equipos de las zonas comunes
for(i in 1:length(id_dispositivo)){
# GET token del dispositivo
url <- paste("http://116.202.100.157:8080/api/device/",id_dispositivo[i],"/credentials",sep = "")
get_token <- httr::GET(url = url, add_headers("Content-Type"="application/json","Accept"="application/json","X-Authorization"=auth_thb))
token <- jsonlite::fromJSON(rawToChar(get_token$content))
token <- token$credentialsId
url <- paste("http://116.202.100.157:8080/api/v1/",token,"/attributes",sep = "")
# 1) Creacion atributos horarios ALUMBRADOS
json_envio_plataforma <- paste('{"Horario alumbrado exterior OFF":"', hora_orto,'",',
'"Horario alumbrado parking OFF":"', hora_orto,'",',
'"Horario alumbrado exterior ON":"', hora_ocaso,'",',
'"Horario alumbrado parking ON":"', hora_ocaso,
'"}',sep = "")
post <- httr::POST(url = url,
add_headers("Content-Type"="application/json","Accept"="application/json","X-Authorization"=auth_thb),
body = json_envio_plataforma,
verify= FALSE,
encode = "json",verbose()
)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.