The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

data_collection

library(microinverterdata)

Data Collection

For inverters that do not collect historical data, you may want to do this collection with R.

Here are some ideas to achieve it.

Use pins storage

library(pins)
board <- board_local()
if (!"inverter_data" %in% pin_list(board)) {
  initial_data <- tibble::tibble(
    date = lubridate::now(), get_output_data(c("192.168.0.175"))
    )
  board |> pin_write(initial_data, name = "inverter_data", versioned = TRUE)
}
history <- board |> pin_read("inverter_data")
new_data <- tibble::tibble(
  date = lubridate::now(), get_output_data(c("192.168.0.175"))
  )
board |> pin_write(rbind(history, new_data), name = "inverter_data", versioned = TRUE)
board |> pin_versions("inverter_data")

All-in-one in a script

As we know the dynamic behavior, we can move that to a R script and run it on a regular basis with system tools like crontab for linux :

crontab -l

and you can use and edit the following file

system.file("inverter_data.R", package = "microinverterdata")

and setup (or remove) the environment variables required for the script to run, then put that script in the crontab to run it every 30 min like in the following crontab entry

# m h dom mon dow command
0,30 * * * * R CMD BATCH inverter_data.R

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.