Hello 

I've recently purchased a Fineoffset WH25 which records temperature, 
humidity and pressure.

Luckly, it was recently added to RTL_433.

If it helps anyone, I've written a parser for this sensor (see attached 
diff).

Regards,
John
721,762d720
< class FOWH25Packet(Packet):
<     # 2016-09-02 22:26:05 : 	Fine Offset Electronics, WH25
<     # ID: 	239
<     # Temperature: 19.9 C
<     # Humidity: 78 %
<     # Pressure: 1007.9 hPa
< 
< # {"time" : "2017-03-25 05:33:57", "model" : "Fine Offset Electronics, WH25", "id" : 239, "temperature_C" : 30.200, "humidity" : 68, "pressure" : 1008.000}
< 
<     IDENTIFIER = "Fine Offset Electronics, WH25"
<     PARSEINFO = {
<         'ID': ['station_id', None, lambda x: int(x)],
<         'Temperature': ['temperature', re.compile('([\d.-]+) C'), lambda x: float(x)],
<         'Humidity': ['humidity', re.compile('([\d.]+) %'), lambda x: float(x)],
<         'Pressure': ['pressure', re.compile('([\d.-]+) hPa'), 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, FOWH25Packet.PARSEINFO))
<         return FOWH25Packet.insert_ids(pkt)
< 
<     @staticmethod
<     def parse_json(obj):
<         pkt = dict()
<         pkt['dateTime'] = Packet.parse_time(obj.get('time'))
<         pkt['usUnits'] = weewx.METRIC
<         pkt['station_id'] = obj.get('id')
<         pkt['temperature'] = Packet.get_float(obj, 'temperature_C')
<         pkt['humidity'] = Packet.get_float(obj, 'humidity')
<         pkt['pressure'] = Packet.get_float(obj, 'pressure')
<         return FOWH25Packet.insert_ids(pkt)
< 
< 
<     @staticmethod
<     def insert_ids(pkt):
<         station_id = pkt.pop('station_id', '0000')
<         pkt = Packet.add_identifiers(pkt, station_id, FOWH25Packet.__name__)
<         return pkt
< 
1272d1229
<         FOWH25Packet,

Reply via email to