Here is the raw data being pulled in by RTL_433:
Vevor/RTL_433 Raw Data
{"time" : "2025-01-06 19:11:38", "model" : "Vevor-7in1", "id" : 63729, "channel" : 0, "battery_ok" : 1, "temperature_C" : -3.900, "humidity" : 91, "wind_avg_km_h" : 5.500, "wind_max_km_h" : 6.667, "wind_dir_deg" : 354,
"rain_mm" : 65.007, "uv" : 1, "light_lux" : 12598, "mic" : "CHECKSUM"}
WEEWX Python Script
class Vevor7in1Packet(Packet):
# {"time" : "2024-11-13 13:27:59", "model" : "Vevor-7in1", "id" : 63729, "channel" : 0, "battery_ok" : 1, "temperature_C" : 5.400, "humidity" : 76, "wind_avg_km_h" : 0.700, "wind_max_km_h" : 2.667, "wind_dir_deg" : 87, "rain_mm" : 12.116, "uv" : 0, "light_lux" : 7213, "mic" : "CHECKSUM"}'
IDENTIFIER = "Vevor-7in1"
@staticmethod
def parse_json(obj):
pkt = dict()
pkt['dateTime'] = Packet.parse_time(obj.get('time'))
pkt['usUnits'] = weewx.METRICWX
station_id = Packet.get_int(obj, 'id')
pkt['battery'] = Packet.get_int(obj, 'battery_ok')
pkt['temperature'] = Packet.get_float(obj, 'temperature_C')
pkt['humidity'] = Packet.get_float(obj, 'humidity')
pkt['wind_gust'] = kmh_to_ms(Packet.get_float(obj, 'wind_max_km_h'))
pkt['wind_speed'] = kmh_to_ms(Packet.get_float(obj, 'wind_avg_km_h'))
pkt['wind_dir'] = Packet.get_float(obj, 'wind_dir_deg')
pkt['total_rain'] = Packet.get_float(obj, 'rain_mm')
pkt['light_lux'] = Packet.get_int(obj, 'light_lux')
pkt['uv'] = Packet.get_float(obj, 'uv')
pkt = Packet.add_identifiers(pkt, station_id, Vevor7in1Packet.__name__)
return pkt
def kmh_to_ms(v):
if v is not None:
v /= 3.6
return v
WEEWX Config Sensor Mapping
[[sensor_map]]
windDir = wind_dir.63729.Vevor7in1Packet
windSpeed = wind_speed.63729.Vevor7in1Packet
windGust = wind_gust.63729.Vevor7in1Packet
outTemp = temperature.63729.Vevor7in1Packet
outHumidity = humidity.63729.Vevor7in1Packet
rain_total = total_rain.63729.Vevor7in1Packet
UV = uv.63729.Vevor7in1Packet
luminosity = light_lux.63729.Vevor7in1Packet