Buenas.
Al fin he podido ponerme a trastear con CUmulusMX para aprovechar la capacidad del GW3000 como datalogger.
Para instalar CUmulus, he seguido este tutorial con una salvedad: he usado la versión 4 de Cumulus ya que la 3 no tiene la utilidad de completar datos desde la SD instalada en el GW3000.
La cosa es que tras seguir el tutorial, no funcionaba. Al iniciar Cumulus salía siempre el siguiente error:
"CumulusMX.exe: File CumulusMX.exe is not a valid assembly"Rebuscando, llegué al foro de Cumulus donde se especifica que la versión 4 no usa mono, sino .NET 8. Las instrucciones para instalar .NET 8 están indicadas aquí
https://cumulus.hosiene.co.uk/viewtopic.php?t=22051, pero por si acaso las dejo aquí apuntadas.
Podríamos saltarnos la instrucción de instalar mono en el tutorial original y ejecutar los siguientes comandos.
En primer lugar, eliminamos la versión previa de .NET que el SO que hayamos descargado pueda tener con
sudo rm -r /usr/share/dotnet
A continuación instalamos las dependencias de .NET. Para debian 12 (que debería ser lo que tenemos instalado):
sudo apt-get update
sudo apt install libc6 libgcc-s1 libgssapi-krb5-2 libicu72 libssl1.1 libstdc++6 zlib1g
Descargamos dotnet, le damos permisos de ejecución y lo ejecutamos con los 3 comandos siguientes. Ojo, la descarga del archivo dotnet-install.sh se hará en el directorio en el que nos encontremos en ese momento en el terminal de la RPi. Para ser consistentes con el resto del tutorial mejor ir a /opt/CumulusMX y descargarlo ahí, así tendremos todo lo referente a Cumulus en el mismo sitio.
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
sudo ./dotnet-install.sh -c LTS --install-dir /usr/share/dotnet --runtime dotnet
Ejecutamos los 3 siguientes comandos para que CumulusMX sepa donde encontrar dotnet para poder funcionar:
sudo echo 'export PATH=$PATH:/usr/share/dotnet' | sudo tee /etc/profile.d/dotnet.sh > /dev/null
sudo chmod +x /etc/profile.d/dotnet.sh
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
Comprobamos que dotnet se ha instalado y es ejecutable con
dotnet --info
Si todo ha ido bien, deberíamos ver lo siguiente:
Host:
Version: 8.0.19
Architecture: arm64
Commit: fce8ed90dc
RID: linux-arm64
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.NETCore.App 8.0.19 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
Veremos que dentro de la carpeta /opt/CumulusMX/MSutils/linux no existe el archivo "cumulusmx.service", por lo que no podremos moverlo a /etc/systemd/system. En su lugar, lo podemos instalar con el siguiente comando:
sudo dotnet CumulusMX.dll -install -user root
Es importante que después de -user pongamos root. Si ponemos otra cosa, tendremos problemas con los permisos de ejecución. Esto creará directamente el servicio cumulusmx.service en la carpeta /etc/systemd/system.
Por último, habilitamos el servicio con
sudo systemctl enable cumulusmx
Ahora, cuando vayamos a la consola de Cumulus, veremos que en el menú Settings tenemos un nuevo apartado: "Ecowitt HTTP and local API Settings"
Ahí podremos seleccionar la opción de SD Card para que Cumulus haga un backfilling a partir de los datos grabados en la SD del GW3000.