made script loop every 5 minutes

This commit is contained in:
Ben Varick 2023-11-06 17:27:49 -06:00
parent 3c19a0fde9
commit e6c35e7f04
Signed by: ben
SSH Key Fingerprint: SHA256:jWnpFDAcacYM5aPFpYRqlsamlDyKNpSj3jj+k4ojtUo

View File

@ -14,6 +14,10 @@ home_assistant <- InfluxDBClient$new(url = "https://influxdb.dendroalsia.net",
token = token, token = token,
org = org) org = org)
# ---- set variables
entities <- data.frame(name = c("washing machine", "dryer"), entity_id = c("lamp_a_power", "lamp_b_power"))
update_data <- function(){
values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -7d) |> filter(fn: (r) => r["entity_id"] == "lamp_b_power" or r["entity_id"] == "lamp_a_power") |> filter(fn: (r) => r["_field"] == "value") |> filter(fn: (r) => r["_measurement"] == "W")') values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -7d) |> filter(fn: (r) => r["entity_id"] == "lamp_b_power" or r["entity_id"] == "lamp_a_power") |> filter(fn: (r) => r["_field"] == "value") |> filter(fn: (r) => r["_measurement"] == "W")')
values <- bind_rows(values) values <- bind_rows(values)
@ -23,8 +27,6 @@ values <- values %>%
mutate(status = ifelse(value > 1, "on", "off"), mutate(status = ifelse(value > 1, "on", "off"),
end_time = c(values$time + minutes(1))) end_time = c(values$time + minutes(1)))
# ---- set variables
entities <- data.frame(name = c("washing machine", "dryer"), entity_id = c("lamp_a_power", "lamp_b_power"))
# ---- generate html # ---- generate html
current_status <- as.list(NULL) current_status <- as.list(NULL)
@ -55,3 +57,10 @@ plot_1day <- ggplot(data = values %>% filter(time >= max(values$time) - hours(24
labs(title = "Last 24 hours") labs(title = "Last 24 hours")
render("laundry_status.Rmd") render("laundry_status.Rmd")
}
for(i in 1:8640){
update_data()
Sys.sleep(60*5)
}