made script loop every 5 minutes
This commit is contained in:
parent
3c19a0fde9
commit
e6c35e7f04
@ -14,25 +14,27 @@ home_assistant <- InfluxDBClient$new(url = "https://influxdb.dendroalsia.net",
|
|||||||
token = token,
|
token = token,
|
||||||
org = org)
|
org = org)
|
||||||
|
|
||||||
|
|
||||||
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 <- values %>%
|
|
||||||
rename(value = "_value")
|
|
||||||
values <- values %>%
|
|
||||||
mutate(status = ifelse(value > 1, "on", "off"),
|
|
||||||
end_time = c(values$time + minutes(1)))
|
|
||||||
|
|
||||||
# ---- set variables
|
# ---- set variables
|
||||||
entities <- data.frame(name = c("washing machine", "dryer"), entity_id = c("lamp_a_power", "lamp_b_power"))
|
entities <- data.frame(name = c("washing machine", "dryer"), entity_id = c("lamp_a_power", "lamp_b_power"))
|
||||||
|
|
||||||
# ---- generate html
|
update_data <- function(){
|
||||||
current_status <- as.list(NULL)
|
|
||||||
for (entity in entities$entity_id){
|
|
||||||
current_status[[entity]] <- ifelse(values %>% filter(entity_id %in% entity) %>% tail(1) %>% pull(value) > 5, "on", "off")
|
|
||||||
}
|
|
||||||
|
|
||||||
plot_1week <- ggplot(data = values) +
|
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 <- values %>%
|
||||||
|
rename(value = "_value")
|
||||||
|
values <- values %>%
|
||||||
|
mutate(status = ifelse(value > 1, "on", "off"),
|
||||||
|
end_time = c(values$time + minutes(1)))
|
||||||
|
|
||||||
|
|
||||||
|
# ---- generate html
|
||||||
|
current_status <- as.list(NULL)
|
||||||
|
for (entity in entities$entity_id){
|
||||||
|
current_status[[entity]] <- ifelse(values %>% filter(entity_id %in% entity) %>% tail(1) %>% pull(value) > 5, "on", "off")
|
||||||
|
}
|
||||||
|
|
||||||
|
plot_1week <- ggplot(data = values) +
|
||||||
geom_rect(aes(xmin = end_time,
|
geom_rect(aes(xmin = end_time,
|
||||||
xmax = time,
|
xmax = time,
|
||||||
ymin = ifelse(entity_id == "lamp_a_power", 0, 2) + 0.5,
|
ymin = ifelse(entity_id == "lamp_a_power", 0, 2) + 0.5,
|
||||||
@ -43,7 +45,7 @@ plot_1week <- ggplot(data = values) +
|
|||||||
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
|
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
|
||||||
labs(title = "Last week")
|
labs(title = "Last week")
|
||||||
|
|
||||||
plot_1day <- ggplot(data = values %>% filter(time >= max(values$time) - hours(24))) +
|
plot_1day <- ggplot(data = values %>% filter(time >= max(values$time) - hours(24))) +
|
||||||
geom_rect(aes(xmin = end_time,
|
geom_rect(aes(xmin = end_time,
|
||||||
xmax = time,
|
xmax = time,
|
||||||
ymin = ifelse(entity_id == "lamp_a_power", 0, 2) + 0.5,
|
ymin = ifelse(entity_id == "lamp_a_power", 0, 2) + 0.5,
|
||||||
@ -54,4 +56,11 @@ plot_1day <- ggplot(data = values %>% filter(time >= max(values$time) - hours(24
|
|||||||
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
|
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
|
||||||
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)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user