removed .Rhistory
This commit is contained in:
parent
b525de95d3
commit
1fbe61128e
512
.Rhistory
512
.Rhistory
@ -1,512 +0,0 @@
|
|||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_air_monitor_temperature,
|
|
||||||
y = living_room_temperature,
|
|
||||||
color = entity_id)) +
|
|
||||||
# calcs voltage loss per hour
|
|
||||||
lm_calc$coefficients[2] * 60 * 60
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value)
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_air_monitor_temperature,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
# calcs voltage loss per hour
|
|
||||||
lm_calc$coefficients[2] * 60 * 60
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_air_monitor_temperature,
|
|
||||||
y = living_room_temperature))
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature + 2.6) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature + 2.6) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature + 2.6) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
+ 2.6
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature + 2.6) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
sensors <- c("living_room_humidity", "air_monitor_humidity")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_humidity -13) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_humidity)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_humidity),
|
|
||||||
method = "lm")
|
|
||||||
sensors <- c("living_room_humidity", "air_monitor_humidity")
|
|
||||||
sensors <- c("living_room_humidity", "glencoe_air_monitor_humidity")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = mean(value)) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_humidity -13) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_humidity)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_humidity),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
time_start <- ymd_hms("2023_07_14-12:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
lm_calc <- lm(value ~ time, data = values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = glencoe_air_monitor_temperature) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = air_monitor_temperature) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value)
|
|
||||||
sensors <- c("living_room_temperature", "air_monitor_temperature", "glencoe_air_monitor_temperature")
|
|
||||||
values['time_rounded'] <- round_date(ymd_hms(values$`_time`), unit = "minute")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-12:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
lm_calc <- lm(value ~ time, data = values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = air_monitor_temperature) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
lm_calc <- lm(value ~ time, data = values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
pivot_wider(id_cols = time_rounded, names_from = entity_id, values_from = value) %>%
|
|
||||||
mutate(glencoe_adjusted = air_monitor_temperature) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature)) +
|
|
||||||
geom_smooth(aes(x = glencoe_adjusted,
|
|
||||||
y = living_room_temperature),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time_rounded,
|
|
||||||
y = value)) +
|
|
||||||
geom_smooth(aes(x = time_rounded,
|
|
||||||
y = value),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time_rounded,
|
|
||||||
y = value,
|
|
||||||
color = entiry_id)) +
|
|
||||||
geom_smooth(aes(x = time_rounded,
|
|
||||||
y = value),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time_rounded,
|
|
||||||
y = value,
|
|
||||||
color = entity_id)) +
|
|
||||||
geom_smooth(aes(x = time_rounded,
|
|
||||||
y = value),
|
|
||||||
method = "lm")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -24h) |> drop(columns: ["_start", "_stop"]) |> filter(fn: (r) => r._field =="value")')
|
|
||||||
values <- bind_rows(values)
|
|
||||||
values$value <- values$"_value"
|
|
||||||
sensors <- c("living_room_temperature", "air_monitor_temperature", "glencoe_air_monitor_temperature")
|
|
||||||
values['time_rounded'] <- round_date(ymd_hms(values$`_time`), unit = "minute")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -24h) |> drop(columns: ["_start", "_stop"]) |> filter(fn: (r) => r._field =="value")')
|
|
||||||
values <- bind_rows(values)
|
|
||||||
values$value <- values$"_value"
|
|
||||||
sensors <- c("living_room_temperature", "air_monitor_temperature", "glencoe_air_monitor_temperature")
|
|
||||||
#sensors <- c("living_room_humidity", "office_humidity", "living_room_co2_humidity", "office_co2_humidity", "bedroom_humidity")
|
|
||||||
#sensors <- c("air_monitor_air_monitor_battery_voltage")
|
|
||||||
values['time_rounded'] <- round_date(ymd_hms(values$`_time`), unit = "minute")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -24h) |> drop(columns: ["_start", "_stop"]) |> filter(fn: (r) => r._field =="value")')
|
|
||||||
values <- bind_rows(values)
|
|
||||||
values$value <- values$"_value"
|
|
||||||
sensors <- c("living_room_temperature", "air_monitor_temperature", "glencoe_air_monitor_temperature")
|
|
||||||
#sensors <- c("living_room_humidity", "office_humidity", "living_room_co2_humidity", "office_co2_humidity", "bedroom_humidity")
|
|
||||||
#sensors <- c("air_monitor_air_monitor_battery_voltage")
|
|
||||||
values['time_rounded'] <- round_date(ymd_hms(values$`_time`), unit = "minute")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -24h) |> drop(columns: ["_start", "_stop"]) |> filter(fn: (r) => r._field =="value")')
|
|
||||||
values <- bind_rows(values)
|
|
||||||
values$value <- values$"_value"
|
|
||||||
sensors <- c("living_room_temperature", "air_monitor_temperature", "glencoe_air_monitor_temperature")
|
|
||||||
#sensors <- c("living_room_humidity", "office_humidity", "living_room_co2_humidity", "office_co2_humidity", "bedroom_humidity")
|
|
||||||
#sensors <- c("air_monitor_air_monitor_battery_voltage")
|
|
||||||
values['time_rounded'] <- round_date(ymd_hms(values$`_time`), unit = "minute")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
time_start <- ymd_hms("2023_07_14-13:00:00")
|
|
||||||
time_end <- ymd_hms("2023_07_14-16:00:00")
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time,
|
|
||||||
y = value,
|
|
||||||
color = entity_id))
|
|
||||||
values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end) %>%
|
|
||||||
group_by(time_rounded, entity_id) %>%
|
|
||||||
summarise(value = (mean(value)-32)/1.8) %>%
|
|
||||||
ggplot() +
|
|
||||||
geom_point(aes(x = time_rounded,
|
|
||||||
y = value,
|
|
||||||
color = entity_id)) +
|
|
||||||
geom_smooth(aes(x = time_rounded,
|
|
||||||
y = value),
|
|
||||||
method = "lm")
|
|
||||||
lm_calc <- lm(value ~ time, data = values %>%
|
|
||||||
filter(entity_id %in% sensors) %>%
|
|
||||||
filter(time > time_start,
|
|
||||||
time < time_end))
|
|
||||||
View(lm_calc)
|
|
||||||
#setup ----
|
|
||||||
library(tidyverse)
|
|
||||||
library(influxdbclient)
|
|
||||||
library(rmarkdown)
|
|
||||||
if(Sys.info()[4] == "pseudotsuga") {
|
|
||||||
setwd("~/Documents/dataProjects/laundry_status")
|
|
||||||
} else {
|
|
||||||
setwd("/laundry_status")
|
|
||||||
}
|
|
||||||
Sys.setenv(TZ='America/Chicago')
|
|
||||||
# parameters needed to make connection to Database
|
|
||||||
token <- substr(read_file("data/api_key"), 1, 88)
|
|
||||||
org = "home_assistant"
|
|
||||||
bucket = "home_assistant"
|
|
||||||
## make connection to the influxDB bucket
|
|
||||||
home_assistant <- InfluxDBClient$new(url = "https://influxdb.dendroalsia.net",
|
|
||||||
token = token,
|
|
||||||
org = org)
|
|
||||||
update_interval <- 5
|
|
||||||
cronjob_interval <- 60
|
|
||||||
power_threshhold <- 10
|
|
||||||
# ---- set variables
|
|
||||||
entities <- data.frame(name = c("washing machine", "dryer"), entity_id = c("washing_machine_power", "dryer_power"))
|
|
||||||
update_data <- function(){
|
|
||||||
run_time <- Sys.time()
|
|
||||||
values <- home_assistant$query('from(bucket: "home_assistant") |> range(start: -7d) |> filter(fn: (r) => r["entity_id"] == "washing_machine_power" or r["entity_id"] == "dryer_power") |> filter(fn: (r) => r["_field"] == "value") |> filter(fn: (r) => r["_measurement"] == "W")',
|
|
||||||
POSIXctCol = NULL)
|
|
||||||
values <- bind_rows(values)
|
|
||||||
values <- values %>%
|
|
||||||
rename(value = "_value",
|
|
||||||
time = "_time")
|
|
||||||
values <- values %>%
|
|
||||||
mutate(
|
|
||||||
time = as.POSIXct(time, tz = "America/Chicago"),
|
|
||||||
status = ifelse(value > power_threshhold, "on", "off"))
|
|
||||||
values_by_entity <- as.list(NULL)
|
|
||||||
for(entity in entities$entity_id) {
|
|
||||||
values_by_entity[[entity]] <- values %>%
|
|
||||||
filter(entity_id %in% entity) %>%
|
|
||||||
mutate(end_time = c(time[-1], run_time))
|
|
||||||
}
|
|
||||||
values <- bind_rows(values_by_entity)
|
|
||||||
washer_last_on <- values %>% filter(entity_id == entities$entity_id[1], value > power_threshhold) %>% tail(1) %>% pull(end_time)
|
|
||||||
washer_last_off <- values %>% filter(entity_id == entities$entity_id[1], 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)
|
|
||||||
# ---- 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) > power_threshhold, "on", "off")
|
|
||||||
}
|
|
||||||
plot_1week <- ggplot(data = values) +
|
|
||||||
geom_tile(aes(x = time + seconds(round(as.numeric(difftime(end_time, time, unit = "secs")))/2),
|
|
||||||
y = entity_id,
|
|
||||||
width = seconds(round(as.numeric(difftime(end_time, time, unit = "secs")))),
|
|
||||||
height = 0.5,
|
|
||||||
fill = status)) +
|
|
||||||
scale_y_discrete(breaks = entities$entity_id, labels = entities$name) +
|
|
||||||
scale_x_datetime(date_breaks = "24 hours", date_labels = '%A', date_minor_breaks = "6 hours") +
|
|
||||||
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
|
|
||||||
labs(title = "The past week",
|
|
||||||
x = NULL,
|
|
||||||
y = NULL,
|
|
||||||
fill = NULL)
|
|
||||||
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),
|
|
||||||
y = entity_id,
|
|
||||||
width = seconds(round(as.numeric(difftime(end_time, time, unit = "secs")))),
|
|
||||||
height = 0.5,
|
|
||||||
fill = status)) +
|
|
||||||
scale_y_discrete(breaks = entities$entity_id, labels = entities$name) +
|
|
||||||
scale_x_datetime(breaks = seq(round_date(max(values$end_time), "4 hours") - hours(24), round_date(max(values$end_time), "4 hours"), by = "4 hours"), date_labels = '%I:%M %p', date_minor_breaks = "1 hours") +
|
|
||||||
theme(axis.text.x = element_text(angle = 30, vjust = 0.5)) +
|
|
||||||
labs(title = "Last 24 hours",
|
|
||||||
x = NULL,
|
|
||||||
y = NULL,
|
|
||||||
fill = NULL)
|
|
||||||
render("laundry_status.Rmd",
|
|
||||||
output_dir = "html",
|
|
||||||
output_file = "index.html")
|
|
||||||
}
|
|
||||||
# for(i in 1:(cronjob_interval/update_interval)){
|
|
||||||
# message(Sys.time())
|
|
||||||
# update_data()
|
|
||||||
# Sys.sleep(60*update_interval)
|
|
||||||
# }
|
|
||||||
continue <- TRUE
|
|
||||||
while(continue){
|
|
||||||
message(Sys.time())
|
|
||||||
update_data()
|
|
||||||
Sys.sleep(60*update_interval)
|
|
||||||
}
|
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@ data/*
|
|||||||
figures/*
|
figures/*
|
||||||
|
|
||||||
html/index.html
|
html/index.html
|
||||||
|
.Rhistory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user