#!/usr/bin/env python
"""
$ rtl_433 -R 104 -F json | rtl_433_json_to_rtlwmbus.py

A script to convert rtl_433 wmbus json output to rtlwmbus output

Copyright (C) 2019 Benjamin Larsson
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
"""

import sys
import json
import time;

def sanitize(text):
    return text.replace(" ", "_")

def rtl_433_wmbus():
    dup = {}
    seconds = 10
    while True:
        line = sys.stdin.readline()
        ts = int(time.time())
        if not line:
            break

        try:
            event = json.loads(line)

            # Duplicate check + check if dictianary is initialized
            id = int(event['id'])
            if id in dup:
                #print("if %s D:%s T:%s" % (id, dup[id], ts))
                if (dup[id] + seconds) < ts:
                    duplicate = False
                    dup[id] = ts;
                else:
                    duplicate = True
                    #print("Dup! %s" % (id))
            else:
                #print("else %s" % (id))
                dup[id] = ts;
                duplicate = False

            if duplicate != True:
                print("%s1;1;1;%s.000;54;46;%s;0x%s" % (event['mode'], event['time'], event['id'], event['data']) )
                sys.stdout.flush()

        except KeyError:
            pass

        except ValueError:
            pass


if __name__ == "__main__":
    dup_test = {}
    rtl_433_wmbus()
