#!/usr/bin/python3

from gpiozero import DigitalOutputDevice, MCP3008
from datetime import datetime
from time import sleep

def setup_connected_sensors():
    sensors = { 'HW-103-0': { 'Description': 'Moisture Sensor #1', 'Power': DigitalOutputDevice(18), 'Analog': MCP3008(channel=0) }}
    return sensors

# Setup
probe_interval = 15

# List of all sensors
sensor_list = setup_connected_sensors()

# Loop and measure
while True:
    for sensor in sensor_list:
        if (sensor_list[sensor]['Power'] != None):
            sensor_list[sensor]['Power'].on()
            sleep(0.2)

        print("%s %s (%s): Analog.value:%s, Analog.raw_value:%s, Percent:%s, Percent(inv):%s" %(datetime.now().isoformat(), sensor, sensor_list[sensor]['Description'], (sensor_list[sensor]['Analog'].value if sensor_list[sensor]['Analog'] != None else None), (sensor_list[sensor]['Analog'].raw_value if sensor_list[sensor]['Analog'] != None else None), int(sensor_list[sensor]['Analog'].value*100) if sensor_list[sensor]['Analog'] != None else None, int(100-(sensor_list[sensor]['Analog'].value*100)) if sensor_list[sensor]['Analog'] != None else None))

        if (sensor_list[sensor]['Power'] and sensor_list[sensor]['Power'].value == 1):
            sensor_list[sensor]['Power'].off()

    sleep(probe_interval)
