Beispiel #1
0
if __name__ == '__main__':

    from lcd import LCD

    # Display Layout instance
    L2 = Layout_EUR()

    # Random values for test
    L2.ewv.set(0.3)
    L2.egv.set(2.64)
    L2.eev.set(0.0)
    L2.update_total()

    # LCD instance
    lcd = LCD(False)
    lcd.draw(L2)

    for i in range(18):
        L2.ewv.add(0.01)
        L2.egv.add(1)
        L2.eev.add(0.17)
        L2.update_total()

        L2.set_date_time()
        lcd.update(L2)

    raw_input()

    for _ in range(10):
        L2.i.set_image(L2.ch1 - 6, L2.ch1 - 6, 'purple_r.jpg')
        time.sleep(.5)
Beispiel #2
0
class MY_GUI(object):
    def __init__(self, WS=False):
        L1 = LEnergy()
        L2 = Layout_EUR()
        L3 = LTemplate(image='tap-water1.jpg',
                       unit='Lit',
                       format_string="{}",
                       ppu=0.0011)
        L4 = LTemplate(image='gas_32x32.png',
                       unit="m" + u'\u00B3',
                       format_string="{0:.2f}",
                       ppu=0.80025)
        L5 = LTemplate(image='plug1.png',
                       unit='kW',
                       format_string="{0:.3f}",
                       ppu=0.24)
        L6 = LWeather()

        self.Layout = [L1, L2, L3, L4, L5, L6]  # Used when displaying
        self.L_SIZE = len(self.Layout)
        self.L_IDX = 0

        self.L1 = self.Layout[0]  # Ref used when updating data
        self.L2 = self.Layout[1]  # Eur
        self.L3 = self.Layout[2]  # Water
        self.L4 = self.Layout[3]  # Gas
        self.L5 = self.Layout[4]  # Electricity
        self.L6 = self.Layout[5]  # Weather

        L6.update()

        self.lcd = LCD(WS)
        self.draw_display()

    def draw_display(self):
        self.lcd.draw(self.Layout[self.L_IDX])

    def update_display(self):
        self.lcd.update(self.Layout[self.L_IDX])

    def layout_next(self):
        self.L_IDX = (self.L_IDX + 1) % self.L_SIZE
        self.draw_display()

    def layout_prev(self):
        self.L_IDX = (self.L_IDX - 1) % self.L_SIZE
        self.draw_display()

    # TODO: duplicate ppu
    def update_water(self, value):
        self.L1.wv.set(value)  # Litter
        self.L2.ewv.set(round(0.0011 * value, 2))  # per Liter
        self.L3.update(value)

    def update_water_hour(self, index, value):
        self.L1.wg.set_bar(index, value)  # Liters
        self.L3.update_hour_data(index, value)

    def update_gas(self, value):
        self.L1.gv.set(value)  # m3
        self.L2.egv.set(round(0.80025 * value, 2))  # per m3 (2017-2918)
        self.L4.update(value)

    def update_gas_hour(self, index, value):
        self.L1.gg.set_bar(index, value)  # Liters
        self.L4.update_hour_data(index, value)

    def update_electricity(self, value):
        self.L1.ev.set(value)  # kWh
        self.L2.eev.set(round(0.24 * value, 2))  # per kW (2017-2918)
        self.L5.update(value)

    def update_electricity_hour(self, index, value):
        self.L1.eg.set_bar(index, value)  # kWh
        self.L5.update_hour_data(index, value)

    def update_eur_total(self):
        self.L2.update_total()

    def set_date_time(self):
        self.L1.set_date_time()
        self.L2.set_date_time()
        self.L3.set_date_time()
        self.L4.set_date_time()
        self.L5.set_date_time()
        self.L6.set_date_time()

    def hour_data_next(self):
        self.L3.hour_data_next()
        self.L4.hour_data_next()
        self.L5.hour_data_next()
        self.update_display()

    def hour_data_prev(self):
        self.L3.hour_data_prev()
        self.L4.hour_data_prev()
        self.L5.hour_data_prev()
        self.update_display()