Hola Josmar
Las máximas y mínimas están en la tabla archive_day_outTemp (columnas max y min).
Así si por ejemplo quieres hacer la media de lo que va de año ejecutas:
sqlite> SELECT avg(min) as 'TempMediaMin' from archive_day_outTemp where strftime('%Y',datetime("dateTime", 'unixepoch', 'localtime')) = '2022';
Si quieres las de un mes en concreto:
sqlite> SELECT avg(min) as 'TempMediaMin' from archive_day_outTemp where strftime('%Y',datetime("dateTime", 'unixepoch', 'localtime')) = '2022' and strftime('%m',datetime("dateTime", 'unixepoch', 'localtime')) = '01';
Eso es para el mes de este año, si no le pones la parte del año te calculará todas las medias mínimas de todos los eneros que hayan en la BBDD. Como ves el truco es pedirle %Y ó %m para el año o el mes o los dos a la vez.
Para las máximas igual pero poniendo avg(max) as 'TempMediaMax'
Lo que tú has hecho es una media integrada (sumar todos los registros y dividirlos entre el número total de estos). El método tradicional cuando estaban solamente los termómetros de máxima y mínima era el de sumar máxima y mínima y dividirlo entre dos (media aritmética). Hay gente que con largas series la sigue queriendo hacer. Para ello puedes calcularla de la siguiente manera:
SELECT avg((max-min)/2+min) as 'TempMedia' from archive_day_outTemp where strftime('%Y',datetime("dateTime", 'unixepoch', 'localtime')) = '2022' and strftime('%m',datetime("dateTime", 'unixepoch', 'localtime')) = '01';
Así te calcula la media aritmética de máximas y mínimas de este mes de enero.
Decir, por último, que las fechas según he puesto las cogerá en local ya que lleva 'localtime' en los parámetros. Si tienes la raspi en UTC tomará así el tiempo en UTC pero si tienes la hora del sistema en hora local y quieres UTC le quitas lo del ', localtime' y lo calculará en UTC.
Saludos