Hi Andy,
try this one (untesteted):
-------------------------------
class TFATwinPlus303049Packet(Packet):
# 2019-09-25 17:15:12 : TFA-Twin-Plus-30.3049
# Channel: 1
# Battery: OK
# Temperature: 8.40 C
# Humidity: 91 %
# {"time" : "2019-09-25 17:15:12", "model" : "TFA-Twin-Plus-30.3049", "id" : 13, "channel" : 1, "battery" : "OK", "temperature_C" : 8.400, "humidity" : 91, "mic" : "CHECK SUM"}
IDENTIFIER = "TFA-Twin-Plus-30.3049"
PARSEINFO = {
'Rolling Code': ['rolling_code', None, lambda x: int(x)],
'Channel': ['channel', None, lambda x: int(x)],
'Battery': ['battery', None, lambda x: 0 if x == 'OK' else 1],
'Temperature': [
'temperature', re.compile('([\d.-]+) C'), 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, TFATwinPlus303049Packet.PARSEINFO))
return Hideki.insert_ids(pkt, TFATwinPlus303049Packet.__name__)
@staticmethod
def parse_json(obj):
pkt = dict()
pkt['dateTime'] = Packet.parse_time(obj.get('time'))
pkt['usUnits'] = weewx.METRIC
pkt['rolling_code'] = obj.get('rc')
pkt['channel'] = obj.get('channel')
pkt['temperature'] = Packet.get_float(obj, 'temperature_C')
pkt['humidity'] = Packet.get_float(obj, 'humidity')
pkt['battery'] = 0 if obj.get('battery') == 'OK' else 1
return Hideki.insert_ids(pkt, TFATwinPlus303049Packet.__name__)
---------------------------------------------
and add this
under
class PacketFactory(object):
Michael