oviwox
Overview
Oviwox is a standalone application designed to collect data from two different sources: weather station data via an RTL-SDR (Realtek RTL2838) dongle and Vinduino sensor data via a Cypress USB-UART LP dongle. The collected data is processed, converted to JSON format, and sent to a web service (webhook) for further analysis. The entire output from the application is logged to a file located at /var/log/oviwox.log.
Components
- Weather Station Data: Collected using
rtl_433, which processes data from weather sensors connected via the RTL-SDR dongle. - Vinduino Sensor Data: Collected from Vinduino sensors connected via the Cypress USB-UART LP dongle and read through the
/dev/ttyACM0interface.
Features
- Weather Station Data Processing: The weather station data from
rtl_433is filtered, processed, and sent as JSON to a webhook. Data such as windspeed is converted from kilometers per hour (kph) to knots. - Vinduino Sensor Data Processing: The Vinduino data is parsed from raw sensor readings, converted into JSON, and sent to the same webhook as the weather data.
- Logging: All console output, including errors and standard log messages, is sent to
/var/log/oviwox.log.
Installation and Setup
1. Python Environment
Ensure that you have Python 3 and the necessary Python libraries installed:
requestspyserial
You can install these dependencies with:
sudo apt-get install python3-pip pip3 install requests pyserial
2. File Structure
Place the following two files in your system:
oviwox.py: The Python script that handles both weather and Vinduino data processing.oviwox.sh: The shell script that starts the Python program and redirects all output to/var/log/oviwox.log.
3. Make the Shell Script Executable
Make the oviwox.sh script executable:
chmod +x oviwox.sh
4. Log File Setup
The shell script ensures that the log file exists and has the proper permissions. You can manually create and set permissions for the log file beforehand if needed:
sudo touch /var/log/oviwox.log sudo chmod 666 /var/log/oviwox.log
How to Run Oviwox
-
Start the Application: Run the shell script to start the Oviwox application:
bashCopy code
sudo ./oviwox.sh -
Logging: All output from the script, including weather data, Vinduino data, and any errors or logs, will be written to
/var/log/oviwox.log. -
Stopping the Application: You can stop the application by killing the process or closing the terminal if the script was run interactively.
Data Processing Details
Weather Station Data
- Data is received from
rtl_433in JSON format. - Only relevant fields are processed:
batterylow→ Sent aswx_batterylow.avewindspeedandgustwindspeed→ Converted from kph to knots.- Other fields (
winddirection,cumulativerain,temperature,humidity,light, anduv) are kept as is.
- The processed data is sent to the webhook as a JSON POST request.
Vinduino Sensor Data
- Data is received from the Cypress dongle as raw serial input.
- The packet is parsed and converted into JSON format with fields for sensor data at different depths (
0.05m,0.5m,1m, and2m), along with battery voltage and temperature. - The processed data is sent to the webhook as a JSON POST request.
Web Service Configuration
The script sends data to a configurable webhook. Make sure to update the WEB_SERVICE_URL variable in the oviwox.pyfile to point to the correct endpoint:
WEB_SERVICE_URL = "https://your-webhook-url.com/api/sensors"
Troubleshooting
-
Log File: Check
/var/log/oviwox.logfor any issues. The log file will contain all standard output and errors from the application, including information on data processing, JSON errors, network errors, and more. -
Permissions: If you encounter permission issues with the log file, ensure it has the correct write permissions:
sudo chmod 666 /var/log/oviwox.log -
Missing Data: If no data is being received from the weather station or Vinduino sensors, ensure that the devices are correctly connected and the correct drivers are installed.