added time x day chart

This commit is contained in:
Ben Varick 2023-11-21 11:07:47 -06:00
parent 7d537bb4f1
commit 0e49a2686e
Signed by: ben
SSH Key Fingerprint: SHA256:jWnpFDAcacYM5aPFpYRqlsamlDyKNpSj3jj+k4ojtUo
2 changed files with 26 additions and 3 deletions

View File

@ -70,12 +70,13 @@ update_data <- function(){
dryer_last_on <- values %>% filter(entity_id == entities$entity_id[2], value > power_threshhold) %>% tail(1) %>% pull(end_time) dryer_last_on <- values %>% filter(entity_id == entities$entity_id[2], value > power_threshhold) %>% tail(1) %>% pull(end_time)
dryer_last_off <- values %>% filter(entity_id == entities$entity_id[2], value < power_threshhold) %>% tail(1) %>% pull(end_time) dryer_last_off <- values %>% filter(entity_id == entities$entity_id[2], value < power_threshhold) %>% tail(1) %>% pull(end_time)
# ---- generate html
current_status <- as.list(NULL) current_status <- as.list(NULL)
for (entity in entities$entity_id){ for (entity in entities$entity_id){
current_status[[entity]] <- ifelse(values %>% filter(entity_id %in% entity) %>% tail(1) %>% pull(value) > power_threshhold, "on", "off") current_status[[entity]] <- ifelse(values %>% filter(entity_id %in% entity) %>% tail(1) %>% pull(value) > power_threshhold, "on", "off")
} }
# ---- make plots
plot_1day <- ggplot(data = values %>% filter(time >= max(values$end_time) - hours(24))) + plot_1day <- ggplot(data = values %>% filter(time >= max(values$end_time) - hours(24))) +
geom_tile(aes(x = time + seconds(round(as.numeric(difftime(end_time, time, unit = "secs")))/2), geom_tile(aes(x = time + seconds(round(as.numeric(difftime(end_time, time, unit = "secs")))/2),
y = entity_id, y = entity_id,
@ -103,8 +104,27 @@ update_data <- function(){
x = NULL, x = NULL,
y = NULL, y = NULL,
fill = NULL) fill = NULL)
plot_1week_days <- ggplot(data = values %>%
filter(as.Date(time, tz = "America/Chicago") == as.Date(end_time, tz = "America/Chicago")) %>%
mutate(date = as.Date(time, tz = "America/Chicago")) %>%
left_join(. , entities, by = join_by(entity_id)) %>%
mutate(name = factor(name, levels = c("washing machine", "dryer")))) +
geom_rect(aes(xmin = date - hours(8),
xmax = date + hours(8),
ymin = ymd_hms(paste("2023-01-01", strftime(time, format = "%H:%M:%S"))),
ymax = ymd_hms(paste("2023-01-01", strftime(end_time, format = "%H:%M:%S"))),
fill = status)) +
facet_grid(name ~ .) +
scale_y_datetime(date_breaks = "4 hours", date_labels = '%I:%M %p', minor_breaks = "2 hours", expand = expansion(mult = 0)) +
scale_x_datetime(date_breaks = "1 day", date_labels = '%A', minor_breaks = NULL) +
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
labs(title = "The past week",
x = "Day",
y = "Time of Day",
fill = NULL)
# ---- generate html
render("laundry_status.Rmd", render("laundry_status.Rmd",
output_dir = "html", output_dir = "html",
output_file = "index.html") output_file = "index.html")

View File

@ -39,4 +39,7 @@ plot(plot_1day)
plot(plot_1week) plot(plot_1week)
``` ```
If you have any issues or questions, please email `admin@dendroalsia.net` ```{r plot_1week_days, echo=FALSE}
plot(plot_1week_days)
```
If you have any issues or questions, please email `ben@dendroalsia.net`