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