コード例 #1
0
ファイル: main.py プロジェクト: hacknus/raspberry-pi-alarm
 def init_alarm(self, hour, minutes, days=[1, 2, 3, 4, 5]):
     self.alarms.append(Alarm(hour, minutes, days))
     self.dump_alarms()
コード例 #2
0
 def test_alarm_is_off_by_default(self):
     alarm = Alarm()
     self.assertFalse(alarm.is_alarm_on)
コード例 #3
0
 def test_check_too_high_temp_sounds_alarm(self):
     alarm = Alarm(sensor=TestSensor(32))
     alarm.check()
     self.assertTrue(alarm.is_alarm_on)
コード例 #4
0
    elif mqttmanager.status==status.getStatusCode("CLOSED"): #calibrate closed&unlocked state
        lock.calibrate_closed()
        mqttmanager.publish("esys/dadada/status", status.getStatusCode("CLOSED")) #2
        mqttmanager.status = 0

    elif mqttmanager.status==status.getStatusCode("OPEN"): #open state
        lock.calibrate_open()
        mqttmanager.publish("esys/dadada/status", status.getStatusCode("OPEN")) #2
        mqttmanager.status = 0

        currentStatus = status.getStatusCode("OPEN") #OPEN
    utime.sleep_ms(300)

    mqttmanager.client.check_msg()

alarm = Alarm()
alarm_on = False

while(True):
    if mqttmanager.alarm_status==1 and (currentStatus==status.getStatusCode("OPEN") or currentStatus==status.getStatusCode("CLOSED")):
        alarm.beep()

    if not wifi_conn.station.active():
        wifi_conn.connect()

    # update MQTT broker when door changes state
    nextState = lock.get_status()

    if currentStatus != nextState:
        currentStatus = nextState    # save the current door state
        mqttmanager.publish("esys/dadada/status", currentStatus)   #update mqtt
コード例 #5
0
 def test_check_normal_pressure_doesnt_sound_alarm(self):
     alarm = Alarm(sensor=TestSensor(18))
     alarm.check()
     self.assertFalse(alarm.is_alarm_on)
コード例 #6
0
ファイル: main.py プロジェクト: on4dak/Python-Alarm-Clock
def run():
    try:

        __alarmtime = ''
        __path_to_sounds = 'sounds'
        __fade_in = 60000
        __wait = [20, 40]
        __blacklist = ['instruments', 'other folder']
        __max_sounds = 5

        input_time = sys.argv[1]  # get alarmtime from command line
        alarm = Alarm(input_time, __path_to_sounds, __fade_in, __wait,
                      __blacklist, __max_sounds)
        # Setup GPIO cancel button
        alarm.init_gpio()

        # alarm.test_all_sounds()

        # Show popup with when alarm is set and cancel option
        # Not needed when running from php/apache
        # popup = Popup(alarm.get_alarmtime())

        # check if alarmtime == current time or if flag file exists to cancel alarm
        while (alarm.now() != alarm.get_alarmtime()
               and not alarm.cancel_file_exists()):
            # print("sleeping until alarm...")

            # setup alarm button to see when alarm is set when pressed
            alarm.check_alarm_button()
            time.sleep(1)

        # make alarm go off if flag file doesn't exist
        if not alarm.cancel_file_exists():
            print("Time to wake up!")
            alarm.init_mixer()
            alarm.play_sounds()
            print("")

            while mixer.get_busy() and not alarm.cancel_file_exists():
                # print("playing alarm...")
                # check if cancel button is pressed
                alarm.is_button_pressed()

                time.sleep(0.1)

    except (KeyboardInterrupt):
        print("--- Stopped alarm ---")

    except IndexError:
        print("Can't set alarm. Time needs to be given (HH:MM)")

    except ValueError as err:
        print(err)

    finally:
        mixer.quit()
        alarm.cleanup_gpio()
        try:
            alarm.remove_cancel_file()
            print("Deleted flag file")
        except (NameError, FileNotFoundError):
            print("No flag file to delete")

        try:
            alarm.remove_alarm_file()
        except (NameError, FileNotFoundError):
            print("No alarm set file to delete")
コード例 #7
0
def test_alarm_is_off_by_default():
    alarm = Alarm()
    assert not alarm.is_alarm_on
コード例 #8
0
from alarm import Alarm
from script import Script
import multiprocessing
import sys

if __name__ == '__main__':
    alarm = Alarm(seconds=5)

    p1 = multiprocessing.Process(target=Script.main)
    p2 = multiprocessing.Process(target=alarm.run)

    p_list = [p1, p2]

    for p in p_list:
        p.start()

    while True:
        if p1.is_alive() is False or p2.is_alive() is False:
            if p1.is_alive():
                p1.terminate()
                sys.exit(1)
            else:
                p2.terminate()
                sys.exit(0)
コード例 #9
0
ファイル: server.py プロジェクト: sjosund/spotify_alarm_clock
from argparse import ArgumentParser
from datetime import datetime

from flask import Flask, request, render_template

from alarm import Alarm


app = Flask(__name__)
alarm = Alarm(alarm_t=datetime.now(), active=False)


@app.route('/')
def index():
    return render_template('index.html', status=alarm.status(), alarm_t=alarm.time())


@app.route('/set_alarm', methods=['POST'])
def set_alarm():
    hour, minute = [int(n) for n in request.form['alarm_time'].split(':')]
    alarm.set_alarm(
        datetime(
            2000, 1, 1, hour, minute
        )
    )
    return render_template('index.html', status=alarm.status(), alarm_t=alarm.time())


@app.route('/deactivate')
def deactivate():
    alarm.deactivate()
コード例 #10
0
 def test_check_high_presure_sounds_alarm(self):
     alarm = Alarm(sensor=TestSensor(22))
     alarm.check()
     self.assertTrue(alarm.is_alarm_on)
コード例 #11
0
    def getClock(self):
        global weekdayNames
        with open('clock.html', 'r') as file:
            numberAlarms = 0
            nowCompare = datetime.now()
            minDiff = 8 * 24 * 60 * 60
            alarm = Alarm(0, 0, 0)
            day = 0
            for i in AlarmControl().getAlarms():
                if len(i.weekdays) > 0:
                    for x in i.weekdays:
                        numberAlarms = numberAlarms + 1
                        s2 = str(i.hour) + ":" + str(i.minute) + ":00"
                        s1 = str(nowCompare.hour) + ":" + str(
                            nowCompare.minute) + ":00"
                        FMT = '%H:%M:%S'
                        tdelta = datetime.strptime(
                            s2, FMT) - datetime.strptime(s1, FMT)
                        dayDiff = (7 + (x - nowCompare.weekday())) % 7
                        if dayDiff == 0 and tdelta.days == -1:
                            dayDiff = dayDiff + 7
                        #print "tdelta: "+str(tdelta)
                        #print "daydiff: "+str(dayDiff)
                        diff = tdelta.seconds + dayDiff * 24 * 60 * 60
                        #print "diff: "+str(diff)

                        if diff < minDiff:
                            minDiff = diff
                            alarm = i
                            day = x
                else:
                    numberAlarms = numberAlarms + 1
                    s2 = str(i.hour) + ":" + str(i.minute) + ":00"
                    s1 = str(nowCompare.hour) + ":" + str(
                        nowCompare.minute) + ":00"
                    FMT = '%H:%M:%S'
                    tdelta = datetime.strptime(s2, FMT) - datetime.strptime(
                        s1, FMT)
                    #dayDiff = 1
                    if tdelta.days == -1:
                        dayDiff = 1
                    else:
                        dayDiff = 0
                    #print "tdelta: "+str(tdelta)
                    #print "daydiff: "+str(dayDiff)
                    #diff=tdelta.seconds+dayDiff*24*60*60
                    diff = tdelta.seconds
                    #print "diff: "+str(diff)

                    if diff != 0:
                        if diff < minDiff:
                            minDiff = diff
                            alarm = i
                            day = nowCompare.weekday() + dayDiff

            text = ""
            if (numberAlarms > 0):
                print "closest alarm is: " + weekdayNames[day] + ", " + str(
                    alarm.hour) + ":" + str(alarm.minute)
                text = text + weekdayNames[day] + ", "
                text = text + str(alarm.hour).zfill(2) + ":" + str(
                    alarm.minute).zfill(2)

            if (numberAlarms > 1):
                text = text + " +" + str(numberAlarms - 1)

            return file.read().replace("$NEXT_ALARM$", text)
コード例 #12
0
ファイル: context.py プロジェクト: ipa-nhg/airbus_coop
 def requestAlarm(self, level, what="???"):
     self.emit(self.alarmTrigger, Alarm(self, level, what))
コード例 #13
0
def add_alarm():
    db = DB("alarms.json")
    db.add_alarm(Alarm())
コード例 #14
0
ファイル: main.py プロジェクト: tommyew97/HomeSystem-Public
def main():
    prices = Prices()
    weather = Weather()

    def wake_up_routine(number):
        if number == 1:
            w1 = Weather()
            send_message = "God morgen Tommy! I dag kan du forvente følgende temperaturer " + w1.min_max_weather(
            )
            channel = "raspberry-pi"
            slack_client.api_call("chat.postMessage",
                                  channel=channel,
                                  text=send_message)
            audio = AudioPlayer()
            audio.music_then_radio("random", 10, 300, "random")

    def send_bitcoin_price(channel):
        price_bit = prices.get_bitcoin_price()
        send_msg_bit = "Den nåværende prisen for Bitcoin er: " + price_bit[0]
        returns_msg_bit = "Din nåværende avkastning på Bitcoin er: " + price_bit[
            1]
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=send_msg_bit)
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=returns_msg_bit)

    def send_dogecoin_price(channel):
        price_dog = prices.get_dogecoin_price()
        send_msg_dog = "Den nåværende prisen for Dogecoin er: " + price_dog[0]
        # returns_msg_dog = "Din nåværende avkastning på Bitcoin er: " + price_dog[1]
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=send_msg_dog)
        # slack_client.api_call("chat.postMessage", channel=channel, text=returns_msg_dog)

    def send_litecoin_price(channel):
        price_ltc = prices.get_litecoin_price()
        send_msg_ltc = "Den nåværende prisen for Litecoin er: " + price_ltc[0]
        returns_msg_ltc = "Din nåværende avkastning på Litecoin er: " + price_ltc[
            1]
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=send_msg_ltc)
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=returns_msg_ltc)

    def morning_messages():
        time = datetime.now().time()
        hour = str(time)[0:2]
        global sent
        if hour == "09" and not sent:
            morning_prices()
            morning_weather()
            sent = True
        if hour == "10" and sent:
            sent = False

    def morning_weather():
        curr_weather = weather.min_max_weather().split()
        minimum = curr_weather[0]
        maximum = curr_weather[1]
        send_message = f"I dag kan du forvente temperaturer mellom {minimum} og {maximum}."
        channel = "raspberry-pi"
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=send_message)

    def morning_prices():
        channel = "raspberry-pi"
        good_morning_msg = "God morgen Tommy! Håper du får en fin dag :)"
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=good_morning_msg)
        send_bitcoin_price(channel)
        send_dogecoin_price(channel)
        send_litecoin_price(channel)

    tokens = {}
    with open('configs.json') as json_data:
        tokens = json.load(json_data)
    slack_client = SlackClient(tokens.get("slack_bot_token"))
    alarm = Alarm()
    if slack_client.rtm_connect(auto_reconnect=True):
        print("Connected!")
        while True:
            morning_messages()
            try:
                messages = slack_client.rtm_read()
            except:
                print("Disconnected.")
                print("Reconnecting...")
                time.sleep(20)
                slack_client.rtm_connect()
                messages = slack_client.rtm_read()
            if alarm.alarm_active():
                if alarm.check_alarm():
                    wake_up_routine(1)
            # print(messages)
            if messages:
                for message in messages:
                    if message.get("subtype") is None and message.get(
                            'user') is not None and message.get(
                                'text'
                            ) is not None and "BOT TEST" in message.get(
                                'text'):
                        channel = message["channel"]
                        send_message = "Responding to `BOT TEST` message sent by user <@%s>" % message[
                            "user"]
                        slack_client.api_call("chat.postMessage",
                                              channel=channel,
                                              text=send_message)

                    if message.get("subtype") is None and message.get(
                            'user') is not None and message.get(
                                'text') is not None and "audio" in message.get(
                                    'text'):
                        command = message.get('text')
                        command_lst = command.split()
                        command = " ".join(command_lst[1:])
                        au1 = AudioPlayer()
                        au1.audio_handler(command)

                    if message.get("subtype") is None and message.get(
                            'user') is not None and message.get(
                                'text'
                            ) is not None and "weather_now" in message.get(
                                'text'):
                        command = message.get('text')
                        command_lst = command.split()
                        command = " ".join(command_lst[1:])
                        weather = Weather()
                        send_message = weather.weather_handler(command)
                        channel = message["channel"]
                        slack_client.api_call("chat.postMessage",
                                              channel=channel,
                                              text=send_message)

                    if message.get("subtype") is None and message.get(
                            'user') is not None and message.get(
                                'text'
                            ) is not None and "weather_min_max" in message.get(
                                'text'):
                        weather = Weather()
                        send_message = weather.min_max_weather()
                        channel = message["channel"]
                        slack_client.api_call("chat.postMessage",
                                              channel=channel,
                                              text=send_message)

                    if message.get("subtype") is None and message.get(
                            'user') is not None and message.get(
                                'text'
                            ) is not None and "set_alarm" in message.get(
                                'text'):
                        command = message.get('text')
                        command_lst = command.split()
                        alarm.set_alarm(int(command_lst[1]),
                                        int(command_lst[2]),
                                        int(command_lst[3]),
                                        int(command_lst[4]))

                    if message.get("subtype") is None and message.get(
                            'user'
                    ) is not None and message.get(
                            'text'
                    ) is not None and "get_bitcoin_price" in message.get(
                            'text'):
                        send_bitcoin_price(message["channel"])

                    if message.get("subtype") is None and message.get(
                            'user'
                    ) is not None and message.get(
                            'text'
                    ) is not None and "get_dogecoin_price" in message.get(
                            'text'):
                        send_dogecoin_price(message["channel"])

                    if message.get("subtype") is None and message.get(
                            'user'
                    ) is not None and message.get(
                            'text'
                    ) is not None and "get_litecoin_price" in message.get(
                            'text'):
                        send_litecoin_price(message["channel"])

                    if message.get("subtype") is None and message.get(
                            'user'
                    ) is not None and message.get(
                            'text'
                    ) is not None and "get_crypto_price" in message.get(
                            'text'):
                        channel = message["channel"]
                        send_bitcoin_price(channel)
                        send_dogecoin_price(channel)
                        send_litecoin_price(channel)

            time.sleep(4)
    else:
        print("Connection Failed")
コード例 #15
0
    if request.method == 'GET':
        a = [
            passenger['heating']['chest'], passenger['heating']['hip'],
            passenger['heating']['feet']
        ]
        return make_response(jsonify(a), 200)
    else:
        r = request.get_json(silent=True)
        if r is not None:
            if len(r) == 3:
                setHeating(passenger['_id'], r)
                return make_response(
                    jsonify({'ok': 'Troy and Abed in the morning'}), 200)
            else:
                return make_response(jsonify({'error': 'wrong json object'}),
                                     401)
        else:
            return make_response(jsonify({'error': 'not a json post'}), 401)


if __name__ == '__main__':

    try:
        local = localcouch['passenger']
    except Exception as e:
        local = localcouch.create('passenger')

    a = Alarm()

    app.run(host="::", port=8036)
コード例 #16
0
 def setUp(self):
     print("setUp")
     self.alarmtTime = Alarm(datetime(date.year,date.month,date.day,18,20))
コード例 #17
0
from event_alarms import EventAlarms
from alarm import Alarm



with Alarm() as a:
    with EventAlarms(a):
        a.set_alarms(25, 10)
        a.set_alarms(20, 11)

print("exited context manager...")
a.set_alarms(10, 20)
コード例 #18
0
def alarm():
    return Alarm()
コード例 #19
0
def test_normal_pressure_alarm_stays_off():
    stub_sensor = Mock(Sensor)
    stub_sensor.sample_pressure.return_value = 18
    alarm = Alarm(stub_sensor)
    alarm.check()
    assert not alarm.is_alarm_on
コード例 #20
0
def test_check_too_low_pressure_sounds(low_sensor):
    alarm = Alarm(low_sensor)
    alarm.check()
    assert alarm.is_alarm_on
コード例 #21
0
def test_low_pressure_activates_alarm():
    alarm = Alarm(sensor = StubSensor())
    alarm.check()
    assert alarm.is_alarm_on
コード例 #22
0
def test_check_too_high_pressure_sounds(high_sensor):
    alarm = Alarm(high_sensor)
    alarm.check()
    assert alarm.is_alarm_on
コード例 #23
0
 def test_check_too_low_pressure_sounds_alarm(self):
     alarm = Alarm(sensor=TestSensor(15))
     alarm.check()
     self.assertTrue(alarm.is_alarm_on)
コード例 #24
0
def test_check_normal_pressure_doesnt_sound_alarm_with_mock(mocker):
    test_sensor = Mock(Sensor)
    test_sensor.sample_pressure.return_value = 18
    alarm = Alarm(test_sensor)
    alarm.check()
    assert not alarm.is_alarm_on
コード例 #25
0
 def test_check_with_pressure_ok_with_mock_fw(self):
     test_sensor = Mock(Sensor)
     test_sensor.sample_pressure.return_value = 18
     alarm = Alarm(test_sensor)
     alarm.check()
     self.assertFalse(alarm.is_alarm_on)
コード例 #26
0
def test_check_normal_pressure_doesnt_sound_alarm(normal_sensor):
    alarm = Alarm(normal_sensor)
    alarm.check()
    assert not alarm.is_alarm_on
コード例 #27
0
 def test_check_too_low_temp_sounds_alarm(self):
     alarm = Alarm(sensor=TestSensor(2))  # arrange
     alarm.check()  # act
     self.assertTrue(alarm.is_alarm_on)  # assert
コード例 #28
0
    def run():
        oled = Oled(12, 2, 15, 14, 13, 4)
        ssd = oled.ssd

        #home=14, left=13  right=11 back=7

        key = Key(33, 25, 26, 32)
        key.start()

        keyvalue = 15

        menu_index = 1
        menu = Menu(ssd, jsonfile)

        def lowpower(ssd):
            ssd.poweroff()
            machine.deepsleep()

        wake1 = Pin(33, mode=Pin.IN)

        #level parameter can be: esp32.WAKEUP_ANY_HIGH or esp32.WAKEUP_ALL_LOW

        esp32.wake_on_ext0(pin=wake1, level=esp32.WAKEUP_ALL_LOW)
        time_cnt = 0

        clock = Clock(ssd, key)
        alarm = Alarm(ssd, key, jsonfile)
        compass = Compass(ssd, key)
        weather = Weather(ssd, key, jsonfile)
        appstore = Appstore(ssd, key, jsonfile)
        sysset = Sysset(ssd, key, jsonfile)
        menu_dic = {
            1: menu.clock,
            2: menu.alarm,
            3: menu.compass,
            4: menu.weather,
            5: menu.appstore,
            6: menu.sysset
        }
        menu_event = {
            1: clock.run,
            2: alarm.run,
            3: compass.run,
            4: weather.run,
            5: appstore.run,
            6: sysset.run
        }
        while True:
            # time.sleep_ms(200)

            #time_cnt+=1
            #if time_cnt>50:
            #  lowpower(ssd)
            if key.read() == key.LEFT_PRESS:

                time_cnt = 0
                menu_index = menu_index - 1
                if menu_index <= 1:
                    menu_index = 1
                time.sleep_ms(200)
            elif key.read() == key.RIGHT_PRESS:

                time_cnt = 0
                menu_index = menu_index + 1
                if menu_index >= 6:
                    menu_index = 6
                time.sleep_ms(200)

            menu.disSensor(90, 0, 0.57)

            menu_dic[menu_index]()

            if key.read() == key.HOME_PRESS:
                time_cnt = 0
                ssd.fill(0)
                menu_event[menu_index]()
                ssd.fill(0)
                time.sleep_ms(200)
コード例 #29
0
 def test_check_normal_temp_doesnt_sounds_alarm(self):
     alarm = Alarm(sensor=TestSensor(20))
     alarm.check()
     self.assertFalse(alarm.is_alarm_on)
コード例 #30
0
ファイル: init_databases.py プロジェクト: lekez2005/wireless
def init_alarm():
    from alarm import Alarm
    a1 = Alarm("alarm1", "Loud speaker", "Alarm 1")
    db.session.add(a1)
    db.session.commit()
    print Alarm.query.all()