|
| 1 | +import logging |
| 2 | +import time |
| 3 | +from kaa_client import KaaClient |
| 4 | +from electric_meter import ElectricMeter |
| 5 | + |
| 6 | +# Change application version |
| 7 | +application_version = '' |
| 8 | +# If you revoked the token, update this value with new one |
| 9 | +token = 'smart-meter-1' |
| 10 | + |
| 11 | +mqtt_host = 'mqtt.cloud.kaaiot.com' |
| 12 | +mqtt_port = 1883 |
| 13 | + |
| 14 | +logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s') |
| 15 | + |
| 16 | +kaa_client = KaaClient(mqtt_host, mqtt_port, application_version, token) |
| 17 | +electric_meter = ElectricMeter(kaa_client) |
| 18 | + |
| 19 | +# Command handlers |
| 20 | +# Handle command to toggle device lines |
| 21 | +kaa_client.add_command_handler("electric_meter_toggle", electric_meter.electric_meter_handler) |
| 22 | +# Handle overdrive mode simulation command |
| 23 | +kaa_client.add_command_handler("electric_meter_overdrive", electric_meter.electric_meter_overdrive_handler) |
| 24 | + |
| 25 | +# Device configuration change handler |
| 26 | +kaa_client.add_configuration_status_handler(electric_meter.configuration_handler) |
| 27 | + |
| 28 | +logging.info( |
| 29 | + f""" |
| 30 | + Connect to kaa using: |
| 31 | + Host: [{mqtt_host}] |
| 32 | + Port: [{mqtt_port}] |
| 33 | + Application version name: [{application_version}] |
| 34 | + Token: [{token}] |
| 35 | + """ |
| 36 | +) |
| 37 | + |
| 38 | +# Start mqtt connection |
| 39 | +kaa_client.connect() |
| 40 | + |
| 41 | +logging.info(f"Send device metadata [{electric_meter.get_device_metadata()}]") |
| 42 | +kaa_client.publish_metadata(electric_meter.get_device_metadata()) |
| 43 | + |
| 44 | +while True: |
| 45 | + logging.info("Send ElectricMeter data") |
| 46 | + data_sample = electric_meter.get_data_sample() |
| 47 | + logging.info(f"{data_sample}") |
| 48 | + kaa_client.publish_data_collection(data_sample) |
| 49 | + time.sleep(1) |
0 commit comments