Running RTL_433 manually outputs:
time : 2020-06-11 14:09:10
model : Ambient Weather F007TH Thermo-Hygrometer
House Code: 175 Channel : 1 Battery : OK
Temperature: 89.3 F
Humidity : 41 % Integrity : CRC
Running sudo PYTHONPATH=bin python bin/user/sdr.py the F007TH is not
parsed:
out:[u'{"time" : "2020-06-11 18:16:14", "model" : "Ambient Weather F007TH
Thermo-Hygrometer", "device" : 175, "channel" : 1, "battery" : "OK",
"temperature_F" : 89.300, "humidity" : 41, "mic" : "CRC"}\n']
sdr.py has a parser for the AmbientF007TH:
class AmbientF007THPacket(Packet):
# 2017-01-21 18:17:16 : Ambient Weather F007TH Thermo-Hygrometer
# House Code: 80
# Channel: 1
# Temperature: 61.8
# Humidity: 13 %
# IDENTIFIER = "Ambient Weather F007TH Thermo-Hygrometer"
IDENTIFIER = "Ambientweather-F007TH"
PARSEINFO = {
'House Code': ['house_code', None, lambda x: int(x)],
'Channel': ['channel', None, lambda x: int(x)],
'Temperature': [
'temperature', re.compile('([\d.-]+) F'), lambda x: float(x)],
'Humidity': ['humidity', re.compile('([\d.]+) %'), lambda x:
float(x)]}
@staticmethod
def parse_text(ts, payload, lines):
pkt = dict()
pkt['dateTime'] = ts
pkt['usUnits'] = weewx.METRIC
pkt.update(Packet.parse_lines(lines, AmbientF007THPacket.PARSEINFO))
house_code = pkt.pop('house_code', 0)
channel = pkt.pop('channel', 0)
sensor_id = "%s:%s" % (channel, house_code)
pkt = Packet.add_identifiers(
pkt, sensor_id, AmbientF007THPacket.__name__)
return pkt
# {"time" : "2017-01-21 13:01:30", "model" : "Ambient Weather F007TH
Thermo-Hygrometer", "device" : 80, "channel" : 1, "temperature_F" : 61.800,
"humidity" : 10}
# as of 06feb2020:
# {"time" : "2020-02-05 19:33:11", "model" : "Ambientweather-F007TH",
"id" : 201, "channel" : 5, "battery_ok" : 1, "temperature_F" : 39.400,
"humidity" : 60, "mic" : "CRC"}
@staticmethod
def parse_json(obj):
pkt = dict()
pkt['dateTime'] = Packet.parse_time(obj.get('time'))
pkt['usUnits'] = weewx.US
house_code = obj.get('device', 0)
channel = obj.get('channel')
pkt['temperature'] = Packet.get_float(obj, 'temperature_F')
pkt['humidity'] = Packet.get_float(obj, 'humidity')
sensor_id = "%s:%s" % (channel, house_code)
pkt = Packet.add_identifiers(
pkt, sensor_id, AmbientF007THPacket.__name__)
return pkt
My sdr.conf section for SDR:
[SDR]
# This section is for the software-defined radio driver.
# The driver to use
driver = user.sdr
# path = /usr/local/bin/rtl_433
# log_unknown_sensors = False
# log_unmapped_sensors = True
[[sensor_map]]
extraTemp2 = temperature.*.AmbientF007THPacket # pool
temperature
When run under weeex-multi using:
sudo /etc/init.d/weewx start sdr
I find this in the log; I think this must be the problem but I have not
been able to figure out how to fix it:
import of driver failed: failed to start process 'rtl_433 -M utc -F json':
[Errno 2] No such file or directory (<class 'weewx.WeeWxIOError'>)
Jun 11 15:56:05 NUC2498 weewx-sdr[1653]: engine: Unable to load driver:
failed to start process 'rtl_433 -M utc -F json': [Errno 2] No such file or
directory
Debian 9
WeeWx 3.92
Intel NUC
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/23987357-215e-4be5-be6e-293a6c2343e0o%40googlegroups.com.