Ejemplo n.º 1
0
 def __init__(self):
     """zainicjowanie okienka"""
     pygame.init()
     self.background = pygame.image.load("images/chest.png")
     self.background = self.resize(self.background)
     self.actions = action.Actions()
     super().__init__(self.background)
     self.board = pygame.display.get_surface()
     self.FPS = 10
     self.clock = pygame.time.Clock()
     self.buttons = button.Button()
Ejemplo n.º 2
0
def radio(actionName=""):
    if (isAuthNeed() == False):
        radio = RadioClass.RadioClass()
        if len(actionName) == 0:
            return render_template('radio.html',
                                   radioMenu=radio.getRadioStations())
        else:
            stationName = request.args.get('param')
            action = ActionClass.ActionClass()
            action.performAction(actionName, stationName)
            return render_template('events.html',
                                   events=action.getEvents(
                                       action.ActionEventRadio))
Ejemplo n.º 3
0
def sprinkler(actionName=""):
    if (isAuthNeed() == False):
        sprinkler = SprinklerClass.SprinklerClass()
        if len(actionName) == 0:
            return render_template(
                'sprinkler.html',
                sprinklerElements=sprinkler.getSprinklerItems())
        else:
            action = ActionClass.ActionClass()
            sprinklerName = request.args.get('param')
            action.performAction(actionName, sprinklerName)
            return render_template('events.html',
                                   events=action.getEvents(
                                       action.ActionEventGeneric))
Ejemplo n.º 4
0
    def __genericEventMessage(self, tick):

        # check if message should be send once per 1min

        update = False
        events = ActionClass.ActionClass()
        config = ConfigClass.ConfigClass()

        # get all generic event (active and inactive)

        items = events.getEvents(events.ActionEventGeneric, True, False)
        eventId = 0
        try:
            for item in items:
                update = False
                name = item.type + str(eventId)
                eventId = eventId + 1

                # add item if not exist in "last state" list

                if name not in self.lastStates:
                    self.lastStates[name] = "0"

            # if state has changed then send message (if needed) and then update last state

                if item.state != self.lastStates[name] \
                    and len(item.messageId) > 0:

                    # send message

                    phones = config.getPhoneNumbers()
                    text = config.getSmsMessage(item.messageId, item.state)
                    token = config.getSmsToken()

                    for to in phones:
                        result = self.sendSms(token, to, text)
                        if result == 'OK':
                            update = True

            # update last state if at least one message was send succesfully

                    if update == True:
                        print(item.state)
                        self.lastStates[name] = item.state
        except Exception as e:
            print("__________message excetion")
            #print str(e)
            logging.error('MESSAGE EXCEPT:' + str(e))
Ejemplo n.º 5
0
 def APIevents(self, json_req=''):
     obj = ActionClass.ActionClass()
     events = obj.getEvents()
     response = {}
     resEvents = []
     duration = 0
     for event in events:
         row = {}
         row['eventGroup'] = event.groupId
         row['eventDesc'] = event.desc
         row['eventType'] = event.type
         row['eventDate'] = event.date
         resEvents.append(row)
     response['events'] = resEvents
     response['eventDuration'] = duration
     return json.dumps(response)
Ejemplo n.º 6
0
def mp3(actionName=""):
    if (isAuthNeed() == False):
        radio = RadioClass.RadioClass()
        if len(actionName) == 0:
            return render_template('mp3.html', files=radio.getFiles())
        elif actionName == "ChdirUp":
            return render_template('mp3.html',
                                   files=radio.getFiles(
                                       radio.getParentDirectory()))
        elif actionName == "Chdir":
            path = request.args.get('param')
            return render_template('mp3.html', files=radio.getFiles(path))
        else:
            mp3File = request.args.get('param')
            if (mp3File == None):
                # this is directory intead of single mp3 file
                mp3File = radio.getCurrentDirectory()
            action = ActionClass.ActionClass()
            action.performAction(actionName, mp3File)
            return render_template('events.html',
                                   events=action.getEventsData(
                                       action.ActionEventRadio))
 def __init__(self):
     self.board = pygame.display.get_surface()
     self.actions = actions.Actions()
     self.buttons = {
         'L': 'images/button_L.png',
         'R': 'images/button_R.png',
         'O': 'images/button_O.png'
     }
     self.buttons_light = {
         'L': 'images/button_L_light.png',
         'R': 'images/button_R_light.png',
         'O': 'images/button_O_light.png'
     }
     self.buttons_controller = {
         'Start': 'images/button_start.png',
         'Stop': 'images/button_end.png',
         'Again': 'images/button_jeszcze_raz.png'
     }
     self.buttons_controller_light = {
         'Start': 'images/button_start_light.png',
         'Stop': 'images/button_end_light.png',
         'Again': 'images/button_jeszcze_raz_light.png'
     }
     self.positions = {'L': (280, 165), 'R': (360, 165), 'O': (680, 165)}
     self.positions_light = {
         'L': (268, 155),
         'R': (348, 155),
         'O': (672, 155)
     }
     self.add_buttons()
     self.add_buttons_light()
     self.add_button_controller()
     self.add_button_controller_light()
     self.x = 265
     self.y = 90
     self.compare_number = 0
Ejemplo n.º 8
0
 def APIGenericCMD(self, cmd, param=''):
     action = ActionClass.ActionClass()
     duration = action.performAction(cmd, param)
     return self.APIevents()
Ejemplo n.º 9
0
def restApi():

    req = {}
    crypt = CryptClass.CryptClass()
    postData = crypt.Decode(request.data)
    postData = postData[:postData.rfind("}") + 1]
    req = json.loads(postData)

    if (req['action'] == "temperature"):
        obj = HeaterClass.HeaterClass()
        response = obj.getCurrentTemperatureInside()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "version"):
        response = {}
        response['name'] = "Home Control Center"
        response['version'] = "1.0"
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "getMediaChannels"):
        obj = RadioClass.RadioClass()
        response = {}
        response = obj.getPVRStations()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "info"):
        infoObj = InfoClass.InfoClass()
        response = infoObj.getInfoData()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "weather"):
        obj = WeatherClass.WeatherClass()
        response = obj.getCurrentWeather()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "schedule"):
        obj = ScheduleClass.ScheduleClass()
        response = {}
        response['DirectionA'] = obj.getJsonFromKoleo('A', 0)
        response['DirectionB'] = obj.getJsonFromKoleo('B', 0)
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "heaterCharts"):
        obj = HeaterClass.HeaterClass()
        response = {}
        response = obj.getCharts()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "getGardenSettings"):
        obj = SprinklerClass.SprinklerClass()
        response = {}
        response = obj.getSettings()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "playMediaChannel"):
        obj = RadioClass.RadioClass()
        response = {}
        response = obj.playPVRChannel(param)
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "toggleCec"):
        obj = RadioClass.RadioClass()
        response = {}
        response = obj.toggleCEC()
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "setGardenSettings"):
        response = {}
        config = ConfigClass.ConfigClass()
        config.saveSettingsData(2, req)
        response['state'] = "OK"
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "setHeaterSettings"):
        response = {}
        config = ConfigClass.ConfigClass()
        config.saveSettingsData(1, req)
        response['state'] = "OK"
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    elif (req['action'] == "setAlarmSettings"):
        response = {}
        config = ConfigClass.ConfigClass()
        config.saveSettingsData(0, req)
        response['state'] = "OK"
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
    else:
        duration = 0
        param = ""
        if (req['action'] <> "events"):
            if (req['action'] == "VolumeSet"):
                param = req['volume']
            if (req['action'] == "PlayPVR"):
                param = req['channel']
            if (req['action'] == "SprinklerOn"):
                param = str(req['id'])
            if (req['action'] == "Gate"):
                param = str(req['id'])

            action = ActionClass.ActionClass()
            duration = action.performAction(req['action'], param)

        obj = ActionClass.ActionClass()
        events = obj.getEvents()
        response = {}
        resEvents = []
        for event in events:
            row = {}
            row['eventType'] = event.id
            row['eventDesc'] = event.desc
            row['eventIcon'] = event.icon
            row['eventDate'] = event.date
            resEvents.append(row)
        response['events'] = resEvents
        response['eventDuration'] = duration
        r = json.dumps(response)
        w = crypt.Encode(r)
        return w
Ejemplo n.º 10
0
def action(actionName):
    if (isAuthNeed() == False):
        action = ActionClass.ActionClass()
        action.performAction(actionName)
        return render_template('events.html', events=action.getEvents())