def index(): """ metoda tworząca stronę główną webowej aplikacji Args: temp -> zmienna przetrzymująca temperaturę dla pierwszego uruchomienia strony hum -> zmienna przetrzymująca wilgotność dla pierwszego uruchomienia strony move -> zmienna przetrzymująca stan czujnika ruchu dla pierwszego uruchomienia strony """ temp = temp_get("temperatura_zew") hum = temp_get("wilgotnosc_zew") move = "brak" #temp_get("kontaktron_brama") co2 = temp_get("co2_zew") """ if request.method == 'POST': if request.form['submit_button'] == 'Do Something': print("włącz termostat", file=sys.stderr) pass # do something elif request.form['submit_button'] == 'Do Something Else': print("wyłącz termostat", file=sys.stderr) pass# do something else else: pass # unknown """ return render_template('index.html', temp=temp, hum=hum, move=move, co2=co2)
def background_process(): """ Metoda używana do ciągłej aktualizacji informacji na stronie jsonify(nazwa zmiennej na stronie= wartość,....) """ #if temp_get("kontaktron_brama",nb_rows=1)==1: return jsonify(temperature=temp_get("temperatura_zew"), humidity=temp_get("wilgotnosc_zew"), movement="wykryto aktywność", co2=temp_get("co2_zew", nb_rows=1)) """elif temp_get("kontaktron_brama",nb_rows=1)==0:
def edge_detect(pin, collection): new = temp_get(collection) token = "iDP2biz4a0erZXDaMpuJaSLvbhc3mcon" #http://34.123.208.229:8080/iDP2biz4a0erZXDaMpuJaSLvbhc3mcon/get/V request = "http://34.123.208.229:8080/" + str(token) + "/get/V" + str(pin) old = requests.get(request) oldF = float(old.json()[0]) #print(round(np.mean(oldF),1)) #print(new!=oldF) if new != oldF: blynk.virtual_write(pin, '{:.2f}'.format(new))
def test_set_temp(self): cfg_sym=src.Configs.config_symulacja generate_data(cfg_sym.collections["temperature_in"], 24.0, mongodb=mongo) thr = StoppableThread(mongo2,"schedule_test",config=cfg_sym) thr.start() Symuluj(cfg_sym.collections["temperature_in"], thr.state ,init_temp=24.5,mongod=mongo) thr.join() score=temp_get(cfg_sym.collections["temperature_in"],150,mongodb=mongo) print(math.ceil(score)) print(round(score)) self.assertEqual(round(score),25.0)
def Symuluj(coll_name, state, dt=0.1, num_steps=150, init_temp=28.0, mongod=mongo): """ Metoda generująca prosty symulator w celu przeprowadzenia testu na wątkach i termostacie Args: t_change: zmienna odpowiedzialna za zmianę temperatury current: temperatura początkowa num_steps: zmienna określająca ile razy odbędzie się zmiana temperatury """ current=temp_get(coll_name, nb_rows=2, mongodb=mongod) for i in range(num_steps): if state.state==True: current+=dt else: current+=-dt time.sleep(0.5) mongod.log_data(coll_name, current, "test_temp", is_payloade=False) print("last state: ",state.state) print("temp: ", current)
def displayTemp(): """ metoda przygotowująca dane do przesłania na aplikację mobilną structure: blynk.virtual_write(nr pinu,'format'.format(zmienna z danymi)) """ while True: time.sleep(1) """ Przypisanie pinów: pin | czujnik ----+-------------------------- V0 | TEMPERATURA WEWNATRZ V1 | WILGOTNOŚĆ WEWNĄTRZ V2 | TEMPERATURA ZEWNĄTRZ V3 | WILGOTNOŚĆ ZEWNĄTRZ V4 | Co2 WEWNĄTRZ V5 | Co2 ZEWNĄTRZ V6 | PIR DRZWI V7 | PIR SALON V8 | PIR GARAŻ V9 | KONTAKTRON BRAMA V10 | KONTAKTRON FURTKA V11 | KONTAKTRON DRZWI V12 | MAGNETOMETR V13 | TRANSOPTOR V14 | ULTRADŹWIĘKOWY V15 | FOTODIODA V16 | RFID V17 | V18 | V19 | V20 | BRAMA V21 | ALARM V22 | GRZAŁKA V23 | WENTYLATOR """ #temp = temp_get("temperatura_wew") edge_detect(0, "temperatura_wew") edge_detect(1, "wilgotnosc_wew") edge_detect(2, "temperatura_zew") edge_detect(3, "wilgotnosc_zew") edge_detect(4, "co2_wew") edge_detect(5, "co2_zew") pir_drzwi = temp_get("pir_drzwi", nb_rows=1) if pir_drzwi == 1: icon_change(6, 1, BLYNK_AUTH) elif pir_drzwi == 0: icon_change(6, 2, BLYNK_AUTH) pir_salon = temp_get("pir_salon", nb_rows=1) if pir_salon == 1: icon_change(7, 1, BLYNK_AUTH) elif pir_salon == 0: icon_change(7, 2, BLYNK_AUTH) pir_garaz = temp_get("pir_garaz", nb_rows=1) if pir_garaz == 1: icon_change(8, 1, BLYNK_AUTH) elif pir_garaz == 0: icon_change(8, 2, BLYNK_AUTH) kontaktron_brama = temp_get("kontaktron_brama", nb_rows=1) if kontaktron_brama == 1: icon_change(9, 1, BLYNK_AUTH) elif kontaktron_brama == 0: icon_change(9, 2, BLYNK_AUTH) elif kontaktron_brama != 1 and kontaktron_brama != 0: icon_change(9, 3, BLYNK_AUTH) kontr_bramka = temp_get("kontaktron_bramka", nb_rows=1) if kontr_bramka == 1: icon_change(10, 1, BLYNK_AUTH) elif kontr_bramka == 0: icon_change(10, 2, BLYNK_AUTH) kontr_drzwi = temp_get("kontaktron_drzwi", nb_rows=1) if kontr_drzwi == 1: icon_change(11, 1, BLYNK_AUTH) elif kontr_drzwi == 0: icon_change(11, 2, BLYNK_AUTH) edge_detect(13, "wiatr_sila") edge_detect(14, "poziom") edge_detect(15, "swiatlo_zew") #edge_detect(16,"RFID") blynk.virtual_write(19, "ostatni tag:") blynk.virtual_write(18, temp_get("RFID", nb_rows=1)) """
def test_zx(self): """test z plikiem posiadającym mniej rekordów niż wymagana liczba podana w żądaniu""" avg_temp = temp_get("test_temp_coll_5", nb_rows=2, mongodb=mongo) self.assertEqual(avg_temp, 30.0)
def test_z(self): """test z plikiem posiadającym wartości nan""" avg_temp = temp_get("test_temp_coll_4", nb_rows=10, mongodb=mongo) self.assertEqual(avg_temp, 30.0)
def test_y(self): """ test sprawdzający poprawność działania funkcji odczytu metody """ avg_temp = temp_get("test_temp_coll_1", nb_rows=3, mongodb=mongo) print("list db:", mongo.my_client.list_database_names()) self.assertEqual(avg_temp, 28.5)