diff --git a/README.md b/README.md index 18654c08077cb30222a8be8cc03c8f20f9069b33..b7a9f8103dd494385084be16d78e22c331693551 100644 --- a/README.md +++ b/README.md @@ -1,296 +1,49 @@ # WstÄp Celem tego laboratorium jest zaznajomienie z obsĹugÄ systemu operacyjnego Linux oraz tworzenie oprogramowania dla systemĂłw wykorzystujÄ cych komunikacjÄ bezprzewodowÄ . -Laboratorium podzielone jest na 5 nastÄpujÄ cych po sobie blokĂłw ÄwiczeĹ (wymagane jest wykonanie wszystkich ÄwiczeĹ poprzedzajÄ cych). +Laboratorium podzielone jest na 5 nastÄpujÄ cych po sobie blokĂłw ÄwiczeĹ (wymagane jest wykonanie wszystkich ÄwiczeĹ z blokĂłw poprzedzajÄ cych). ## Laboratorium 0 **Opis**: W tym Äwiczeniu naleĹźy na swoim komputerze zainstalowaÄ Ĺrodowisko Visual Studio Code, ktĂłre bÄdzie podstawowym narzÄdziem do zdalnej pracy na komputerze jedno-ukĹadowym z zainstalowanym Ĺrodowiskiem Linux. **Instrukcja**: link -**Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ narzÄdzia i umiejÄtnoĹci do zdalnej pracy z komputerem jedno-ukĹadowym z systemem Linux (tworzenie katalogĂłw/plikĂłw/oprogramowania) +**Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ narzÄdzia i umiejÄtnoĹci do zdalnej pracy z komputerem jedno-ukĹadowym z systemem Linux (tworzenie katalogĂłw/plikĂłw/repozytorium git/oprogramowania) ## Laboratorium 1 **Opis**: W tym Äwiczeniu naleĹźy stworzyÄ prosty program do obsĹugi portĂłw GPIO, a nastÄpnie skonfigurowaÄ serwer "message brokera MQTT" do sterowania GPIO. Ponadto naleĹźy utworzyÄ skrypt startowy dla wĹasnych aplikacji. -**Instrukcja**: link +**Instrukcja**: [lab01/README.md](lab01/README.md) **Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ wiedzÄ na temat tworzenia programĂłw w jÄzyku python sterujÄ cych portami GPIO oraz wykorzystania kontenerĂłw (Docker) do uruchamiania innych serwisĂłw/aplikacji oraz obsĹugÄ wiadomoĹci MQTT oraz jak utworzyÄ skrypt startowy wykorzystujÄ cy multiplekser terminala "tmux". ## Laboratorium 2 **Opis**: W tym Äwiczeniu naleĹźy stworzyÄ aplikacjÄ wykorzystujÄ cÄ wielofunkcyjny sensor BME280. Ponadto wykorzystany zostanie zbiĂłr oprogramowania do automatycznego zbierania, archiwizacji oraz wizualizacji danych pomiarowych. -**Instrukcja**: link +**Instrukcja**: [lab02/README.md](lab02/README.md) **Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ wiedzÄ na temat obsĹugi czujnikĂłw pomiarowych w systemie Linux (Linux Industrial I/O Subsystem) oraz wykorzystania zbioru oprogramowania Telegraf+InfluxDB+Grafana do wyĹwietlania wynikĂłw pomiarowych. ## Laboratorium 3 **Opis**: W tym Äwiczeniu naleĹźy stworzyÄ aplikacjÄ wykorzystujÄ cÄ czytnik RFID. -**Instrukcja**: link +**Instrukcja**: [lab03/README.md](lab03/README.md) **Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ wiedzÄ na temat technologi RFID. ## Laboratorium 4 **Opis**: W tym Äwiczeniu naleĹźy stworzyÄ oprogramowanie dla mikro-kontrolera Nordic nRF52 wykorzystujÄ ce sensors BME280 oraz transmisje WiFi. -**Instrukcja**: link +**Instrukcja**: [lab04/README.md](lab04/README.md) **Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ wiedzÄ na temat tworzenia oprogramowania dla systemu czasu rzeczywistego uruchomionego na platformie nRF52. ## Laboratorium 5 **Opis**: W tym Äwiczeniu naleĹźy stworzyÄ oprogramowanie dla mikro-kontrolera Nordic nRF52 wykorzystujÄ ce czytnik RFID oraz transmisje BLE. -**Instrukcja**: link +**Instrukcja**: [lab05/README.md](lab05/README.md) **Wynik**: Po wykonaniu tego Äwiczenia uczestnik kursu bÄdzie posiadaĹ wiedzÄ na temat tworzenia oprogramowania dla systemu czasu rzeczywistego uruchomionego na platformie nRF52. -# Instalacja VCS -- PobraÄ ze strony *.exe [link](https://code.visualstudio.com/) -- ZainstalowaÄ , uruchomiÄ -- DoinstalowaÄ dodatek Remote SSH - - -- PoĹÄ czenie SSH z pĹytkÄ prototypowÄ (DevKitNUC) - - UstaliÄ IP devKit (MAC->IP) - -| SSH ADDR | MAC WIFI | MAC ETH | IP ETH | Hostname | -| :--------------------- | :---------------- | :---------------- | :------------- | :------- | -| root@185.244.98.2:2301 | 7c:5c:f8:0d:53:72 | c0:3f:d5:67:dd:2d | 192.168.49.83 | ztb01 | -| root@185.244.98.2:2302 | 80:19:34:e6:d7:00 | c0:3f:d5:67:dd:b2 | 192.168.49.107 | ztb02 | -| root@185.244.98.2:2303 | 7c:5c:f8:0d:53:72 | c0:3f:d5:67:dd:2d | 192.168.49.83 | ztb03 | -| root@185.244.98.2:2304 | 80:19:34:e6:d7:00 | c0:3f:d5:67:dd:b2 | 192.168.49.107 | ztb04 | -| root@185.244.98.2:2305 | 7c:5c:f8:0d:53:72 | c0:3f:d5:67:dd:2d | 192.168.49.83 | ztb05 | -| 7c:5c:f8:46:6b:3f | 192.168.49.142 | c0:3f:d5:67:dc:77 | ? | -| 7c:5c:f8:46:76:c0 | 192.168.49.93 | c0:3f:d5:68:22:51 | ? | -| ac:72:89:4c:0c:07 | 192.168.49.135 | ? | ? | -| 00:0e:8e:88:a0:3b | 192.168.49.91 | ? | ? | -| 00:0e:8e:88:94:4b | 192.168.49.30 | ? | ? | -| 4c:5e:0c:13:b4:e8 | 192.168.49.87 | ? | ? | -| 00:0e:8e:88:a0:2a | 192.168.49.122 | ? | ? | - - - Ctr+Shift+P "Remote-SSH: Connect to host" - - Po poĹÄ czeniu (w lewym dolnym rogu wyĹwietli sie adres IP) - - UruchomiÄ terminal (skrĂłt Ctr+`) - - OtworzyÄ drzewo katalogĂłw w VCS (panel Explorer, skrĂłt Ctr+Shift+E) - -# Utworzenie uĹźytkownika, katalogu i repozytorium na git.pg.edu.pl -- Tworzenie nowego katalogu/pliku na DevKitNUC: - - W terminalu: -```bash -cd <sciezka_do_katalogu_nadrzednego> -mkdir <nazwa_katalogu> -cd <nazwa_katalogu> -touch <nazwa_pliku> -``` - - VCS: W Panelu Explorera -> New folder/New file - - - -# Utworzenie/aktywacja konto na git.pg.edu.pl: -- Aktywacja konta na [git.pg.gda.pl](https://git.pg.edu.pl/users/sign_in) - - Pierwsze logowanie za pomocÄ "Logowanie PG" - - - ZmieniÄ hasĹo dostÄpu przez HTTPS (Settings->Password) - - - UtworzyÄ projekt dla lab. ZTB - - -- Import repozytorium git na DevKitNUC: - - W terminalu: -```bash -cd <sciezka_do_katalogu_nadrzednego> -git clone <adres repozytorium> -``` - - -# Utworzenie roboczego Ĺrodowiska dla programĂłw w pythonie - ## Instalacja: -- PrzejĹcie do katalogu repozytorium git: -```bash -cd <sciezka_do_katalogu_repozytorium> -``` -- Utworzenie lokalnego Ĺrodowiska: -```bash -virtualenv -p python3.6 virtenv -``` -gdzie: virtenv -to nazwa katalogu, w ktĂłrym zostanie utworzone lokalne Ĺrodowisko python -- katalog virtenv naleĹźy dodaÄ do pliku .gitignore -```bash -touch .gitignore -echo "virtenv" >> .gitignore -git add .gitignore -``` -## Aktywacja lokalnego Ĺrodowiska python: -```bash -source virtenv/bin/activate -``` -- Test poprawnej instalacji Ĺrodowiska lokalnego: -```bash -pip -V -``` - - -# Sterowanie diodÄ LED -## Instalacja biblioteki GPIO w lokalnym Ĺrodowisku python: -```bash -pip install gpio -``` -## Zapisanie uĹźywanych bibliotek w pliku: -```bash -pip freeze > requirements.txt -``` -## Instalacja wymaganych bibliotek (w przypadku instalacji w nowym Ĺrodowisku): -```bash -pip install -r requirements.txt -``` - - -## Utworzenie skryptu sterujÄ cego dioda LED: -- PodĹÄ czenie DIODY LED do devKit - - -- PrzykĹadowa aplikacja -```python -#!/usr/bin/env python3.6 -import time -import gpio -print( "Test LED@I2C1_DATA\n") -gpio.setup(490, gpio.OUT) -while(True): - gpio.set(490, 1) - time.sleep(0.5) - gpio.set(490, 0) - time.sleep(0.5) -``` - -# Odczyt stanu przycisku: - - gpio.setup(491, gpio.IN) - - gpio.read(491) # I2C1_CLK - - zmiana ustawieĹ poziomu loggera z gpio: -```python -gpio.log.setLevel(logging.INFO) -``` -Zadanie: -- WyĹwietliÄ informacje na terminalu, tyko wtedy gdy zmieni sie stan przycisku (narastajÄ ce lub opadajÄ ce zbocze) -- ZaĹwieciÄ diodÄ kiedy wykryto narastajÄ ce zbocze, wygasiÄ diodÄ gdy wykryto opadajÄ ce zbocze na przycisku. - -# Uruchomienie kontenera z MQTT -- Usuniecie starego: -```bash -docker rm mosquitto -``` -- Pobranie aktualnego obrazu kontenera: -```bash -docker pull eclipse-mosquitto -``` -- Utworzenie nowego z domyĹlnÄ konfiguracjÄ (porty 1883, 9001): -```bash -docker create -p 1883:1883 -p 9001:9001 --name mosquitto eclipse-mosquitto -``` -- Uruchomienie kontenera: -```bash -docker start mosquitto -``` -- Sprawdzenie dziaĹania: - - Sprawdzenie otwartych portĂłw w systemie -```bash -lsof -i | grep 1883 -lsof -i | grep 9001 -docker ps -``` - - PodĹÄ czenie do log'Ăłw dockera: - ```bash - docker attach mosquitto - ``` - - odĹÄ czenie do log'Ăłw dockera : - UWAGA: to nie dziaĹa w VSC: ^P^Q (hold the Ctrl, press P, press Q, release Ctrl), workaround: [lnik](https://github.com/microsoft/vscode/issues/35722#issuecomment-334802447) - -# Komunikacja przez MQTT -- Instalacja biblioteki do MQTT w lokalnym Ĺrodowisku python: - ```bash - pip install paho-mqtt - ``` -- odbiorca wiadomoĹci z MQTT: -```python - import paho.mqtt.client as mqtt -# The callback for when the client receives a CONNACK response from the server. -def on_connect(client, userdata, flags, rc): - print("Connected with result code "+str(rc)) - # Subscribing in on_connect() means that if we lose the connection and - # reconnect then subscriptions will be renewed. - client.subscribe("sensors/#") -# The callback for when a PUBLISH message is received from the server. -def on_message(client, userdata, msg): - print(msg.topic+" "+str(msg.payload)) -client = mqtt.Client() -client.on_connect = on_connect -client.on_message = on_message -client.connect("localhost", 1883, 60) -# Blocking call that processes network traffic, dispatches callbacks and -# handles reconnecting. -# Other loop*() functions are available that give a threaded interface and a -# manual interface. -client.loop_forever() -``` -- nadawca wiadomoĹci w MQTT: -```python -import paho.mqtt.client as mqtt -import time -client = mqtt.Client() -client.connect("localhost", 1883, 60) -while(True): - client.publish("sensors/490", "1") - time.sleep(0.5) - client.publish("sensors/490", "0") - time.sleep(0.5) -``` -# Autostart aplikacji -## Cron -scheduler systemowy -- Edycja uruchamianych skryptĂłw: -```bash -crontab -e -``` -- ZawartoĹÄ crontab -```bash -SHELL=/bin/bash -@reboot /root/ztb/tmux_script.sh -``` -## Skrypt tmux_script.sh -```bash -#!/bin/bash -MY_PATH=$(dirname $(realpath -s $0)) -# Create a new tmux session named helloworld... -/usr/bin/tmux new-session -d -s helloworld -/usr/bin/tmux set-option -t helloworld remain-on-exit on -/usr/bin/tmux send-keys -t helloworld "source /root/.bashrc" C-m -/usr/bin/tmux send-keys -t helloworld "source /root/.profile" C-m -/usr/bin/tmux send-keys -t helloworld "date" C-m -/usr/bin/tmux send-keys -t helloworld "source virtenv/bin/active" C-m -/usr/bin/tmux send-keys -t helloworld "echo 'tutaj uruchom swoja app1'" C-m -/usr/bin/tmux split-window -t helloworld -/usr/bin/tmux send-keys -t helloworld "echo 'tutaj uruchom swoja app2 w drugim panelu'" C-m -``` -- PodĹÄ czenie do sesji tmux uruchomionej podczas startu systemu -```bash -tmux a -``` -- SkrĂłty tmux: - - podziaĹ pionowy okna: CTR+B " - - podziaĹ poziomy okna: CTR+B % - - nowe okno: CTR+B c - - nastÄpne okno: CTR+B n - - wyjĹcie bez zamykania okna: CTR+B d - - zamkniÄcie panelu: CTR+d -# Zadania: -- PoĹÄ czenie z MQTT z innego NUC (odczyt stanu przycisku) - - <img src="img/ztb_lab_button_other_NUC_schem.png" width="220"> -- Sterowanie LED na innym NUC - - <img src="img/ztb_lab_led_other_NUC_schem.png" width="220"> -- Sterowanie krzyĹźowe Button@NUC1->LED@NUC2, Button@NUC2->LED@NUC1 -- Uruchomienie skryptĂłw podczas startu systemu -- Dodatkowe: Sterowanie wieloma LED@NUCX...NUCY diff --git a/lab00/README.md b/lab00/README.md index 15a5a8b050a5533ae5c1c74ae7c8bd65b4dc8aca..ca96cd9ab20ab106e5595b9e5e136d394b8aa952 100644 --- a/lab00/README.md +++ b/lab00/README.md @@ -2,7 +2,7 @@ - PobraÄ ze strony *.exe [link](https://code.visualstudio.com/) - ZainstalowaÄ , uruchomiÄ - DoinstalowaÄ dodatek Remote SSH - + - PoĹÄ czenie SSH z pĹytkÄ prototypowÄ (DevKitNUC) - UstaliÄ IP devKit (MAC->IP) @@ -43,11 +43,11 @@ touch <nazwa_pliku> # Utworzenie/aktywacja konto na git.pg.edu.pl: - Aktywacja konta na [git.pg.gda.pl](https://git.pg.edu.pl/users/sign_in) - Pierwsze logowanie za pomocÄ "Logowanie PG" - + - ZmieniÄ hasĹo dostÄpu przez HTTPS (Settings->Password) - + - UtworzyÄ projekt dla lab. ZTB - + - Import repozytorium git na DevKitNUC: - W terminalu: diff --git a/lab01/README.md b/lab01/README.md new file mode 100644 index 0000000000000000000000000000000000000000..beddaa2aafd3fd5a429fecb53ed75b9e5b511dcc --- /dev/null +++ b/lab01/README.md @@ -0,0 +1,191 @@ +# Utworzenie roboczego Ĺrodowiska dla programĂłw w pythonie + ## Instalacja: +- PrzejĹcie do katalogu repozytorium git: +```bash +cd <sciezka_do_katalogu_repozytorium> +``` +- Utworzenie lokalnego Ĺrodowiska: +```bash +virtualenv -p python3.6 virtenv +``` +gdzie: virtenv -to nazwa katalogu, w ktĂłrym zostanie utworzone lokalne Ĺrodowisko python +- katalog virtenv naleĹźy dodaÄ do pliku .gitignore +```bash +touch .gitignore +echo "virtenv" >> .gitignore +git add .gitignore +``` +## Aktywacja lokalnego Ĺrodowiska python: +```bash +source virtenv/bin/activate +``` +- Test poprawnej instalacji Ĺrodowiska lokalnego: +```bash +pip -V +``` + + +# Sterowanie diodÄ LED +## Instalacja biblioteki GPIO w lokalnym Ĺrodowisku python: +```bash +pip install gpio +``` +## Zapisanie uĹźywanych bibliotek w pliku: +```bash +pip freeze > requirements.txt +``` +## Instalacja wymaganych bibliotek (w przypadku instalacji w nowym Ĺrodowisku): +```bash +pip install -r requirements.txt +``` + + +## Utworzenie skryptu sterujÄ cego dioda LED: +- PodĹÄ czenie DIODY LED do devKit + + +- PrzykĹadowa aplikacja +```python +#!/usr/bin/env python3.6 +import time +import gpio +print( "Test LED@I2C1_DATA\n") +gpio.setup(490, gpio.OUT) +while(True): + gpio.set(490, 1) + time.sleep(0.5) + gpio.set(490, 0) + time.sleep(0.5) +``` + +# Odczyt stanu przycisku: + - gpio.setup(491, gpio.IN) + - gpio.read(491) # I2C1_CLK + - zmiana ustawieĹ poziomu loggera z gpio: +```python +gpio.log.setLevel(logging.INFO) +``` +Zadanie: +- WyĹwietliÄ informacje na terminalu, tyko wtedy gdy zmieni sie stan przycisku (narastajÄ ce lub opadajÄ ce zbocze) +- ZaĹwieciÄ diodÄ kiedy wykryto narastajÄ ce zbocze, wygasiÄ diodÄ gdy wykryto opadajÄ ce zbocze na przycisku. + +# Uruchomienie kontenera z MQTT +- Usuniecie starego: +```bash +docker rm mosquitto +``` +- Pobranie aktualnego obrazu kontenera: +```bash +docker pull eclipse-mosquitto +``` +- Utworzenie nowego z domyĹlnÄ konfiguracjÄ (porty 1883, 9001): +```bash +docker create -p 1883:1883 -p 9001:9001 --name mosquitto eclipse-mosquitto +``` +- Uruchomienie kontenera: +```bash +docker start mosquitto +``` +- Sprawdzenie dziaĹania: + - Sprawdzenie otwartych portĂłw w systemie +```bash +lsof -i | grep 1883 +lsof -i | grep 9001 +docker ps +``` + - PodĹÄ czenie do log'Ăłw dockera: + ```bash + docker attach mosquitto + ``` + - odĹÄ czenie do log'Ăłw dockera : + UWAGA: to nie dziaĹa w VSC: ^P^Q (hold the Ctrl, press P, press Q, release Ctrl), workaround: [lnik](https://github.com/microsoft/vscode/issues/35722#issuecomment-334802447) + +# Komunikacja przez MQTT +- Instalacja biblioteki do MQTT w lokalnym Ĺrodowisku python: + ```bash + pip install paho-mqtt + ``` +- odbiorca wiadomoĹci z MQTT: +```python + import paho.mqtt.client as mqtt +# The callback for when the client receives a CONNACK response from the server. +def on_connect(client, userdata, flags, rc): + print("Connected with result code "+str(rc)) + # Subscribing in on_connect() means that if we lose the connection and + # reconnect then subscriptions will be renewed. + client.subscribe("sensors/#") + +# The callback for when a PUBLISH message is received from the server. +def on_message(client, userdata, msg): + print(msg.topic+" "+str(msg.payload)) + +client = mqtt.Client() +client.on_connect = on_connect +client.on_message = on_message +client.connect("localhost", 1883, 60) + +# Blocking call that processes network traffic, dispatches callbacks and +# handles reconnecting. +# Other loop*() functions are available that give a threaded interface and a +# manual interface. +client.loop_forever() +``` +- nadawca wiadomoĹci w MQTT: +```python +import paho.mqtt.client as mqtt +import time +client = mqtt.Client() +client.connect("localhost", 1883, 60) +while(True): + client.publish("sensors/490", "1") + time.sleep(0.5) + client.publish("sensors/490", "0") + time.sleep(0.5) +``` +# Autostart aplikacji +## Cron -scheduler systemowy +- Edycja uruchamianych skryptĂłw: +```bash +crontab -e +``` +- ZawartoĹÄ crontab +```bash +SHELL=/bin/bash +@reboot /root/ztb/tmux_script.sh +``` +## Skrypt tmux_script.sh +```bash +#!/bin/bash +MY_PATH=$(dirname $(realpath -s $0)) +# Create a new tmux session named helloworld... +/usr/bin/tmux new-session -d -s helloworld +/usr/bin/tmux set-option -t helloworld remain-on-exit on +/usr/bin/tmux send-keys -t helloworld "source /root/.bashrc" C-m +/usr/bin/tmux send-keys -t helloworld "source /root/.profile" C-m +/usr/bin/tmux send-keys -t helloworld "date" C-m +/usr/bin/tmux send-keys -t helloworld "source virtenv/bin/active" C-m +/usr/bin/tmux send-keys -t helloworld "echo 'tutaj uruchom swoja app1'" C-m +/usr/bin/tmux split-window -t helloworld +/usr/bin/tmux send-keys -t helloworld "echo 'tutaj uruchom swoja app2 w drugim panelu'" C-m +``` +- PodĹÄ czenie do sesji tmux uruchomionej podczas startu systemu +```bash +tmux a +``` +- SkrĂłty tmux: + - podziaĹ pionowy okna: CTR+B " + - podziaĹ poziomy okna: CTR+B % + - nowe okno: CTR+B c + - nastÄpne okno: CTR+B n + - wyjĹcie bez zamykania okna: CTR+B d + - zamkniÄcie panelu: CTR+d +# Zadania: +- PoĹÄ czenie z MQTT z innego NUC (odczyt stanu przycisku) + + <img src="lab01/img/ztb_lab_button_other_NUC_schem.png" width="220"> +- Sterowanie LED na innym NUC + + <img src="lab01/img/ztb_lab_led_other_NUC_schem.png" width="220"> +- Sterowanie krzyĹźowe Button@NUC1->LED@NUC2, Button@NUC2->LED@NUC1 +- Uruchomienie skryptĂłw podczas startu systemu +- Dodatkowe: Sterowanie wieloma LED@NUCX...NUCY \ No newline at end of file diff --git a/lab02/README.md b/lab02/README.md new file mode 100644 index 0000000000000000000000000000000000000000..986862af892eebf02748993e9242fad9fc2e66a4 --- /dev/null +++ b/lab02/README.md @@ -0,0 +1,127 @@ +## PodĹÄ czenie ukĹadu BME280 do pinĂłw DevKitNUC magistrali i2c: + + + +TODO: PoprawiÄ schemat (prawidĹowe poĹÄ czenie, zmniejszyÄ rozmiar, zrobiÄ prawidĹowy model SVG zĹÄ cza NUC dla Fritzing) + +## Dodanie BME280 do magistrali i2c: +  +- Test prawidĹowego podĹÄ czenia przewodĂłw sensora BME280 z NucDevKit (na magistrali i2c powinno wykryÄ urzÄ dzenie pod adresem 0x76): + ```bash +modprobe i2c_dev +i2cdetect -y -r 8 + ``` +- Aktywacja sterownika IIO dla sensora BME280 (adres 0x76@i2c magistrala 8) w systemie +```bash +modprobe i2c_dev +echo "bme280 0x76" > /sys/bus/i2c/devices/i2c-8/new_device +``` +- Test prawidĹowej aktywacji sterownika IIO dla sensora BME280 : +```bash + dmesg | tail + ls /sys/bus/iio/devices/iio\:device0/ + ``` +- Odczytanie wartoĹci temp./ciĹnienia/wilgotnoĹci: + ```bash + cat /sys/bus/iio/devices/iio\:device0/in_temp_input +``` +## Odczyt wartoĹci ze sterownika IIO w pythonie +```python +path = "/sys/bus/iio/devices/iio:device0/in_temp_input" +with open(path,'r',encoding = 'utf-8') as f: + print(f.read()) # read the entire file +``` + +## Zadanie (5pkt.): + DodaÄ obsĹugÄ czujnika BME280 w serwisie MQTT (docker mosquitto z lab.1) + - nadawaÄ wiadomoĹci MQTT z ustalonym interwaĹem (np. 5s) w topic 'sensors/bme280/' - aplikacja sensorsBME280.py (1pkt.) + <img src="lab02/img/ztb_lab2_schem_bme280.svg" width="240"> + - odczytywaÄ wĹasne wiadomoĹci z temp. z MQTT (aplikacja recvBME280.py) (1pkt.) + - wysĹaÄ wiadomoĹci MQTT z aktualnÄ temp., kiedy wykryto opadajÄ cy zbocze na przycisku (wciĹniÄcie) (zmodyfikowaÄ sendBME280.py, tak aby odbieraĹ wiadomoĹci MQTT wysyĹane z aplikacji button.py z lab1) (1pkt.) + <img src="lab02/img/ztb_lab2_schem_bme280_button.svg" width="240"> + - odczytaÄ wiadomoĹci z temp. z innych DevKitNUC (zmodyfikowaÄ recvBME280.py, tak aby dobieraĹ wiadomoĹci z kliku kanaĹĂłw MQTT) (1pkt.) + <img src="lab02/img/ztb_lab2_schem_bme280_button_otherNUC.svg" width="240"> +- utwĂłrz aplikacje alarmTemp.py: odczytuj wiadomoĹci z topic 'sensors/bme280', gdy temp>28st to zapal LED wysyĹajÄ c wiadomoĹci na topic 'led/490'),gdy temp.<28st. LED wygaszona, skorzystaj z apliakacji led.py z lab1 (1pkt.) + <img src="lab02/img/ztb_lab2_schem_bme280_alarm.svg" width="240"> + +## UtworzyÄ nowe oraz uruchomiÄ kontenery Telegraf, Influx, Grafana +### Telegraf + +- Utworzenie kontenera + + UWAGA: przed uruchomieniem komendy '''docker create ...''' w katalogu projektu musi znajdowaÄ siÄ plik konfiguracyjny [telegraf.conf](telegraf.conf). ProszÄ zaznajomiÄ sie z jego zawartoĹciÄ . +```bash +docker pull telegraf + docker rm telegraf +docker create -v $(pwd)/:/etc/telegraf:ro --name telegraf telegraf +``` + - Start kontenera +```bash +docker start telegraf +``` + - PodĹÄ czenie do uruchomionego kontenera w celu obserwacji wyjĹcie (output) +```bash +docker attach telegraf +``` + - Restart (tylko jeĹli zachodzi potrzeba aktualizacji pliku [telegraf.conf](telegraf.conf)) +```bash +docker restart telegraf +``` +### Influx + +- Utworzenie + ```bash +docker pull influxdb +docker rm influxdb +docker create -p 8086:8086 -v influxdb:/var/lib/influxdb --name influxdb influxdb +docker run --rm \ + -e INFLUXDB_DB=sensors -e INFLUXDB_ADMIN_ENABLED=true \ + -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=ztb123 \ + -e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=telegraf \ + -v influxdb:/var/lib/influxdb \ + influxdb /init-influxdb.sh + +``` +- Start kontenera +```bash +docker start influxdb +``` + - PodĹÄ czenie do uruchomionego kontenera w celu obserwacji wyjĹcie (output) +```bash +docker attach influxdb +``` + + +### Grafana + - Utworzenie +```bash +docker pull grafana/grafana +docker rm grafana +docker volume create grafana-storage +docker create -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=ztb123" -e "GF_AUTH_ANONYMOUS_ENABLED=TRUE" -e "GF_AUTH_ANONYMOUS_ORG_NAME=GUT" -e "GR_AUTH_DISABLE_LOGIN_FORM=TRUE" grafana/grafana +``` + - Start kontenera grafana +```bash +docker start grafana +``` + - PodĹÄ czenie do uruchomionego kontenera w celu obserwacji wyjĹcie (std.output) +```bash +docker attach grafana +``` +- Test uruchomionych kontenerĂłw +```bash +docker ps +``` + + + - PodĹÄ czenie do interfejsu www Grafana: + http://Adres_IP_NUC:3000 + +  + +### Zadania (2pkt.): +- Konfiguracja Grafany w celu wyĹwietlenia danych pomiarowych (1pkt.): + - Skonfiguruj poĹÄ czenie z bazÄ influx + - UtwĂłrz nowy dashboard wyĹwietlajÄ cy temp. + +- Skonfiguruj Telegraf w taki sposĂłb, aby pobieraĹ dane pomiarowych MQTT z innych DevNuc - zmodyfikuj (1pkt.) diff --git a/lab02/img/bme280_test.gif b/lab02/img/bme280_test.gif new file mode 100644 index 0000000000000000000000000000000000000000..96c3b0a837bba4139b9b1aa8fd6cbf6eb0a2b50e Binary files /dev/null and b/lab02/img/bme280_test.gif differ diff --git a/lab02/img/dockerInfulxS.gif b/lab02/img/dockerInfulxS.gif new file mode 100644 index 0000000000000000000000000000000000000000..6772ce7914e5a42cc4e1c372d4a8494eebfa1c56 Binary files /dev/null and b/lab02/img/dockerInfulxS.gif differ diff --git a/lab02/img/dockertelegrafS2.gif b/lab02/img/dockertelegrafS2.gif new file mode 100644 index 0000000000000000000000000000000000000000..533bda01afd7464494db09f6c9b78c480aa15e3b Binary files /dev/null and b/lab02/img/dockertelegrafS2.gif differ diff --git a/lab02/img/grafanaustawieniaDB.png b/lab02/img/grafanaustawieniaDB.png new file mode 100644 index 0000000000000000000000000000000000000000..89b04ebec85f0732ad0cf0b4e2fd37a42daababe Binary files /dev/null and b/lab02/img/grafanaustawieniaDB.png differ diff --git a/lab02/img/lab2.png b/lab02/img/lab2.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef8065f1c14ed0cecc6f0da0cacf24d900c71c4 Binary files /dev/null and b/lab02/img/lab2.png differ diff --git a/lab02/img/tig.gif b/lab02/img/tig.gif new file mode 100644 index 0000000000000000000000000000000000000000..68a8b7d12b5b7ad52333b93ff74deeb82de9265f Binary files /dev/null and b/lab02/img/tig.gif differ diff --git a/lab02/img/ztb_lab2_schem_bme280.svg b/lab02/img/ztb_lab2_schem_bme280.svg new file mode 100644 index 0000000000000000000000000000000000000000..f21b6a20737908f411e3577440248e1297c608c0 --- /dev/null +++ b/lab02/img/ztb_lab2_schem_bme280.svg @@ -0,0 +1,985 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="227.25096mm" + height="65.298538mm" + viewBox="0 0 227.25096 65.298538" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="ztb_lab2_schem_bme280.svg"> + <defs + id="defs2"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3807" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotS"> + <path + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path3805" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3567" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3565" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3491" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3489" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="SquareM" + orient="auto" + refY="0" + refX="0" + id="SquareM" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1215" + d="M -5,-5 V 5 H 5 V -5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.4)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1160" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1148" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Sstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1154" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.2,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934-2" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4902627" + inkscape:cx="418.31908" + inkscape:cy="200.66427" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(62.553635,-50.427048)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-58.100498" + y="86.092102" + id="text27"><tspan + sodipodi:role="line" + x="-58.100498" + y="86.092102" + style="font-size:7.05555534px;stroke-width:0.26458332px" + id="tspan29">sensorBME280.py</tspan></text> + <g + id="g290" + transform="translate(-9.395167,-94.218678)" /> + <text + id="text325" + y="114.26142" + x="114.86746" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="114.26142" + x="114.86746" + id="tspan323" + sodipodi:role="line">recvBME280.py</tspan></text> + <g + id="g1533" + transform="translate(-1.3363476,-87.342063)"> + <text + id="text110" + y="158.35393" + x="57.658592" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="158.35393" + x="57.658592" + id="tspan108" + sodipodi:role="line">Mosquitto</tspan><tspan + id="tspan112" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="163.6456" + x="57.658592" + sodipodi:role="line">MQTT</tspan><tspan + id="tspan114" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="168.93726" + x="57.658592" + sodipodi:role="line">Broker</tspan></text> + <path + inkscape:connector-curvature="0" + id="path1526" + d="m 51.808521,150.54217 h 11.225321 l 5.445617,9.35444 -5.512435,9.72193 H 51.541253 l -5.311982,-9.38785 z" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4645" + transform="rotate(0.94276893,555.65472,92.71156)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="91.356277" + y="59.623699" + id="text333" + transform="rotate(15.583653)"><tspan + sodipodi:role="line" + id="tspan331" + x="91.356277" + y="59.623699" + style="font-size:5.64444447px;stroke-width:0.26458332px">subscribe("sensors/bme280/#")</tspan></text> + <path + inkscape:connector-curvature="0" + id="path335" + d="M 67.051433,82.414609 143.69012,103.97268" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727)" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000004, 0.50000001;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282)" + d="M 141.33358,109.53465 64.104759,88.029647" + id="path1715" + inkscape:connector-curvature="0" /> + <g + transform="matrix(0.65617761,0.16564772,-0.16564772,0.65617761,42.497112,7.3640485)" + id="g2247"> + <g + id="g2205" + transform="translate(90.740182,-50.780764)"> + <text + id="text2189" + y="156.87811" + x="-29.533283" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.87811" + x="-29.533283" + id="tspan2187" + sodipodi:role="line">publish("temp,:23.4")</tspan></text> + </g> + <g + transform="translate(106.37327,-39.134171)" + id="g2225"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12.708021" + y="145.27306" + id="text2209" + transform="rotate(1.7657766)"><tspan + sodipodi:role="line" + id="tspan2207" + x="12.708021" + y="145.27306" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("pres,:997.3")</tspan></text> + <text + transform="rotate(1.7657766)" + id="text2081" + y="153.66335" + x="11.985039" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="153.66335" + x="11.985039" + id="tspan2079" + sodipodi:role="line">publish("hum,:78")</tspan></text> + </g> + </g> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5)" + d="m 42.436078,72.969902 h -82.72368" + id="path1715-2" + inkscape:connector-curvature="0" /> + <g + id="g3924" + transform="translate(-7.6218512,-90.955517)"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle3767" + cx="155.56081" + cy="193.90738" + r="5.8113842" /> + <rect + y="190.7887" + x="152.01535" + height="5.9058781" + width="7.0398064" + id="rect3905" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3907" + d="m 152.29883,192.58408 h 6.56734" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <rect + y="191.62651" + x="152.83641" + height="0.16704345" + width="0.16704345" + id="rect3909" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3914" + width="0.16704345" + height="0.16704345" + x="153.89473" + y="191.62651" /> + <rect + y="191.62651" + x="154.95305" + height="0.16704345" + width="0.16704345" + id="rect3916" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + id="g1576" + transform="translate(-0.97647774,-7.9005926)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-38.928452" + y="62.737072" + id="text62"><tspan + sodipodi:role="line" + id="tspan60" + x="-38.928452" + y="62.737072" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/temp,:23.4")</tspan></text> + <g + transform="matrix(0.03363891,0,0,0.03363891,-39.222755,56.412332)" + id="g1549"> + <g + id="g1528"> + <g + id="g6" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)"> + <path + id="path2-3" + d="m 261.67,296.581 v -180.47 h -49.168 v 180.462 c -19.719,9.275 -33.468,29.171 -33.468,52.41 0,32.06 25.985,58.044 58.045,58.044 32.058,0 58.051,-25.985 58.051,-58.044 0,-23.231 -13.741,-43.125 -33.46,-52.402 z" + inkscape:connector-curvature="0" /> + <path + id="path4-6" + d="m 364.786,157.086 c 9.051,0 16.389,-7.338 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 329.004 V 91.927 c 0,-0.136 -0.015,-0.264 -0.015,-0.4 h 35.797 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 322.715 C 309.368,24.424 276.06,0 237.079,0 186.389,0 145.15,41.238 145.15,91.927 v 158.431 c -27.289,25.465 -42.799,60.949 -42.799,98.441 0,74.291 60.445,134.728 134.735,134.728 74.281,0 134.719,-60.437 134.719,-134.728 0,-37.5 -15.51,-72.984 -42.8,-98.449 v -27.706 h 35.782 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 h -35.782 v -32.779 h 35.781 z m -23.2,191.713 c 0,57.628 -46.881,104.509 -104.5,104.509 -57.628,0 -104.516,-46.88 -104.516,-104.509 0,-30.945 13.637,-60.132 37.405,-80.075 3.417,-2.865 5.395,-7.106 5.395,-11.572 V 91.927 c 0,-34.028 27.681,-61.709 61.709,-61.709 34.027,0 61.708,27.681 61.708,61.709 v 165.217 c 0,4.466 1.977,8.707 5.395,11.572 23.768,19.943 37.404,49.138 37.404,80.083 z" + inkscape:connector-curvature="0" /> + </g> + <g + id="g8" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g10" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g12" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g14" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g16" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g18" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g20" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g22" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g24" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g26" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g28" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g30" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g32" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g34" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g36" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="60.12804" + id="text1580"><tspan + sodipodi:role="line" + id="tspan1578" + x="-39.90493" + y="60.12804" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/pres,:997.3")</tspan></text> + <g + id="g1814"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="65.126755" + id="text1626"><tspan + sodipodi:role="line" + id="tspan1624" + x="-39.90493" + y="65.126755" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/hum,:78")</tspan></text> + <g + transform="matrix(0.04557466,0,0,0.04557466,-40.263237,60.716166)" + id="g1762"> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g10-7"> + <path + inkscape:connector-curvature="0" + d="m 209.306,50.798 c -2.452,-3.337 -7.147,-4.055 -10.485,-1.602 -3.338,2.453 -4.055,7.147 -1.603,10.485 54.576,74.266 66.032,123.541 66.032,151.8 0,27.691 -8.272,52.794 -23.293,70.685 -17.519,20.866 -42.972,31.446 -75.651,31.446 -73.031,0 -98.944,-55.018 -98.944,-102.131 0,-52.227 28.103,-103.234 51.679,-136.829 25.858,-36.847 52.11,-61.415 52.37,-61.657 3.035,-2.819 3.209,-7.565 0.39,-10.6 -2.819,-3.034 -7.565,-3.209 -10.599,-0.39 -1.11,1.031 -27.497,25.698 -54.254,63.765 -24.901,35.428 -54.586,89.465 -54.586,145.71 0,31.062 9.673,59.599 27.236,80.353 20.361,24.061 50.345,36.779 86.708,36.779 36.794,0 66.926,-12.726 87.139,-36.801 17.286,-20.588 26.806,-49.117 26.806,-80.33 C 278.25,156.216 240.758,93.597 209.306,50.798 Z" + id="path2-5" /> + <path + inkscape:connector-curvature="0" + d="m 198.43,148.146 -95.162,95.162 c -2.929,2.929 -2.929,7.678 0,10.606 1.465,1.464 3.385,2.197 5.304,2.197 1.919,0 3.839,-0.732 5.304,-2.197 l 95.162,-95.162 c 2.929,-2.929 2.929,-7.678 0,-10.606 -2.931,-2.929 -7.679,-2.929 -10.608,0 z" + id="path4-3" /> + <path + inkscape:connector-curvature="0" + d="m 191.965,207.899 c -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 z m 0,33.212 c -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.085,-9.106 9.106,-9.106 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 z" + id="path6-5" /> + <path + inkscape:connector-curvature="0" + d="m 125.178,194.162 c 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 z m 0,-33.213 c 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.084,-9.106 9.106,-9.106 z" + id="path8-6" /> + </g> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g12-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g14-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g16-1" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g18-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g20-7" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g22-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g24-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g26-3" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g28-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g30-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g32-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g34-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g36-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g38" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g40" /> + </g> + </g> + <g + id="g2007"> + <circle + r="5.8113842" + cy="73.012321" + cx="-47.083607" + id="path3333" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + transform="matrix(0.09148046,0,0,0.09148046,-49.828021,70.267908)" + id="g96"> + <g + id="g94"> + <circle + id="circle2" + r="1" + cy="5" + cx="5" /> + <circle + id="circle4" + r="1" + cy="5" + cx="55" /> + <circle + id="circle6" + r="1" + cy="55" + cx="5" /> + <circle + id="circle8" + r="1" + cy="56" + cx="11" /> + <circle + id="circle10" + r="1" + cy="56" + cx="15" /> + <circle + id="circle12" + r="1" + cy="56" + cx="19" /> + <circle + id="circle14" + r="1" + cy="56" + cx="23" /> + <circle + id="circle16" + r="1" + cy="39" + cx="38" /> + <circle + id="circle18" + r="1" + cy="39" + cx="34" /> + <circle + id="circle20" + r="1" + cy="36" + cx="36" /> + <circle + id="circle22" + r="1" + cy="39" + cx="30" /> + <circle + id="circle24" + r="1" + cy="39" + cx="26" /> + <circle + id="circle26" + r="1" + cy="36" + cx="32" /> + <circle + id="circle28" + r="1" + cy="36" + cx="28" /> + <circle + id="circle30" + r="1" + cy="39" + cx="22" /> + <circle + id="circle32" + r="1" + cy="36" + cx="24" /> + <circle + id="circle34" + r="1" + cy="33" + cx="38" /> + <circle + id="circle36" + r="1" + cy="33" + cx="34" /> + <circle + id="circle38" + r="1" + cy="30" + cx="36" /> + <circle + id="circle40" + r="1" + cy="33" + cx="30" /> + <circle + id="circle42" + r="1" + cy="33" + cx="26" /> + <circle + id="circle44" + r="1" + cy="30" + cx="32" /> + <circle + id="circle46" + r="1" + cy="30" + cx="28" /> + <circle + id="circle48" + r="1" + cy="33" + cx="22" /> + <circle + id="circle50" + r="1" + cy="30" + cx="24" /> + <circle + id="circle52" + r="1" + cy="27" + cx="38" /> + <circle + id="circle54" + r="1" + cy="27" + cx="34" /> + <circle + id="circle56" + r="1" + cy="24" + cx="36" /> + <circle + id="circle58" + r="1" + cy="27" + cx="30" /> + <circle + id="circle60" + r="1" + cy="27" + cx="26" /> + <circle + id="circle62" + r="1" + cy="24" + cx="32" /> + <circle + id="circle64" + r="1" + cy="24" + cx="28" /> + <circle + id="circle66" + r="1" + cy="27" + cx="22" /> + <circle + id="circle68" + r="1" + cy="24" + cx="24" /> + <circle + id="circle70" + r="1" + cy="21" + cx="38" /> + <circle + id="circle72" + r="1" + cy="21" + cx="34" /> + <circle + id="circle74" + r="1" + cy="21" + cx="30" /> + <circle + id="circle76" + r="1" + cy="21" + cx="26" /> + <circle + id="circle78" + r="1" + cy="21" + cx="22" /> + <circle + id="circle80" + r="1" + cy="55" + cx="55" /> + <path + id="path82" + d="m 51,25 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 21 H 45 V 19.357 C 45,16.955 43.045,15 40.643,15 H 39 V 11 H 37 V 9 C 37,8.447 36.552,8 36,8 35.448,8 35,8.447 35,9 v 2 H 33 V 9 C 33,8.447 32.552,8 32,8 31.448,8 31,8.447 31,9 v 2 H 29 V 9 C 29,8.447 28.552,8 28,8 27.448,8 27,8.447 27,9 v 2 H 25 V 9 C 25,8.447 24.552,8 24,8 23.448,8 23,8.447 23,9 v 2 h -2 v 4 H 19.357 C 16.955,15 15,16.955 15,19.357 V 21 h -4 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 h 4 v 1.643 C 15,43.045 16.955,45 19.357,45 H 21 v 4 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v -4 h 1.643 C 43.045,45 45,43.045 45,40.643 V 39 h 4 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 25 Z M 15,37 H 13 V 23 h 2 z m 8,-24 h 14 v 2 H 23 Z M 37,47 H 23 v -2 h 14 z m 6,-26 v 18 1.643 C 43,41.943 41.942,43 40.643,43 H 39 21 19.357 C 18.058,43 17,41.942 17,40.643 V 39 21 19.357 C 17,18.057 18.058,17 19.357,17 H 21 39 40.643 c 1.3,0 2.357,1.058 2.357,2.357 z m 4,16 H 45 V 23 h 2 z" + inkscape:connector-curvature="0" /> + <circle + id="circle84" + r="1" + cy="37" + cx="4" /> + <circle + id="circle86" + r="1" + cy="41" + cx="4" /> + <circle + id="circle88" + r="1" + cy="45" + cx="4" /> + <circle + id="circle90" + r="1" + cy="49" + cx="4" /> + <path + id="path92" + d="M 54.501,0 H 46 V 1 C 46,2.654 44.654,4 43,4 41.346,4 40,2.654 40,1 V 0 H 5.499 C 2.467,0 0,2.467 0,5.499 V 12 h 4 v 2 H 0 V 54.501 C 0,57.533 2.467,60 5.499,60 H 40 v -1 c 0,-1.654 1.346,-3 3,-3 1.654,0 3,1.346 3,3 v 1 h 8.501 C 57.533,60 60,57.533 60,54.501 V 5.499 C 60,2.467 57.533,0 54.501,0 Z M 58,17 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 V 54.501 C 58,56.431 56.431,58 54.501,58 H 47.899 C 47.435,55.721 45.414,54 43,54 c -2.414,0 -4.435,1.721 -4.899,4 H 5.499 C 3.569,58 2,56.431 2,54.501 V 16 H 6 V 10 H 2 V 5.499 C 2,3.569 3.569,2 5.499,2 h 32.602 c 0.464,2.279 2.484,4 4.899,4 2.415,0 4.435,-1.721 4.899,-4 h 6.602 C 56.431,2 58,3.569 58,5.499 Z" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + id="g98" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g100" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g102" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g104" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g106" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g108" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g110" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g112" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g114" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g116" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g118" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g120" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g122" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g124" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g126" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g2145" + transform="translate(-40.375566,19.674164)"> + <g + id="g8-1" + transform="matrix(0.01707528,0,0,0.01707528,-22.348822,30.582131)"> + <path + id="path4-8" + d="M 861.5,169.2 C 771.9,71.4 643.1,10 500,10 229.4,10 10,229.4 10,500 h 91.9 c 0,-219.9 178.3,-398.1 398.1,-398.1 117.7,0 223.5,51.1 296.4,132.4 L 653.1,377.5 H 990 V 40.6 Z" + inkscape:connector-curvature="0" /> + <path + id="path6-7" + d="M 898.1,500 C 898.1,719.9 719.8,898.1 500,898.1 382.3,898.1 276.5,847 203.6,765.7 L 346.9,622.4 H 10 V 959.3 L 138.5,830.8 C 228.1,928.7 356.9,990 500,990 770.6,990 990,770.6 990,500 Z" + inkscape:connector-curvature="0" /> + </g> + <text + id="text2021" + y="40.060581" + x="-19.355824" + style="font-style:normal;font-weight:normal;font-size:7.76111126px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.76111126px;stroke-width:0.26458332px" + y="40.060581" + x="-19.355824" + id="tspan2019" + sodipodi:role="line">5s</tspan></text> + </g> + <g + id="g81" + transform="matrix(0.00844961,0,0,0.00844961,-44.677164,56.505598)"> + <g + id="g6-0"> + <g + id="g4"> + <path + inkscape:connector-curvature="0" + id="path2" + d="M 256,0 C 114.51,0 0,114.497 0,256 0,397.491 114.497,512 256,512 397.49,512 512,397.503 512,256 512,114.509 397.503,0 256,0 Z m 0,478.609 C 133.254,478.609 33.391,378.747 33.391,256 33.391,133.253 133.254,33.391 256,33.391 c 122.746,0 222.609,99.863 222.609,222.609 0,122.746 -99.863,222.609 -222.609,222.609 z" /> + </g> + </g> + <g + id="g12-23"> + <g + id="g10-75"> + <path + inkscape:connector-curvature="0" + id="path8" + d="M 256,66.783 C 151.29,66.783 66.783,151.738 66.783,256 c 0,48.619 18.872,97.248 55.421,133.797 6.52,6.52 17.091,6.52 23.611,0 l 23.611,-23.611 c 6.52,-6.519 6.52,-17.09 0,-23.611 -6.519,-6.52 -17.09,-6.52 -23.611,0 l -11.177,11.177 c -19.241,-23.851 -30.408,-52.1 -33.501,-81.056 h 15.734 c 9.22,0 16.696,-7.475 16.696,-16.696 0,-9.22 -7.475,-16.696 -16.696,-16.696 h -15.725 c 3.094,-28.955 14.261,-57.198 33.5,-81.05 l 11.17,11.169 c 6.52,6.52 17.091,6.52 23.611,0 6.519,-6.519 6.519,-17.091 0,-23.611 l -11.175,-11.175 c 23.276,-18.804 51.227,-30.356 81.054,-33.5 v 15.732 c 0,9.22 7.475,16.696 16.696,16.696 9.22,0 16.696,-7.475 16.696,-16.696 v -15.731 c 29.827,3.144 57.777,14.698 81.054,33.5 L 281.72,206.67 c -7.699,-4.03 -16.444,-6.323 -25.719,-6.323 -30.687,0 -55.652,24.966 -55.652,55.652 0,30.687 24.966,55.652 55.652,55.652 30.687,0 55.652,-24.966 55.652,-55.652 0,-9.275 -2.293,-18.02 -6.323,-25.718 l 72.026,-72.026 c 19.239,23.85 30.406,52.094 33.5,81.05 H 395.13 c -9.22,0 -16.696,7.475 -16.696,16.696 0,9.22 7.475,16.696 16.696,16.696 h 15.734 c -3.093,28.956 -14.26,57.206 -33.501,81.056 l -11.177,-11.177 c -6.519,-6.519 -17.091,-6.519 -23.611,0 -6.52,6.52 -6.52,17.091 0,23.611 l 23.611,23.611 c 6.52,6.52 17.091,6.52 23.611,0 C 426.279,353.315 445.218,304.714 445.218,256 445.217,151.681 360.676,66.783 256,66.783 Z m 0,211.478 c -12.275,0 -22.261,-9.986 -22.261,-22.261 0,-12.275 9.986,-22.261 22.261,-22.261 12.275,0 22.261,9.986 22.261,22.261 0,12.275 -9.986,22.261 -22.261,22.261 z" /> + </g> + </g> + <g + id="g18-9"> + <g + id="g16-2"> + <path + inkscape:connector-curvature="0" + id="path14" + d="m 272.696,345.043 h -33.391 c -27.618,0 -50.087,22.469 -50.087,50.087 0,27.618 22.469,50.087 50.087,50.087 h 33.391 c 27.618,0 50.087,-22.469 50.087,-50.087 0,-27.618 -22.469,-50.087 -50.087,-50.087 z m 0,66.783 h -33.391 c -9.206,0 -16.696,-7.49 -16.696,-16.696 0,-9.206 7.49,-16.696 16.696,-16.696 h 33.391 c 9.206,0 16.696,7.49 16.696,16.696 0,9.206 -7.49,16.696 -16.696,16.696 z" /> + </g> + </g> + <g + id="g20-2" /> + <g + id="g22-8" /> + <g + id="g24-97" /> + <g + id="g26-36" /> + <g + id="g28-1" /> + <g + id="g30-2" /> + <g + id="g32-9" /> + <g + id="g34-3" /> + <g + id="g36-1" /> + <g + id="g38-9" /> + <g + id="g40-4" /> + <g + id="g42" /> + <g + id="g44" /> + <g + id="g46" /> + <g + id="g48" /> + </g> + </g> +</svg> diff --git a/lab02/img/ztb_lab2_schem_bme280_alarm.svg b/lab02/img/ztb_lab2_schem_bme280_alarm.svg new file mode 100644 index 0000000000000000000000000000000000000000..430361bf6fefe7c7bbfc6cc87f92aa66378fc9c9 --- /dev/null +++ b/lab02/img/ztb_lab2_schem_bme280_alarm.svg @@ -0,0 +1,1583 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="227.11314mm" + height="138.04544mm" + viewBox="0 0 227.11314 138.04544" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="ztb_lab2_schem_bme280_alarm.svg"> + <defs + id="defs2"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3807" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotS"> + <path + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path3805" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3567" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3565" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3491" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3489" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="SquareM" + orient="auto" + refY="0" + refX="0" + id="SquareM" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1215" + d="M -5,-5 V 5 H 5 V -5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.4)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1160" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1148" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Sstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1154" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.2,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934-2" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209-8" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3649" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path3647" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5-4" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6-5" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725-0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725-4" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-7" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280-65" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mstart" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path1166" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1719" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart" + inkscape:collect="always"> + <path + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1717" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5-4-4" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6-5-3" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.212749" + inkscape:cx="513.48748" + inkscape:cy="365.85683" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(66.083636,-35.438421)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-66.280006" + y="89.850769" + id="text27"><tspan + sodipodi:role="line" + x="-66.280006" + y="89.850769" + style="font-size:7.05555534px;stroke-width:0.26458332px" + id="tspan29">sensorBME280.py</tspan></text> + <g + id="g290" + transform="translate(-9.395167,-94.218678)" /> + <text + id="text325" + y="114.26142" + x="114.86746" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="114.26142" + x="114.86746" + id="tspan323" + sodipodi:role="line">alarmTemp.py</tspan></text> + <g + id="g1533" + transform="translate(-1.3363476,-87.342063)"> + <text + id="text110" + y="158.35393" + x="57.658592" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="158.35393" + x="57.658592" + id="tspan108" + sodipodi:role="line">Mosquitto</tspan><tspan + id="tspan112" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="163.6456" + x="57.658592" + sodipodi:role="line">MQTT</tspan><tspan + id="tspan114" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="168.93726" + x="57.658592" + sodipodi:role="line">Broker</tspan></text> + <path + inkscape:connector-curvature="0" + id="path1526" + d="m 51.808521,150.54217 h 11.225321 l 5.445617,9.35444 -5.512435,9.72193 H 51.541253 l -5.311982,-9.38785 z" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4645" + transform="rotate(0.94276893,555.65472,92.71156)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="86.846222" + y="59.305977" + id="text333" + transform="rotate(15.583653)"><tspan + sodipodi:role="line" + id="tspan331" + x="86.846222" + y="59.305977" + style="font-size:5.64444447px;stroke-width:0.26458332px">subscribe("sensors/bme280/temp")</tspan></text> + <path + inkscape:connector-curvature="0" + id="path335" + d="M 67.051433,82.414609 143.69012,103.97268" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727)" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000004, 0.50000001;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282)" + d="M 141.33358,109.53465 64.104759,88.029647" + id="path1715" + inkscape:connector-curvature="0" /> + <g + transform="matrix(0.65617761,0.16564772,-0.16564772,0.65617761,42.497112,7.3640485)" + id="g2247"> + <g + id="g2205" + transform="translate(90.740182,-50.780764)"> + <text + id="text2189" + y="156.89394" + x="-22.751703" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.89394" + x="-22.751703" + id="tspan2187" + sodipodi:role="line">publish("temp,:23.4")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="34.166042" + y="157.72321" + id="text7023"><tspan + sodipodi:role="line" + id="tspan7021" + x="34.166042" + y="157.72321" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("temp,:29.0")</tspan></text> + </g> + <g + transform="translate(106.37327,-39.134171)" + id="g2225" /> + </g> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5)" + d="m 42.791161,67.998743 h -82.72368" + id="path1715-2" + inkscape:connector-curvature="0" /> + <g + id="g3924" + transform="translate(-7.6218512,-90.955517)"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle3767" + cx="155.56081" + cy="193.90738" + r="5.8113842" /> + <rect + y="190.7887" + x="152.01535" + height="5.9058781" + width="7.0398064" + id="rect3905" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3907" + d="m 152.29883,192.58408 h 6.56734" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <rect + y="191.62651" + x="152.83641" + height="0.16704345" + width="0.16704345" + id="rect3909" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3914" + width="0.16704345" + height="0.16704345" + x="153.89473" + y="191.62651" /> + <rect + y="191.62651" + x="154.95305" + height="0.16704345" + width="0.16704345" + id="rect3916" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + id="g1576" + transform="translate(-0.97647774,-7.9005926)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-38.928452" + y="62.737072" + id="text62"><tspan + sodipodi:role="line" + id="tspan60" + x="-38.928452" + y="62.737072" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/temp,:23.4")</tspan></text> + <g + transform="matrix(0.03363891,0,0,0.03363891,-39.222755,56.412332)" + id="g1549"> + <g + id="g1528"> + <g + id="g6" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)"> + <path + id="path2-3" + d="m 261.67,296.581 v -180.47 h -49.168 v 180.462 c -19.719,9.275 -33.468,29.171 -33.468,52.41 0,32.06 25.985,58.044 58.045,58.044 32.058,0 58.051,-25.985 58.051,-58.044 0,-23.231 -13.741,-43.125 -33.46,-52.402 z" + inkscape:connector-curvature="0" /> + <path + id="path4-6" + d="m 364.786,157.086 c 9.051,0 16.389,-7.338 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 329.004 V 91.927 c 0,-0.136 -0.015,-0.264 -0.015,-0.4 h 35.797 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 322.715 C 309.368,24.424 276.06,0 237.079,0 186.389,0 145.15,41.238 145.15,91.927 v 158.431 c -27.289,25.465 -42.799,60.949 -42.799,98.441 0,74.291 60.445,134.728 134.735,134.728 74.281,0 134.719,-60.437 134.719,-134.728 0,-37.5 -15.51,-72.984 -42.8,-98.449 v -27.706 h 35.782 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 h -35.782 v -32.779 h 35.781 z m -23.2,191.713 c 0,57.628 -46.881,104.509 -104.5,104.509 -57.628,0 -104.516,-46.88 -104.516,-104.509 0,-30.945 13.637,-60.132 37.405,-80.075 3.417,-2.865 5.395,-7.106 5.395,-11.572 V 91.927 c 0,-34.028 27.681,-61.709 61.709,-61.709 34.027,0 61.708,27.681 61.708,61.709 v 165.217 c 0,4.466 1.977,8.707 5.395,11.572 23.768,19.943 37.404,49.138 37.404,80.083 z" + inkscape:connector-curvature="0" /> + </g> + <g + id="g8" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g10" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g12" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g14" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g16" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g18" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g20" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g22" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g24" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g26" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g28" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g30" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g32" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g34" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g36" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="60.12804" + id="text1580"><tspan + sodipodi:role="line" + id="tspan1578" + x="-39.90493" + y="60.12804" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/pres,:997.3")</tspan></text> + <g + id="g1814"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="65.126755" + id="text1626"><tspan + sodipodi:role="line" + id="tspan1624" + x="-39.90493" + y="65.126755" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/hum,:78")</tspan></text> + <g + transform="matrix(0.04557466,0,0,0.04557466,-40.263237,60.716166)" + id="g1762"> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g10-7"> + <path + inkscape:connector-curvature="0" + d="m 209.306,50.798 c -2.452,-3.337 -7.147,-4.055 -10.485,-1.602 -3.338,2.453 -4.055,7.147 -1.603,10.485 54.576,74.266 66.032,123.541 66.032,151.8 0,27.691 -8.272,52.794 -23.293,70.685 -17.519,20.866 -42.972,31.446 -75.651,31.446 -73.031,0 -98.944,-55.018 -98.944,-102.131 0,-52.227 28.103,-103.234 51.679,-136.829 25.858,-36.847 52.11,-61.415 52.37,-61.657 3.035,-2.819 3.209,-7.565 0.39,-10.6 -2.819,-3.034 -7.565,-3.209 -10.599,-0.39 -1.11,1.031 -27.497,25.698 -54.254,63.765 -24.901,35.428 -54.586,89.465 -54.586,145.71 0,31.062 9.673,59.599 27.236,80.353 20.361,24.061 50.345,36.779 86.708,36.779 36.794,0 66.926,-12.726 87.139,-36.801 17.286,-20.588 26.806,-49.117 26.806,-80.33 C 278.25,156.216 240.758,93.597 209.306,50.798 Z" + id="path2-5" /> + <path + inkscape:connector-curvature="0" + d="m 198.43,148.146 -95.162,95.162 c -2.929,2.929 -2.929,7.678 0,10.606 1.465,1.464 3.385,2.197 5.304,2.197 1.919,0 3.839,-0.732 5.304,-2.197 l 95.162,-95.162 c 2.929,-2.929 2.929,-7.678 0,-10.606 -2.931,-2.929 -7.679,-2.929 -10.608,0 z" + id="path4-3" /> + <path + inkscape:connector-curvature="0" + d="m 191.965,207.899 c -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 z m 0,33.212 c -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.085,-9.106 9.106,-9.106 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 z" + id="path6-5" /> + <path + inkscape:connector-curvature="0" + d="m 125.178,194.162 c 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 z m 0,-33.213 c 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.084,-9.106 9.106,-9.106 z" + id="path8-6" /> + </g> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g12-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g14-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g16-1" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g18-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g20-7" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g22-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g24-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g26-3" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g28-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g30-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g32-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g34-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g36-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g38" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g40" /> + </g> + </g> + <g + id="g2007"> + <circle + r="5.8113842" + cy="73.012321" + cx="-47.083607" + id="path3333" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + transform="matrix(0.09148046,0,0,0.09148046,-49.828021,70.267908)" + id="g96"> + <g + id="g94"> + <circle + id="circle2" + r="1" + cy="5" + cx="5" /> + <circle + id="circle4" + r="1" + cy="5" + cx="55" /> + <circle + id="circle6" + r="1" + cy="55" + cx="5" /> + <circle + id="circle8" + r="1" + cy="56" + cx="11" /> + <circle + id="circle10" + r="1" + cy="56" + cx="15" /> + <circle + id="circle12" + r="1" + cy="56" + cx="19" /> + <circle + id="circle14" + r="1" + cy="56" + cx="23" /> + <circle + id="circle16" + r="1" + cy="39" + cx="38" /> + <circle + id="circle18" + r="1" + cy="39" + cx="34" /> + <circle + id="circle20" + r="1" + cy="36" + cx="36" /> + <circle + id="circle22" + r="1" + cy="39" + cx="30" /> + <circle + id="circle24" + r="1" + cy="39" + cx="26" /> + <circle + id="circle26" + r="1" + cy="36" + cx="32" /> + <circle + id="circle28" + r="1" + cy="36" + cx="28" /> + <circle + id="circle30" + r="1" + cy="39" + cx="22" /> + <circle + id="circle32" + r="1" + cy="36" + cx="24" /> + <circle + id="circle34" + r="1" + cy="33" + cx="38" /> + <circle + id="circle36" + r="1" + cy="33" + cx="34" /> + <circle + id="circle38" + r="1" + cy="30" + cx="36" /> + <circle + id="circle40" + r="1" + cy="33" + cx="30" /> + <circle + id="circle42" + r="1" + cy="33" + cx="26" /> + <circle + id="circle44" + r="1" + cy="30" + cx="32" /> + <circle + id="circle46" + r="1" + cy="30" + cx="28" /> + <circle + id="circle48" + r="1" + cy="33" + cx="22" /> + <circle + id="circle50" + r="1" + cy="30" + cx="24" /> + <circle + id="circle52" + r="1" + cy="27" + cx="38" /> + <circle + id="circle54" + r="1" + cy="27" + cx="34" /> + <circle + id="circle56" + r="1" + cy="24" + cx="36" /> + <circle + id="circle58" + r="1" + cy="27" + cx="30" /> + <circle + id="circle60" + r="1" + cy="27" + cx="26" /> + <circle + id="circle62" + r="1" + cy="24" + cx="32" /> + <circle + id="circle64" + r="1" + cy="24" + cx="28" /> + <circle + id="circle66" + r="1" + cy="27" + cx="22" /> + <circle + id="circle68" + r="1" + cy="24" + cx="24" /> + <circle + id="circle70" + r="1" + cy="21" + cx="38" /> + <circle + id="circle72" + r="1" + cy="21" + cx="34" /> + <circle + id="circle74" + r="1" + cy="21" + cx="30" /> + <circle + id="circle76" + r="1" + cy="21" + cx="26" /> + <circle + id="circle78" + r="1" + cy="21" + cx="22" /> + <circle + id="circle80" + r="1" + cy="55" + cx="55" /> + <path + id="path82" + d="m 51,25 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 21 H 45 V 19.357 C 45,16.955 43.045,15 40.643,15 H 39 V 11 H 37 V 9 C 37,8.447 36.552,8 36,8 35.448,8 35,8.447 35,9 v 2 H 33 V 9 C 33,8.447 32.552,8 32,8 31.448,8 31,8.447 31,9 v 2 H 29 V 9 C 29,8.447 28.552,8 28,8 27.448,8 27,8.447 27,9 v 2 H 25 V 9 C 25,8.447 24.552,8 24,8 23.448,8 23,8.447 23,9 v 2 h -2 v 4 H 19.357 C 16.955,15 15,16.955 15,19.357 V 21 h -4 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 h 4 v 1.643 C 15,43.045 16.955,45 19.357,45 H 21 v 4 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v -4 h 1.643 C 43.045,45 45,43.045 45,40.643 V 39 h 4 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 25 Z M 15,37 H 13 V 23 h 2 z m 8,-24 h 14 v 2 H 23 Z M 37,47 H 23 v -2 h 14 z m 6,-26 v 18 1.643 C 43,41.943 41.942,43 40.643,43 H 39 21 19.357 C 18.058,43 17,41.942 17,40.643 V 39 21 19.357 C 17,18.057 18.058,17 19.357,17 H 21 39 40.643 c 1.3,0 2.357,1.058 2.357,2.357 z m 4,16 H 45 V 23 h 2 z" + inkscape:connector-curvature="0" /> + <circle + id="circle84" + r="1" + cy="37" + cx="4" /> + <circle + id="circle86" + r="1" + cy="41" + cx="4" /> + <circle + id="circle88" + r="1" + cy="45" + cx="4" /> + <circle + id="circle90" + r="1" + cy="49" + cx="4" /> + <path + id="path92" + d="M 54.501,0 H 46 V 1 C 46,2.654 44.654,4 43,4 41.346,4 40,2.654 40,1 V 0 H 5.499 C 2.467,0 0,2.467 0,5.499 V 12 h 4 v 2 H 0 V 54.501 C 0,57.533 2.467,60 5.499,60 H 40 v -1 c 0,-1.654 1.346,-3 3,-3 1.654,0 3,1.346 3,3 v 1 h 8.501 C 57.533,60 60,57.533 60,54.501 V 5.499 C 60,2.467 57.533,0 54.501,0 Z M 58,17 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 V 54.501 C 58,56.431 56.431,58 54.501,58 H 47.899 C 47.435,55.721 45.414,54 43,54 c -2.414,0 -4.435,1.721 -4.899,4 H 5.499 C 3.569,58 2,56.431 2,54.501 V 16 H 6 V 10 H 2 V 5.499 C 2,3.569 3.569,2 5.499,2 h 32.602 c 0.464,2.279 2.484,4 4.899,4 2.415,0 4.435,-1.721 4.899,-4 h 6.602 C 56.431,2 58,3.569 58,5.499 Z" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + id="g98" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g100" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g102" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g104" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g106" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g108" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g110" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g112" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g114" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g116" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g118" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g120" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g122" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g124" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g126" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g2145" + transform="translate(-40.375566,19.674164)"> + <g + id="g8-1" + transform="matrix(0.01707528,0,0,0.01707528,-22.348822,30.582131)"> + <path + id="path4-8" + d="M 861.5,169.2 C 771.9,71.4 643.1,10 500,10 229.4,10 10,229.4 10,500 h 91.9 c 0,-219.9 178.3,-398.1 398.1,-398.1 117.7,0 223.5,51.1 296.4,132.4 L 653.1,377.5 H 990 V 40.6 Z" + inkscape:connector-curvature="0" /> + <path + id="path6-7" + d="M 898.1,500 C 898.1,719.9 719.8,898.1 500,898.1 382.3,898.1 276.5,847 203.6,765.7 L 346.9,622.4 H 10 V 959.3 L 138.5,830.8 C 228.1,928.7 356.9,990 500,990 770.6,990 990,770.6 990,500 Z" + inkscape:connector-curvature="0" /> + </g> + <text + id="text2021" + y="40.060581" + x="-19.355824" + style="font-style:normal;font-weight:normal;font-size:7.76111126px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.76111126px;stroke-width:0.26458332px" + y="40.060581" + x="-19.355824" + id="tspan2019" + sodipodi:role="line">5s</tspan></text> + </g> + <g + id="g81" + transform="matrix(0.00844961,0,0,0.00844961,-44.677164,56.505598)"> + <g + id="g6-0"> + <g + id="g4"> + <path + inkscape:connector-curvature="0" + id="path2" + d="M 256,0 C 114.51,0 0,114.497 0,256 0,397.491 114.497,512 256,512 397.49,512 512,397.503 512,256 512,114.509 397.503,0 256,0 Z m 0,478.609 C 133.254,478.609 33.391,378.747 33.391,256 33.391,133.253 133.254,33.391 256,33.391 c 122.746,0 222.609,99.863 222.609,222.609 0,122.746 -99.863,222.609 -222.609,222.609 z" /> + </g> + </g> + <g + id="g12-23"> + <g + id="g10-75"> + <path + inkscape:connector-curvature="0" + id="path8" + d="M 256,66.783 C 151.29,66.783 66.783,151.738 66.783,256 c 0,48.619 18.872,97.248 55.421,133.797 6.52,6.52 17.091,6.52 23.611,0 l 23.611,-23.611 c 6.52,-6.519 6.52,-17.09 0,-23.611 -6.519,-6.52 -17.09,-6.52 -23.611,0 l -11.177,11.177 c -19.241,-23.851 -30.408,-52.1 -33.501,-81.056 h 15.734 c 9.22,0 16.696,-7.475 16.696,-16.696 0,-9.22 -7.475,-16.696 -16.696,-16.696 h -15.725 c 3.094,-28.955 14.261,-57.198 33.5,-81.05 l 11.17,11.169 c 6.52,6.52 17.091,6.52 23.611,0 6.519,-6.519 6.519,-17.091 0,-23.611 l -11.175,-11.175 c 23.276,-18.804 51.227,-30.356 81.054,-33.5 v 15.732 c 0,9.22 7.475,16.696 16.696,16.696 9.22,0 16.696,-7.475 16.696,-16.696 v -15.731 c 29.827,3.144 57.777,14.698 81.054,33.5 L 281.72,206.67 c -7.699,-4.03 -16.444,-6.323 -25.719,-6.323 -30.687,0 -55.652,24.966 -55.652,55.652 0,30.687 24.966,55.652 55.652,55.652 30.687,0 55.652,-24.966 55.652,-55.652 0,-9.275 -2.293,-18.02 -6.323,-25.718 l 72.026,-72.026 c 19.239,23.85 30.406,52.094 33.5,81.05 H 395.13 c -9.22,0 -16.696,7.475 -16.696,16.696 0,9.22 7.475,16.696 16.696,16.696 h 15.734 c -3.093,28.956 -14.26,57.206 -33.501,81.056 l -11.177,-11.177 c -6.519,-6.519 -17.091,-6.519 -23.611,0 -6.52,6.52 -6.52,17.091 0,23.611 l 23.611,23.611 c 6.52,6.52 17.091,6.52 23.611,0 C 426.279,353.315 445.218,304.714 445.218,256 445.217,151.681 360.676,66.783 256,66.783 Z m 0,211.478 c -12.275,0 -22.261,-9.986 -22.261,-22.261 0,-12.275 9.986,-22.261 22.261,-22.261 12.275,0 22.261,9.986 22.261,22.261 0,12.275 -9.986,22.261 -22.261,22.261 z" /> + </g> + </g> + <g + id="g18-9"> + <g + id="g16-2"> + <path + inkscape:connector-curvature="0" + id="path14" + d="m 272.696,345.043 h -33.391 c -27.618,0 -50.087,22.469 -50.087,50.087 0,27.618 22.469,50.087 50.087,50.087 h 33.391 c 27.618,0 50.087,-22.469 50.087,-50.087 0,-27.618 -22.469,-50.087 -50.087,-50.087 z m 0,66.783 h -33.391 c -9.206,0 -16.696,-7.49 -16.696,-16.696 0,-9.206 7.49,-16.696 16.696,-16.696 h 33.391 c 9.206,0 16.696,7.49 16.696,16.696 0,9.206 -7.49,16.696 -16.696,16.696 z" /> + </g> + </g> + <g + id="g20-2" /> + <g + id="g22-8" /> + <g + id="g24-97" /> + <g + id="g26-36" /> + <g + id="g28-1" /> + <g + id="g30-2" /> + <g + id="g32-9" /> + <g + id="g34-3" /> + <g + id="g36-1" /> + <g + id="g38-9" /> + <g + id="g40-4" /> + <g + id="g42" /> + <g + id="g44" /> + <g + id="g46" /> + <g + id="g48" /> + </g> + <g + id="g2510" + transform="rotate(-49.838941,-2.2851013,117.97267)"> + <text + id="text27-0" + y="150.02438" + x="-48.269562" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan29-3" + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="150.02438" + x="-48.269562" + sodipodi:role="line">button.py</tspan></text> + <g + transform="translate(22.530938,-30.78856)" + id="g301"> + <text + id="text62-6" + y="156.87811" + x="-29.533283" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.87811" + x="-29.533283" + id="tspan60-1" + sodipodi:role="line">publish("gpio/491,:1")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-40.352325" + y="156.95613" + id="text70"><tspan + sodipodi:role="line" + id="tspan68" + x="-40.352325" + y="156.95613" + style="font-size:4.23333311px;stroke-width:0.26458332px">0</tspan></text> + <text + id="text74" + y="152.72278" + x="-34.002323" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;stroke-width:0.26458332px" + y="152.72278" + x="-34.002323" + id="tspan72" + sodipodi:role="line">1</tspan></text> + <g + id="g290-0"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -39.823158,157.48531 h 3.207234 l 2.386237,-4.13308 h 2.691884" + id="path64" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" + id="path279" + d="m -36.31478,155.34196 1.018492,-0.27291 0.368825,1.00632" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + </g> + <g + transform="translate(22.530938,-22.85106)" + id="g321"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-29.533283" + y="156.87811" + id="text305"><tspan + sodipodi:role="line" + id="tspan303" + x="-29.533283" + y="156.87811" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("gpio/491,:0")</tspan></text> + <text + id="text309" + y="156.95613" + x="-33.473156" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;stroke-width:0.26458332px" + y="156.95613" + x="-33.473156" + id="tspan307" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.293991" + y="152.72278" + id="text313"><tspan + sodipodi:role="line" + id="tspan311" + x="-39.293991" + y="152.72278" + style="font-size:4.23333311px;stroke-width:0.26458332px">1</tspan></text> + <g + id="g319"> + <path + inkscape:connector-curvature="0" + id="path315" + d="m -39.823158,153.35224 h 3.207234 l 2.386237,4.13308 h 2.691884" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -36.21438,155.60031 1.018492,0.27291 0.368825,-1.00632" + id="path317" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + </g> + <path + inkscape:connector-curvature="0" + id="path1715-2-6" + d="M 52.267014,136.90218 H -30.456665" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000008, 0.50000003;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5-4)" + sodipodi:nodetypes="cc" /> + <g + transform="translate(12.476768,-23.417004)" + id="g3765"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3333-3" + cx="-49.729439" + cy="160.3616" + r="5.8113842" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3335" + width="5.1499252" + height="5.1026788" + x="-52.280777" + y="157.90475" + ry="1.0394346" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -53.591883,158.83789 h 0.921317" + id="path3339" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3341" + d="m -53.591883,159.89623 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -53.591883,160.95454 h 0.921317" + id="path3343" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3345" + d="m -53.591883,162.01288 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3347" + d="m -46.712715,158.83789 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -46.712715,159.89623 h 0.921317" + id="path3349" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3351" + d="m -46.712715,160.95454 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -46.712715,162.01288 h 0.921317" + id="path3353" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotS-7)" + d="m -51.961861,160.12537 h 2.173363 l 1.122117,-1.07487" + id="path3355" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3649)" + d="m -47.414335,160.69234 -2.22061,0.0118 -1.204799,0.94494" + id="path3357" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + id="g2656" + transform="rotate(-15.606199,-269.71919,-273.16496)"> + <text + transform="rotate(14.622393)" + id="text333-6" + y="155.19707" + x="-87.923203" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="155.19707" + x="-87.923203" + id="tspan331-9" + sodipodi:role="line">subscribe("gpio/#")</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727-5)" + d="M -63.873821,145.47155 -140.59088,124.19404" + id="path335-3" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path1715-7" + d="m -142.02562,130.01349 77.194273,21.6287" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-7)" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.8199513px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-95.331955" + y="160.10796" + id="text2189-4" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2187-5" + x="-95.331955" + y="160.10796" + style="font-size:3.8199513px;stroke-width:0.17906021px">publish("491,:1")</tspan></text> + <text + id="text2193" + y="160.16075" + x="-102.65388" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:2.86496329px;stroke-width:0.17906021px" + y="160.16075" + x="-102.65388" + id="tspan2191" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-97.747635" + y="159.88875" + id="text2197" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2195" + x="-97.747635" + y="159.88875" + style="font-size:2.86496329px;stroke-width:0.17906021px">1</tspan></text> + <path + inkscape:connector-curvature="0" + id="path2199" + d="m -138.47354,130.5979 2.10451,0.53128 2.25043,-2.31676 1.76636,0.4459" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -135.81638,129.77264 0.71352,-0.0104 0.0753,0.72142" + id="path2201" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + <text + id="text2209-2" + y="160.65109" + x="-59.86565" + style="font-style:normal;font-weight:normal;font-size:3.8199513px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:3.8199513px;stroke-width:0.17906021px" + y="160.65109" + x="-59.86565" + id="tspan2207-5" + sodipodi:role="line">publish("491,:0")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-61.857147" + y="159.91919" + id="text2213" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2211" + x="-61.857147" + y="159.91919" + style="font-size:2.86496329px;stroke-width:0.17906021px">0</tspan></text> + <text + id="text2217" + y="159.72408" + x="-65.854927" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:2.86496329px;stroke-width:0.17906021px" + y="159.72408" + x="-65.854927" + id="tspan2215" + sodipodi:role="line">1</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -102.68794,136.49774 2.10452,0.53127 0.881158,3.10731 1.766353,0.44591" + id="path2219" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" + id="path2221" + d="m -100.69233,138.57066 0.62311,0.34779 0.408707,-0.59923" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g6964" + transform="translate(29.443335,-78.696841)"> + <text + transform="rotate(-14.135158)" + id="text62-3" + y="142.4953" + x="24.288315" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="142.4953" + x="24.288315" + id="tspan60-6" + sodipodi:role="line">subscribe("led/#")</tspan></text> + <g + transform="translate(-35.982642,-18.583098)" + id="g277"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="49.356239" + y="180.82765" + id="text255" + transform="rotate(-14.358521)"><tspan + sodipodi:role="line" + id="tspan253" + x="49.356239" + y="180.82765" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("490,:1")</tspan></text> + <g + id="g275" + transform="matrix(0.82753259,-0.3858119,0.3858119,0.82753259,-52.345494,99.883787)"> + <g + id="g273" + transform="matrix(0.13317062,0,0,0.13317062,165.98921,120.30093)"> + <path + id="path259" + d="m -2.1057453,130.98417 v -17 a 11,11 0 0 0 -21.9999997,0 v 17 a 3.009,3.009 0 0 0 -3,3 v 2 a 3.009,3.009 0 0 0 3,3 h 6 v 9 h 2 v -9 h 6 v 12.99999 h 1.9999997 v -12.99999 h 6 a 3.009,3.009 0 0 0 3.00000005,-3 v -2 a 3.009,3.009 0 0 0 -3.00000005,-3 z m -19.9999997,-17 a 9.0000001,9.0000001 0 0 1 17.9999997,0 v 17 h -4 v -8 a 1,1 0 0 0 -1,-1 h -2.9999997 a 1.033,1.033 0 0 0 -0.71,0.29 l -1.02,1.02 -0.38,-0.76 a 0.977,0.977 0 0 0 -0.89,-0.55 h -2 a 1,1 0 0 0 -1,1 v 8 h -4 z m 12,10 v 7 h -6 v -7 h 0.38 l 0.73,1.45 a 1,1 0 0 0 0.73,0.54 1.032,1.032 0 0 0 0.87,-0.28 l 1.7,-1.71 z m 8.9999997,12 a 1,1 0 0 1 -1,1 H -24.105745 a 1,1 0 0 1 -1,-1 v -2 a 1,1 0 0 1 1,-1 h 21.9999997 a 1,1 0 0 1 1,1 z" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + transform="matrix(1,0,0,-1,-28.042382,226.19743)" + id="g2185"> + <path + inkscape:connector-curvature="0" + id="path2181" + d="M 62.988566,84.927854 143.69012,108.20601" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart)" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000004, 0.50000001;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker1719)" + d="M 143.02022,104.15763 64.351035,80.671739" + id="path2183" + inkscape:connector-curvature="0" /> + </g> + <text + id="text139" + y="133.22188" + x="112.76218" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="133.22188" + x="112.76218" + id="tspan137" + sodipodi:role="line">led.py</tspan></text> + <g + id="g5859" + transform="translate(-28.045142,78.783576)"> + <g + id="g192" + transform="matrix(0.91305039,0,0,0.91305039,-5.28044,-72.250772)"> + <rect + y="120.20163" + x="165.74257" + height="8.3627234" + width="8.7879467" + id="rect181" + style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + id="led" + transform="matrix(0.13317062,0,0,0.13317062,165.98921,120.30093)"> + <path + id="path2-4" + d="M 43,41 V 24 a 11,11 0 0 0 -22,0 v 17 a 3.009,3.009 0 0 0 -3,3 v 2 a 3.009,3.009 0 0 0 3,3 h 6 v 9 h 2 v -9 h 6 v 13 h 2 V 49 h 6 a 3.009,3.009 0 0 0 3,-3 V 44 A 3.009,3.009 0 0 0 43,41 Z M 23,24 a 9,9 0 0 1 18,0 v 17 h -4 v -8 a 1,1 0 0 0 -1,-1 h -3 a 1.033,1.033 0 0 0 -0.71,0.29 l -1.02,1.02 -0.38,-0.76 A 0.977,0.977 0 0 0 30,32 h -2 a 1,1 0 0 0 -1,1 v 8 h -4 z m 12,10 v 7 h -6 v -7 h 0.38 l 0.73,1.45 a 1,1 0 0 0 0.73,0.54 1.032,1.032 0 0 0 0.87,-0.28 L 33.41,34 Z m 9,12 a 1,1 0 0 1 -1,1 H 21 a 1,1 0 0 1 -1,-1 v -2 a 1,1 0 0 1 1,-1 h 22 a 1,1 0 0 1 1,1 z" + inkscape:connector-curvature="0" /> + <path + id="path4" + d="m 32,18 v -2 a 8.009,8.009 0 0 0 -8,8 h 2 a 6.006,6.006 0 0 1 6,-6 z" + inkscape:connector-curvature="0" /> + <path + id="path6" + d="m 31,2 h 2 v 6 h -2 z" + inkscape:connector-curvature="0" /> + <path + id="path8-7" + transform="matrix(0.707,-0.707,0.707,0.707,-5.347,12.909)" + d="m 11.908,9.908 h 2 v 6 h -2 z" + inkscape:connector-curvature="0" /> + <path + id="path10" + d="m 2,31 h 6 v 2 H 2 Z" + inkscape:connector-curvature="0" /> + <path + id="path12" + d="m 56,31 h 6 v 2 h -6 z" + inkscape:connector-curvature="0" /> + <path + id="path14-4" + transform="matrix(0.707,-0.707,0.707,0.707,5.837,39.908)" + d="m 48.092,11.908 h 6 v 2 h -6 z" + inkscape:connector-curvature="0" /> + </g> + </g> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path2251" + cx="149.91956" + cy="41.34798" + r="5.746295" /> + </g> + </g> + <g + id="g7015" + transform="rotate(-115.12196,79.88929,112.13402)"> + <text + id="text305-0" + y="-150.62758" + x="17.526035" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(130.16106)"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="-150.62758" + x="17.526035" + id="tspan303-7" + sodipodi:role="line">publish("led/490,:0")</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000009, 0.50000003;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5-4-4)" + d="M 114.67412,108.27847 59.177479,169.64962" + id="path1715-2-6-8" + inkscape:connector-curvature="0" /> + <text + transform="rotate(130.16106)" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="17.365982" + y="-145.10521" + id="text7019"><tspan + sodipodi:role="line" + id="tspan7017" + x="17.365982" + y="-145.10521" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("led/490,:1")</tspan></text> + </g> + </g> +</svg> diff --git a/lab02/img/ztb_lab2_schem_bme280_button.svg b/lab02/img/ztb_lab2_schem_bme280_button.svg new file mode 100644 index 0000000000000000000000000000000000000000..5983ed93cfe6f55a3a9730447f13744a98dbc713 --- /dev/null +++ b/lab02/img/ztb_lab2_schem_bme280_button.svg @@ -0,0 +1,1390 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="255.8017mm" + height="123.05682mm" + viewBox="0 0 255.8017 123.05682" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="ztb_lab2_schem_bme280_button.svg"> + <defs + id="defs2"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3807" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotS"> + <path + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path3805" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3567" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3565" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3491" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3489" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="SquareM" + orient="auto" + refY="0" + refX="0" + id="SquareM" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1215" + d="M -5,-5 V 5 H 5 V -5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.4)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1160" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1148" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Sstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1154" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.2,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934-2" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209-8" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3649" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path3647" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5-4" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6-5" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725-0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725-4" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-7" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280-65" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4902627" + inkscape:cx="355.20549" + inkscape:cy="250.88239" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(91.104373,-50.427048)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-91.300743" + y="91.240807" + id="text27"><tspan + sodipodi:role="line" + x="-91.300743" + y="91.240807" + style="font-size:7.05555534px;stroke-width:0.26458332px" + id="tspan29">sensorBME280.py</tspan></text> + <g + id="g290" + transform="translate(-9.395167,-94.218678)" /> + <text + id="text325" + y="114.26142" + x="114.86746" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="114.26142" + x="114.86746" + id="tspan323" + sodipodi:role="line">recvBME280.py</tspan></text> + <g + id="g1533" + transform="translate(-1.3363476,-87.342063)"> + <text + id="text110" + y="158.35393" + x="57.658592" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="158.35393" + x="57.658592" + id="tspan108" + sodipodi:role="line">Mosquitto</tspan><tspan + id="tspan112" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="163.6456" + x="57.658592" + sodipodi:role="line">MQTT</tspan><tspan + id="tspan114" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="168.93726" + x="57.658592" + sodipodi:role="line">Broker</tspan></text> + <path + inkscape:connector-curvature="0" + id="path1526" + d="m 51.808521,150.54217 h 11.225321 l 5.445617,9.35444 -5.512435,9.72193 H 51.541253 l -5.311982,-9.38785 z" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4645" + transform="rotate(0.94276893,555.65472,92.71156)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="91.356277" + y="59.623699" + id="text333" + transform="rotate(15.583653)"><tspan + sodipodi:role="line" + id="tspan331" + x="91.356277" + y="59.623699" + style="font-size:5.64444447px;stroke-width:0.26458332px">subscribe("sensors/bme280/#")</tspan></text> + <path + inkscape:connector-curvature="0" + id="path335" + d="M 67.051433,82.414609 143.69012,103.97268" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727)" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000004, 0.50000001;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282)" + d="M 141.33358,109.53465 64.104759,88.029647" + id="path1715" + inkscape:connector-curvature="0" /> + <g + transform="matrix(0.65617761,0.16564772,-0.16564772,0.65617761,42.497112,7.3640485)" + id="g2247"> + <g + id="g2205" + transform="translate(90.740182,-50.780764)"> + <text + id="text2189" + y="156.87811" + x="-29.533283" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.87811" + x="-29.533283" + id="tspan2187" + sodipodi:role="line">publish("temp,:23.4")</tspan></text> + </g> + <g + transform="translate(106.37327,-39.134171)" + id="g2225"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12.708021" + y="145.27306" + id="text2209" + transform="rotate(1.7657766)"><tspan + sodipodi:role="line" + id="tspan2207" + x="12.708021" + y="145.27306" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("pres,:997.3")</tspan></text> + <text + transform="rotate(1.7657766)" + id="text2081" + y="153.66335" + x="11.985039" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="153.66335" + x="11.985039" + id="tspan2079" + sodipodi:role="line">publish("hum,:78")</tspan></text> + </g> + </g> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5)" + d="m 42.791161,67.998743 h -82.72368" + id="path1715-2" + inkscape:connector-curvature="0" /> + <g + id="g3924" + transform="translate(-7.6218512,-90.955517)"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle3767" + cx="155.56081" + cy="193.90738" + r="5.8113842" /> + <rect + y="190.7887" + x="152.01535" + height="5.9058781" + width="7.0398064" + id="rect3905" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3907" + d="m 152.29883,192.58408 h 6.56734" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <rect + y="191.62651" + x="152.83641" + height="0.16704345" + width="0.16704345" + id="rect3909" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3914" + width="0.16704345" + height="0.16704345" + x="153.89473" + y="191.62651" /> + <rect + y="191.62651" + x="154.95305" + height="0.16704345" + width="0.16704345" + id="rect3916" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + id="g1576" + transform="translate(-0.97647774,-7.9005926)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-38.928452" + y="62.737072" + id="text62"><tspan + sodipodi:role="line" + id="tspan60" + x="-38.928452" + y="62.737072" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/temp,:23.4")</tspan></text> + <g + transform="matrix(0.03363891,0,0,0.03363891,-39.222755,56.412332)" + id="g1549"> + <g + id="g1528"> + <g + id="g6" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)"> + <path + id="path2-3" + d="m 261.67,296.581 v -180.47 h -49.168 v 180.462 c -19.719,9.275 -33.468,29.171 -33.468,52.41 0,32.06 25.985,58.044 58.045,58.044 32.058,0 58.051,-25.985 58.051,-58.044 0,-23.231 -13.741,-43.125 -33.46,-52.402 z" + inkscape:connector-curvature="0" /> + <path + id="path4-6" + d="m 364.786,157.086 c 9.051,0 16.389,-7.338 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 329.004 V 91.927 c 0,-0.136 -0.015,-0.264 -0.015,-0.4 h 35.797 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 322.715 C 309.368,24.424 276.06,0 237.079,0 186.389,0 145.15,41.238 145.15,91.927 v 158.431 c -27.289,25.465 -42.799,60.949 -42.799,98.441 0,74.291 60.445,134.728 134.735,134.728 74.281,0 134.719,-60.437 134.719,-134.728 0,-37.5 -15.51,-72.984 -42.8,-98.449 v -27.706 h 35.782 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 h -35.782 v -32.779 h 35.781 z m -23.2,191.713 c 0,57.628 -46.881,104.509 -104.5,104.509 -57.628,0 -104.516,-46.88 -104.516,-104.509 0,-30.945 13.637,-60.132 37.405,-80.075 3.417,-2.865 5.395,-7.106 5.395,-11.572 V 91.927 c 0,-34.028 27.681,-61.709 61.709,-61.709 34.027,0 61.708,27.681 61.708,61.709 v 165.217 c 0,4.466 1.977,8.707 5.395,11.572 23.768,19.943 37.404,49.138 37.404,80.083 z" + inkscape:connector-curvature="0" /> + </g> + <g + id="g8" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g10" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g12" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g14" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g16" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g18" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g20" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g22" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g24" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g26" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g28" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g30" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g32" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g34" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g36" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="60.12804" + id="text1580"><tspan + sodipodi:role="line" + id="tspan1578" + x="-39.90493" + y="60.12804" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/pres,:997.3")</tspan></text> + <g + id="g1814"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="65.126755" + id="text1626"><tspan + sodipodi:role="line" + id="tspan1624" + x="-39.90493" + y="65.126755" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/hum,:78")</tspan></text> + <g + transform="matrix(0.04557466,0,0,0.04557466,-40.263237,60.716166)" + id="g1762"> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g10-7"> + <path + inkscape:connector-curvature="0" + d="m 209.306,50.798 c -2.452,-3.337 -7.147,-4.055 -10.485,-1.602 -3.338,2.453 -4.055,7.147 -1.603,10.485 54.576,74.266 66.032,123.541 66.032,151.8 0,27.691 -8.272,52.794 -23.293,70.685 -17.519,20.866 -42.972,31.446 -75.651,31.446 -73.031,0 -98.944,-55.018 -98.944,-102.131 0,-52.227 28.103,-103.234 51.679,-136.829 25.858,-36.847 52.11,-61.415 52.37,-61.657 3.035,-2.819 3.209,-7.565 0.39,-10.6 -2.819,-3.034 -7.565,-3.209 -10.599,-0.39 -1.11,1.031 -27.497,25.698 -54.254,63.765 -24.901,35.428 -54.586,89.465 -54.586,145.71 0,31.062 9.673,59.599 27.236,80.353 20.361,24.061 50.345,36.779 86.708,36.779 36.794,0 66.926,-12.726 87.139,-36.801 17.286,-20.588 26.806,-49.117 26.806,-80.33 C 278.25,156.216 240.758,93.597 209.306,50.798 Z" + id="path2-5" /> + <path + inkscape:connector-curvature="0" + d="m 198.43,148.146 -95.162,95.162 c -2.929,2.929 -2.929,7.678 0,10.606 1.465,1.464 3.385,2.197 5.304,2.197 1.919,0 3.839,-0.732 5.304,-2.197 l 95.162,-95.162 c 2.929,-2.929 2.929,-7.678 0,-10.606 -2.931,-2.929 -7.679,-2.929 -10.608,0 z" + id="path4-3" /> + <path + inkscape:connector-curvature="0" + d="m 191.965,207.899 c -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 z m 0,33.212 c -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.085,-9.106 9.106,-9.106 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 z" + id="path6-5" /> + <path + inkscape:connector-curvature="0" + d="m 125.178,194.162 c 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 z m 0,-33.213 c 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.084,-9.106 9.106,-9.106 z" + id="path8-6" /> + </g> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g12-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g14-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g16-1" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g18-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g20-7" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g22-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g24-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g26-3" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g28-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g30-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g32-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g34-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g36-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g38" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g40" /> + </g> + </g> + <g + id="g2007"> + <circle + r="5.8113842" + cy="73.012321" + cx="-47.083607" + id="path3333" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + transform="matrix(0.09148046,0,0,0.09148046,-49.828021,70.267908)" + id="g96"> + <g + id="g94"> + <circle + id="circle2" + r="1" + cy="5" + cx="5" /> + <circle + id="circle4" + r="1" + cy="5" + cx="55" /> + <circle + id="circle6" + r="1" + cy="55" + cx="5" /> + <circle + id="circle8" + r="1" + cy="56" + cx="11" /> + <circle + id="circle10" + r="1" + cy="56" + cx="15" /> + <circle + id="circle12" + r="1" + cy="56" + cx="19" /> + <circle + id="circle14" + r="1" + cy="56" + cx="23" /> + <circle + id="circle16" + r="1" + cy="39" + cx="38" /> + <circle + id="circle18" + r="1" + cy="39" + cx="34" /> + <circle + id="circle20" + r="1" + cy="36" + cx="36" /> + <circle + id="circle22" + r="1" + cy="39" + cx="30" /> + <circle + id="circle24" + r="1" + cy="39" + cx="26" /> + <circle + id="circle26" + r="1" + cy="36" + cx="32" /> + <circle + id="circle28" + r="1" + cy="36" + cx="28" /> + <circle + id="circle30" + r="1" + cy="39" + cx="22" /> + <circle + id="circle32" + r="1" + cy="36" + cx="24" /> + <circle + id="circle34" + r="1" + cy="33" + cx="38" /> + <circle + id="circle36" + r="1" + cy="33" + cx="34" /> + <circle + id="circle38" + r="1" + cy="30" + cx="36" /> + <circle + id="circle40" + r="1" + cy="33" + cx="30" /> + <circle + id="circle42" + r="1" + cy="33" + cx="26" /> + <circle + id="circle44" + r="1" + cy="30" + cx="32" /> + <circle + id="circle46" + r="1" + cy="30" + cx="28" /> + <circle + id="circle48" + r="1" + cy="33" + cx="22" /> + <circle + id="circle50" + r="1" + cy="30" + cx="24" /> + <circle + id="circle52" + r="1" + cy="27" + cx="38" /> + <circle + id="circle54" + r="1" + cy="27" + cx="34" /> + <circle + id="circle56" + r="1" + cy="24" + cx="36" /> + <circle + id="circle58" + r="1" + cy="27" + cx="30" /> + <circle + id="circle60" + r="1" + cy="27" + cx="26" /> + <circle + id="circle62" + r="1" + cy="24" + cx="32" /> + <circle + id="circle64" + r="1" + cy="24" + cx="28" /> + <circle + id="circle66" + r="1" + cy="27" + cx="22" /> + <circle + id="circle68" + r="1" + cy="24" + cx="24" /> + <circle + id="circle70" + r="1" + cy="21" + cx="38" /> + <circle + id="circle72" + r="1" + cy="21" + cx="34" /> + <circle + id="circle74" + r="1" + cy="21" + cx="30" /> + <circle + id="circle76" + r="1" + cy="21" + cx="26" /> + <circle + id="circle78" + r="1" + cy="21" + cx="22" /> + <circle + id="circle80" + r="1" + cy="55" + cx="55" /> + <path + id="path82" + d="m 51,25 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 21 H 45 V 19.357 C 45,16.955 43.045,15 40.643,15 H 39 V 11 H 37 V 9 C 37,8.447 36.552,8 36,8 35.448,8 35,8.447 35,9 v 2 H 33 V 9 C 33,8.447 32.552,8 32,8 31.448,8 31,8.447 31,9 v 2 H 29 V 9 C 29,8.447 28.552,8 28,8 27.448,8 27,8.447 27,9 v 2 H 25 V 9 C 25,8.447 24.552,8 24,8 23.448,8 23,8.447 23,9 v 2 h -2 v 4 H 19.357 C 16.955,15 15,16.955 15,19.357 V 21 h -4 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 h 4 v 1.643 C 15,43.045 16.955,45 19.357,45 H 21 v 4 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v -4 h 1.643 C 43.045,45 45,43.045 45,40.643 V 39 h 4 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 25 Z M 15,37 H 13 V 23 h 2 z m 8,-24 h 14 v 2 H 23 Z M 37,47 H 23 v -2 h 14 z m 6,-26 v 18 1.643 C 43,41.943 41.942,43 40.643,43 H 39 21 19.357 C 18.058,43 17,41.942 17,40.643 V 39 21 19.357 C 17,18.057 18.058,17 19.357,17 H 21 39 40.643 c 1.3,0 2.357,1.058 2.357,2.357 z m 4,16 H 45 V 23 h 2 z" + inkscape:connector-curvature="0" /> + <circle + id="circle84" + r="1" + cy="37" + cx="4" /> + <circle + id="circle86" + r="1" + cy="41" + cx="4" /> + <circle + id="circle88" + r="1" + cy="45" + cx="4" /> + <circle + id="circle90" + r="1" + cy="49" + cx="4" /> + <path + id="path92" + d="M 54.501,0 H 46 V 1 C 46,2.654 44.654,4 43,4 41.346,4 40,2.654 40,1 V 0 H 5.499 C 2.467,0 0,2.467 0,5.499 V 12 h 4 v 2 H 0 V 54.501 C 0,57.533 2.467,60 5.499,60 H 40 v -1 c 0,-1.654 1.346,-3 3,-3 1.654,0 3,1.346 3,3 v 1 h 8.501 C 57.533,60 60,57.533 60,54.501 V 5.499 C 60,2.467 57.533,0 54.501,0 Z M 58,17 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 V 54.501 C 58,56.431 56.431,58 54.501,58 H 47.899 C 47.435,55.721 45.414,54 43,54 c -2.414,0 -4.435,1.721 -4.899,4 H 5.499 C 3.569,58 2,56.431 2,54.501 V 16 H 6 V 10 H 2 V 5.499 C 2,3.569 3.569,2 5.499,2 h 32.602 c 0.464,2.279 2.484,4 4.899,4 2.415,0 4.435,-1.721 4.899,-4 h 6.602 C 56.431,2 58,3.569 58,5.499 Z" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + id="g98" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g100" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g102" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g104" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g106" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g108" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g110" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g112" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g114" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g116" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g118" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g120" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g122" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g124" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g126" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g2145" + transform="translate(-40.375566,19.674164)"> + <g + id="g8-1" + transform="matrix(0.01707528,0,0,0.01707528,-22.348822,30.582131)"> + <path + id="path4-8" + d="M 861.5,169.2 C 771.9,71.4 643.1,10 500,10 229.4,10 10,229.4 10,500 h 91.9 c 0,-219.9 178.3,-398.1 398.1,-398.1 117.7,0 223.5,51.1 296.4,132.4 L 653.1,377.5 H 990 V 40.6 Z" + inkscape:connector-curvature="0" /> + <path + id="path6-7" + d="M 898.1,500 C 898.1,719.9 719.8,898.1 500,898.1 382.3,898.1 276.5,847 203.6,765.7 L 346.9,622.4 H 10 V 959.3 L 138.5,830.8 C 228.1,928.7 356.9,990 500,990 770.6,990 990,770.6 990,500 Z" + inkscape:connector-curvature="0" /> + </g> + <text + id="text2021" + y="40.060581" + x="-19.355824" + style="font-style:normal;font-weight:normal;font-size:7.76111126px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.76111126px;stroke-width:0.26458332px" + y="40.060581" + x="-19.355824" + id="tspan2019" + sodipodi:role="line">5s</tspan></text> + </g> + <g + id="g81" + transform="matrix(0.00844961,0,0,0.00844961,-44.677164,56.505598)"> + <g + id="g6-0"> + <g + id="g4"> + <path + inkscape:connector-curvature="0" + id="path2" + d="M 256,0 C 114.51,0 0,114.497 0,256 0,397.491 114.497,512 256,512 397.49,512 512,397.503 512,256 512,114.509 397.503,0 256,0 Z m 0,478.609 C 133.254,478.609 33.391,378.747 33.391,256 33.391,133.253 133.254,33.391 256,33.391 c 122.746,0 222.609,99.863 222.609,222.609 0,122.746 -99.863,222.609 -222.609,222.609 z" /> + </g> + </g> + <g + id="g12-23"> + <g + id="g10-75"> + <path + inkscape:connector-curvature="0" + id="path8" + d="M 256,66.783 C 151.29,66.783 66.783,151.738 66.783,256 c 0,48.619 18.872,97.248 55.421,133.797 6.52,6.52 17.091,6.52 23.611,0 l 23.611,-23.611 c 6.52,-6.519 6.52,-17.09 0,-23.611 -6.519,-6.52 -17.09,-6.52 -23.611,0 l -11.177,11.177 c -19.241,-23.851 -30.408,-52.1 -33.501,-81.056 h 15.734 c 9.22,0 16.696,-7.475 16.696,-16.696 0,-9.22 -7.475,-16.696 -16.696,-16.696 h -15.725 c 3.094,-28.955 14.261,-57.198 33.5,-81.05 l 11.17,11.169 c 6.52,6.52 17.091,6.52 23.611,0 6.519,-6.519 6.519,-17.091 0,-23.611 l -11.175,-11.175 c 23.276,-18.804 51.227,-30.356 81.054,-33.5 v 15.732 c 0,9.22 7.475,16.696 16.696,16.696 9.22,0 16.696,-7.475 16.696,-16.696 v -15.731 c 29.827,3.144 57.777,14.698 81.054,33.5 L 281.72,206.67 c -7.699,-4.03 -16.444,-6.323 -25.719,-6.323 -30.687,0 -55.652,24.966 -55.652,55.652 0,30.687 24.966,55.652 55.652,55.652 30.687,0 55.652,-24.966 55.652,-55.652 0,-9.275 -2.293,-18.02 -6.323,-25.718 l 72.026,-72.026 c 19.239,23.85 30.406,52.094 33.5,81.05 H 395.13 c -9.22,0 -16.696,7.475 -16.696,16.696 0,9.22 7.475,16.696 16.696,16.696 h 15.734 c -3.093,28.956 -14.26,57.206 -33.501,81.056 l -11.177,-11.177 c -6.519,-6.519 -17.091,-6.519 -23.611,0 -6.52,6.52 -6.52,17.091 0,23.611 l 23.611,23.611 c 6.52,6.52 17.091,6.52 23.611,0 C 426.279,353.315 445.218,304.714 445.218,256 445.217,151.681 360.676,66.783 256,66.783 Z m 0,211.478 c -12.275,0 -22.261,-9.986 -22.261,-22.261 0,-12.275 9.986,-22.261 22.261,-22.261 12.275,0 22.261,9.986 22.261,22.261 0,12.275 -9.986,22.261 -22.261,22.261 z" /> + </g> + </g> + <g + id="g18-9"> + <g + id="g16-2"> + <path + inkscape:connector-curvature="0" + id="path14" + d="m 272.696,345.043 h -33.391 c -27.618,0 -50.087,22.469 -50.087,50.087 0,27.618 22.469,50.087 50.087,50.087 h 33.391 c 27.618,0 50.087,-22.469 50.087,-50.087 0,-27.618 -22.469,-50.087 -50.087,-50.087 z m 0,66.783 h -33.391 c -9.206,0 -16.696,-7.49 -16.696,-16.696 0,-9.206 7.49,-16.696 16.696,-16.696 h 33.391 c 9.206,0 16.696,7.49 16.696,16.696 0,9.206 -7.49,16.696 -16.696,16.696 z" /> + </g> + </g> + <g + id="g20-2" /> + <g + id="g22-8" /> + <g + id="g24-97" /> + <g + id="g26-36" /> + <g + id="g28-1" /> + <g + id="g30-2" /> + <g + id="g32-9" /> + <g + id="g34-3" /> + <g + id="g36-1" /> + <g + id="g38-9" /> + <g + id="g40-4" /> + <g + id="g42" /> + <g + id="g44" /> + <g + id="g46" /> + <g + id="g48" /> + </g> + <g + id="g2510" + transform="rotate(-49.838941,-2.2851013,117.97267)"> + <text + id="text27-0" + y="150.02438" + x="-48.269562" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan29-3" + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="150.02438" + x="-48.269562" + sodipodi:role="line">button.py</tspan></text> + <g + transform="translate(22.530938,-30.78856)" + id="g301"> + <text + id="text62-6" + y="156.87811" + x="-29.533283" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.87811" + x="-29.533283" + id="tspan60-1" + sodipodi:role="line">publish("gpio/491,:1")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-40.352325" + y="156.95613" + id="text70"><tspan + sodipodi:role="line" + id="tspan68" + x="-40.352325" + y="156.95613" + style="font-size:4.23333311px;stroke-width:0.26458332px">0</tspan></text> + <text + id="text74" + y="152.72278" + x="-34.002323" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;stroke-width:0.26458332px" + y="152.72278" + x="-34.002323" + id="tspan72" + sodipodi:role="line">1</tspan></text> + <g + id="g290-0"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -39.823158,157.48531 h 3.207234 l 2.386237,-4.13308 h 2.691884" + id="path64" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" + id="path279" + d="m -36.31478,155.34196 1.018492,-0.27291 0.368825,1.00632" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + </g> + <g + transform="translate(22.530938,-22.85106)" + id="g321"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-29.533283" + y="156.87811" + id="text305"><tspan + sodipodi:role="line" + id="tspan303" + x="-29.533283" + y="156.87811" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("gpio/491,:0")</tspan></text> + <text + id="text309" + y="156.95613" + x="-33.473156" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;stroke-width:0.26458332px" + y="156.95613" + x="-33.473156" + id="tspan307" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.293991" + y="152.72278" + id="text313"><tspan + sodipodi:role="line" + id="tspan311" + x="-39.293991" + y="152.72278" + style="font-size:4.23333311px;stroke-width:0.26458332px">1</tspan></text> + <g + id="g319"> + <path + inkscape:connector-curvature="0" + id="path315" + d="m -39.823158,153.35224 h 3.207234 l 2.386237,4.13308 h 2.691884" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -36.21438,155.60031 1.018492,0.27291 0.368825,-1.00632" + id="path317" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + </g> + <path + inkscape:connector-curvature="0" + id="path1715-2-6" + d="M 52.267014,136.90218 H -30.456665" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000008, 0.50000003;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5-4)" + sodipodi:nodetypes="cc" /> + <g + transform="translate(12.476768,-23.417004)" + id="g3765"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3333-3" + cx="-49.729439" + cy="160.3616" + r="5.8113842" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3335" + width="5.1499252" + height="5.1026788" + x="-52.280777" + y="157.90475" + ry="1.0394346" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -53.591883,158.83789 h 0.921317" + id="path3339" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3341" + d="m -53.591883,159.89623 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -53.591883,160.95454 h 0.921317" + id="path3343" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3345" + d="m -53.591883,162.01288 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3347" + d="m -46.712715,158.83789 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -46.712715,159.89623 h 0.921317" + id="path3349" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3351" + d="m -46.712715,160.95454 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -46.712715,162.01288 h 0.921317" + id="path3353" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotS-7)" + d="m -51.961861,160.12537 h 2.173363 l 1.122117,-1.07487" + id="path3355" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3649)" + d="m -47.414335,160.69234 -2.22061,0.0118 -1.204799,0.94494" + id="path3357" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + id="g2656" + transform="rotate(-15.606199,-269.71919,-273.16496)"> + <text + transform="rotate(14.622393)" + id="text333-6" + y="155.19707" + x="-87.923203" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="155.19707" + x="-87.923203" + id="tspan331-9" + sodipodi:role="line">subscribe("gpio/#")</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727-5)" + d="M -63.873821,145.47155 -140.59088,124.19404" + id="path335-3" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path1715-7" + d="m -142.02562,130.01349 77.194273,21.6287" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-7)" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.8199513px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-95.331955" + y="160.10796" + id="text2189-4" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2187-5" + x="-95.331955" + y="160.10796" + style="font-size:3.8199513px;stroke-width:0.17906021px">publish("491,:1")</tspan></text> + <text + id="text2193" + y="160.16075" + x="-102.65388" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:2.86496329px;stroke-width:0.17906021px" + y="160.16075" + x="-102.65388" + id="tspan2191" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-97.747635" + y="159.88875" + id="text2197" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2195" + x="-97.747635" + y="159.88875" + style="font-size:2.86496329px;stroke-width:0.17906021px">1</tspan></text> + <path + inkscape:connector-curvature="0" + id="path2199" + d="m -138.47354,130.5979 2.10451,0.53128 2.25043,-2.31676 1.76636,0.4459" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -135.81638,129.77264 0.71352,-0.0104 0.0753,0.72142" + id="path2201" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + <text + id="text2209-2" + y="160.65109" + x="-59.86565" + style="font-style:normal;font-weight:normal;font-size:3.8199513px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:3.8199513px;stroke-width:0.17906021px" + y="160.65109" + x="-59.86565" + id="tspan2207-5" + sodipodi:role="line">publish("491,:0")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-61.857147" + y="159.91919" + id="text2213" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2211" + x="-61.857147" + y="159.91919" + style="font-size:2.86496329px;stroke-width:0.17906021px">0</tspan></text> + <text + id="text2217" + y="159.72408" + x="-65.854927" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:2.86496329px;stroke-width:0.17906021px" + y="159.72408" + x="-65.854927" + id="tspan2215" + sodipodi:role="line">1</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -102.68794,136.49774 2.10452,0.53127 0.881158,3.10731 1.766353,0.44591" + id="path2219" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" + id="path2221" + d="m -100.69233,138.57066 0.62311,0.34779 0.408707,-0.59923" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + </g> +</svg> diff --git a/lab02/img/ztb_lab2_schem_bme280_button_otherNUC.svg b/lab02/img/ztb_lab2_schem_bme280_button_otherNUC.svg new file mode 100644 index 0000000000000000000000000000000000000000..437c4694b08623100e6e46702399305509108307 --- /dev/null +++ b/lab02/img/ztb_lab2_schem_bme280_button_otherNUC.svg @@ -0,0 +1,1517 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="255.8017mm" + height="144.29478mm" + viewBox="0 0 255.8017 144.29478" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="ztb_lab2_schem_bme280_button_otherNUC.svg"> + <defs + id="defs2"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3807" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotS"> + <path + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path3805" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3567" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3565" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3491" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path3489" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="SquareM" + orient="auto" + refY="0" + refX="0" + id="SquareM" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1215" + d="M -5,-5 V 5 H 5 V -5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.4)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1160" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1148" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Sstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1154" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.2,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker3936-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3934-2" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="DotS-7" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1209-8" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0" + refX="0" + id="marker3649" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path3647" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.48,0.2)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-5-4" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2280-6-5" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725-0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker4727-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path4725-4" /> + </marker> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="marker2282-7" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2280-65" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.76136832" + inkscape:cx="442.94623" + inkscape:cy="274.71937" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(91.104373,-50.427048)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-91.300743" + y="91.240807" + id="text27"><tspan + sodipodi:role="line" + x="-91.300743" + y="91.240807" + style="font-size:7.05555534px;stroke-width:0.26458332px" + id="tspan29">sensorBME280.py</tspan></text> + <g + id="g290" + transform="translate(-9.395167,-94.218678)" /> + <text + id="text325" + y="114.26142" + x="114.86746" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="114.26142" + x="114.86746" + id="tspan323" + sodipodi:role="line">recvBME280.py</tspan></text> + <g + id="g1533" + transform="translate(-1.3363476,-87.342063)"> + <text + id="text110" + y="158.35393" + x="57.658592" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="158.35393" + x="57.658592" + id="tspan108" + sodipodi:role="line">Mosquitto</tspan><tspan + id="tspan112" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="163.6456" + x="57.658592" + sodipodi:role="line">MQTT</tspan><tspan + id="tspan114" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + y="168.93726" + x="57.658592" + sodipodi:role="line">Broker</tspan></text> + <path + inkscape:connector-curvature="0" + id="path1526" + d="m 51.808521,150.54217 h 11.225321 l 5.445617,9.35444 -5.512435,9.72193 H 51.541253 l -5.311982,-9.38785 z" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4645" + transform="rotate(0.94276893,555.65472,92.71156)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="91.356277" + y="59.623699" + id="text333" + transform="rotate(15.583653)"><tspan + sodipodi:role="line" + id="tspan331" + x="91.356277" + y="59.623699" + style="font-size:5.64444447px;stroke-width:0.26458332px">subscribe("sensors/bme280/#")</tspan></text> + <path + inkscape:connector-curvature="0" + id="path335" + d="M 67.051433,82.414609 143.69012,103.97268" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727)" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000004, 0.50000001;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282)" + d="M 141.33358,109.53465 64.104759,88.029647" + id="path1715" + inkscape:connector-curvature="0" /> + <g + transform="matrix(0.65617761,0.16564772,-0.16564772,0.65617761,42.497112,7.3640485)" + id="g2247"> + <g + id="g2205" + transform="translate(90.740182,-50.780764)"> + <text + id="text2189" + y="156.87811" + x="-29.533283" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.87811" + x="-29.533283" + id="tspan2187" + sodipodi:role="line">publish("temp,:23.4")</tspan></text> + </g> + <g + transform="translate(106.37327,-39.134171)" + id="g2225"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12.708021" + y="145.27306" + id="text2209" + transform="rotate(1.7657766)"><tspan + sodipodi:role="line" + id="tspan2207" + x="12.708021" + y="145.27306" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("pres,:997.3")</tspan></text> + <text + transform="rotate(1.7657766)" + id="text2081" + y="153.66335" + x="11.985039" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="153.66335" + x="11.985039" + id="tspan2079" + sodipodi:role="line">publish("hum,:78")</tspan></text> + </g> + </g> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5)" + d="m 42.791161,67.998743 h -82.72368" + id="path1715-2" + inkscape:connector-curvature="0" /> + <g + id="g3924" + transform="translate(-7.6218512,-90.955517)"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="circle3767" + cx="155.56081" + cy="193.90738" + r="5.8113842" /> + <rect + y="190.7887" + x="152.01535" + height="5.9058781" + width="7.0398064" + id="rect3905" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3907" + d="m 152.29883,192.58408 h 6.56734" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <rect + y="191.62651" + x="152.83641" + height="0.16704345" + width="0.16704345" + id="rect3909" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3914" + width="0.16704345" + height="0.16704345" + x="153.89473" + y="191.62651" /> + <rect + y="191.62651" + x="154.95305" + height="0.16704345" + width="0.16704345" + id="rect3916" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + id="g1576" + transform="translate(-0.97647774,-7.9005926)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-38.928452" + y="62.737072" + id="text62"><tspan + sodipodi:role="line" + id="tspan60" + x="-38.928452" + y="62.737072" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/temp,:23.4")</tspan></text> + <g + transform="matrix(0.03363891,0,0,0.03363891,-39.222755,56.412332)" + id="g1549"> + <g + id="g1528"> + <g + id="g6" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)"> + <path + id="path2-3" + d="m 261.67,296.581 v -180.47 h -49.168 v 180.462 c -19.719,9.275 -33.468,29.171 -33.468,52.41 0,32.06 25.985,58.044 58.045,58.044 32.058,0 58.051,-25.985 58.051,-58.044 0,-23.231 -13.741,-43.125 -33.46,-52.402 z" + inkscape:connector-curvature="0" /> + <path + id="path4-6" + d="m 364.786,157.086 c 9.051,0 16.389,-7.338 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 329.004 V 91.927 c 0,-0.136 -0.015,-0.264 -0.015,-0.4 h 35.797 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 H 322.715 C 309.368,24.424 276.06,0 237.079,0 186.389,0 145.15,41.238 145.15,91.927 v 158.431 c -27.289,25.465 -42.799,60.949 -42.799,98.441 0,74.291 60.445,134.728 134.735,134.728 74.281,0 134.719,-60.437 134.719,-134.728 0,-37.5 -15.51,-72.984 -42.8,-98.449 v -27.706 h 35.782 c 9.051,0 16.389,-7.339 16.389,-16.39 0,-9.051 -7.338,-16.39 -16.389,-16.39 h -35.782 v -32.779 h 35.781 z m -23.2,191.713 c 0,57.628 -46.881,104.509 -104.5,104.509 -57.628,0 -104.516,-46.88 -104.516,-104.509 0,-30.945 13.637,-60.132 37.405,-80.075 3.417,-2.865 5.395,-7.106 5.395,-11.572 V 91.927 c 0,-34.028 27.681,-61.709 61.709,-61.709 34.027,0 61.708,27.681 61.708,61.709 v 165.217 c 0,4.466 1.977,8.707 5.395,11.572 23.768,19.943 37.404,49.138 37.404,80.083 z" + inkscape:connector-curvature="0" /> + </g> + <g + id="g8" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g10" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g12" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g14" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g16" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g18" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g20" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g22" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g24" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g26" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g28" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g30" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g32" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g34" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + <g + id="g36" + transform="matrix(0.26458333,0,0,0.26458333,-134.16641,80.669421)" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="60.12804" + id="text1580"><tspan + sodipodi:role="line" + id="tspan1578" + x="-39.90493" + y="60.12804" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/pres,:997.3")</tspan></text> + <g + id="g1814"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.90493" + y="65.126755" + id="text1626"><tspan + sodipodi:role="line" + id="tspan1624" + x="-39.90493" + y="65.126755" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("sensors/bme280/hum,:78")</tspan></text> + <g + transform="matrix(0.04557466,0,0,0.04557466,-40.263237,60.716166)" + id="g1762"> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g10-7"> + <path + inkscape:connector-curvature="0" + d="m 209.306,50.798 c -2.452,-3.337 -7.147,-4.055 -10.485,-1.602 -3.338,2.453 -4.055,7.147 -1.603,10.485 54.576,74.266 66.032,123.541 66.032,151.8 0,27.691 -8.272,52.794 -23.293,70.685 -17.519,20.866 -42.972,31.446 -75.651,31.446 -73.031,0 -98.944,-55.018 -98.944,-102.131 0,-52.227 28.103,-103.234 51.679,-136.829 25.858,-36.847 52.11,-61.415 52.37,-61.657 3.035,-2.819 3.209,-7.565 0.39,-10.6 -2.819,-3.034 -7.565,-3.209 -10.599,-0.39 -1.11,1.031 -27.497,25.698 -54.254,63.765 -24.901,35.428 -54.586,89.465 -54.586,145.71 0,31.062 9.673,59.599 27.236,80.353 20.361,24.061 50.345,36.779 86.708,36.779 36.794,0 66.926,-12.726 87.139,-36.801 17.286,-20.588 26.806,-49.117 26.806,-80.33 C 278.25,156.216 240.758,93.597 209.306,50.798 Z" + id="path2-5" /> + <path + inkscape:connector-curvature="0" + d="m 198.43,148.146 -95.162,95.162 c -2.929,2.929 -2.929,7.678 0,10.606 1.465,1.464 3.385,2.197 5.304,2.197 1.919,0 3.839,-0.732 5.304,-2.197 l 95.162,-95.162 c 2.929,-2.929 2.929,-7.678 0,-10.606 -2.931,-2.929 -7.679,-2.929 -10.608,0 z" + id="path4-3" /> + <path + inkscape:connector-curvature="0" + d="m 191.965,207.899 c -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 z m 0,33.212 c -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.085,-9.106 9.106,-9.106 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 z" + id="path6-5" /> + <path + inkscape:connector-curvature="0" + d="m 125.178,194.162 c 13.292,0 24.106,-10.814 24.106,-24.106 0,-13.292 -10.814,-24.106 -24.106,-24.106 -13.292,0 -24.106,10.814 -24.106,24.106 0,13.292 10.814,24.106 24.106,24.106 z m 0,-33.213 c 5.021,0 9.106,4.085 9.106,9.106 0,5.021 -4.085,9.106 -9.106,9.106 -5.021,0 -9.106,-4.085 -9.106,-9.106 0,-5.021 4.084,-9.106 9.106,-9.106 z" + id="path8-6" /> + </g> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g12-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g14-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g16-1" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g18-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g20-7" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g22-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g24-9" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g26-3" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g28-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g30-0" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g32-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g34-2" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g36-6" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g38" /> + <g + transform="matrix(0.26458333,0,0,0.26458333,-99.254322,21.283712)" + id="g40" /> + </g> + </g> + <g + id="g2007"> + <circle + r="5.8113842" + cy="73.012321" + cx="-47.083607" + id="path3333" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g + transform="matrix(0.09148046,0,0,0.09148046,-49.828021,70.267908)" + id="g96"> + <g + id="g94"> + <circle + id="circle2" + r="1" + cy="5" + cx="5" /> + <circle + id="circle4" + r="1" + cy="5" + cx="55" /> + <circle + id="circle6" + r="1" + cy="55" + cx="5" /> + <circle + id="circle8" + r="1" + cy="56" + cx="11" /> + <circle + id="circle10" + r="1" + cy="56" + cx="15" /> + <circle + id="circle12" + r="1" + cy="56" + cx="19" /> + <circle + id="circle14" + r="1" + cy="56" + cx="23" /> + <circle + id="circle16" + r="1" + cy="39" + cx="38" /> + <circle + id="circle18" + r="1" + cy="39" + cx="34" /> + <circle + id="circle20" + r="1" + cy="36" + cx="36" /> + <circle + id="circle22" + r="1" + cy="39" + cx="30" /> + <circle + id="circle24" + r="1" + cy="39" + cx="26" /> + <circle + id="circle26" + r="1" + cy="36" + cx="32" /> + <circle + id="circle28" + r="1" + cy="36" + cx="28" /> + <circle + id="circle30" + r="1" + cy="39" + cx="22" /> + <circle + id="circle32" + r="1" + cy="36" + cx="24" /> + <circle + id="circle34" + r="1" + cy="33" + cx="38" /> + <circle + id="circle36" + r="1" + cy="33" + cx="34" /> + <circle + id="circle38" + r="1" + cy="30" + cx="36" /> + <circle + id="circle40" + r="1" + cy="33" + cx="30" /> + <circle + id="circle42" + r="1" + cy="33" + cx="26" /> + <circle + id="circle44" + r="1" + cy="30" + cx="32" /> + <circle + id="circle46" + r="1" + cy="30" + cx="28" /> + <circle + id="circle48" + r="1" + cy="33" + cx="22" /> + <circle + id="circle50" + r="1" + cy="30" + cx="24" /> + <circle + id="circle52" + r="1" + cy="27" + cx="38" /> + <circle + id="circle54" + r="1" + cy="27" + cx="34" /> + <circle + id="circle56" + r="1" + cy="24" + cx="36" /> + <circle + id="circle58" + r="1" + cy="27" + cx="30" /> + <circle + id="circle60" + r="1" + cy="27" + cx="26" /> + <circle + id="circle62" + r="1" + cy="24" + cx="32" /> + <circle + id="circle64" + r="1" + cy="24" + cx="28" /> + <circle + id="circle66" + r="1" + cy="27" + cx="22" /> + <circle + id="circle68" + r="1" + cy="24" + cx="24" /> + <circle + id="circle70" + r="1" + cy="21" + cx="38" /> + <circle + id="circle72" + r="1" + cy="21" + cx="34" /> + <circle + id="circle74" + r="1" + cy="21" + cx="30" /> + <circle + id="circle76" + r="1" + cy="21" + cx="26" /> + <circle + id="circle78" + r="1" + cy="21" + cx="22" /> + <circle + id="circle80" + r="1" + cy="55" + cx="55" /> + <path + id="path82" + d="m 51,25 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 21 H 45 V 19.357 C 45,16.955 43.045,15 40.643,15 H 39 V 11 H 37 V 9 C 37,8.447 36.552,8 36,8 35.448,8 35,8.447 35,9 v 2 H 33 V 9 C 33,8.447 32.552,8 32,8 31.448,8 31,8.447 31,9 v 2 H 29 V 9 C 29,8.447 28.552,8 28,8 27.448,8 27,8.447 27,9 v 2 H 25 V 9 C 25,8.447 24.552,8 24,8 23.448,8 23,8.447 23,9 v 2 h -2 v 4 H 19.357 C 16.955,15 15,16.955 15,19.357 V 21 h -4 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 H 9 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 2 h 4 v 1.643 C 15,43.045 16.955,45 19.357,45 H 21 v 4 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v 2 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -2 h 2 v -4 h 1.643 C 43.045,45 45,43.045 45,40.643 V 39 h 4 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 h -2 v -2 h 2 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 H 49 V 25 Z M 15,37 H 13 V 23 h 2 z m 8,-24 h 14 v 2 H 23 Z M 37,47 H 23 v -2 h 14 z m 6,-26 v 18 1.643 C 43,41.943 41.942,43 40.643,43 H 39 21 19.357 C 18.058,43 17,41.942 17,40.643 V 39 21 19.357 C 17,18.057 18.058,17 19.357,17 H 21 39 40.643 c 1.3,0 2.357,1.058 2.357,2.357 z m 4,16 H 45 V 23 h 2 z" + inkscape:connector-curvature="0" /> + <circle + id="circle84" + r="1" + cy="37" + cx="4" /> + <circle + id="circle86" + r="1" + cy="41" + cx="4" /> + <circle + id="circle88" + r="1" + cy="45" + cx="4" /> + <circle + id="circle90" + r="1" + cy="49" + cx="4" /> + <path + id="path92" + d="M 54.501,0 H 46 V 1 C 46,2.654 44.654,4 43,4 41.346,4 40,2.654 40,1 V 0 H 5.499 C 2.467,0 0,2.467 0,5.499 V 12 h 4 v 2 H 0 V 54.501 C 0,57.533 2.467,60 5.499,60 H 40 v -1 c 0,-1.654 1.346,-3 3,-3 1.654,0 3,1.346 3,3 v 1 h 8.501 C 57.533,60 60,57.533 60,54.501 V 5.499 C 60,2.467 57.533,0 54.501,0 Z M 58,17 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 v 1 h -2 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 2 V 54.501 C 58,56.431 56.431,58 54.501,58 H 47.899 C 47.435,55.721 45.414,54 43,54 c -2.414,0 -4.435,1.721 -4.899,4 H 5.499 C 3.569,58 2,56.431 2,54.501 V 16 H 6 V 10 H 2 V 5.499 C 2,3.569 3.569,2 5.499,2 h 32.602 c 0.464,2.279 2.484,4 4.899,4 2.415,0 4.435,-1.721 4.899,-4 h 6.602 C 56.431,2 58,3.569 58,5.499 Z" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + id="g98" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g100" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g102" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g104" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g106" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g108" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g110" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g112" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g114" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g116" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g118" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g120" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g122" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g124" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g126" + transform="matrix(0.09148046,0,0,0.09148046,-76.058189,78.567665)" /> + <g + id="g2145" + transform="translate(-40.375566,19.674164)"> + <g + id="g8-1" + transform="matrix(0.01707528,0,0,0.01707528,-22.348822,30.582131)"> + <path + id="path4-8" + d="M 861.5,169.2 C 771.9,71.4 643.1,10 500,10 229.4,10 10,229.4 10,500 h 91.9 c 0,-219.9 178.3,-398.1 398.1,-398.1 117.7,0 223.5,51.1 296.4,132.4 L 653.1,377.5 H 990 V 40.6 Z" + inkscape:connector-curvature="0" /> + <path + id="path6-7" + d="M 898.1,500 C 898.1,719.9 719.8,898.1 500,898.1 382.3,898.1 276.5,847 203.6,765.7 L 346.9,622.4 H 10 V 959.3 L 138.5,830.8 C 228.1,928.7 356.9,990 500,990 770.6,990 990,770.6 990,500 Z" + inkscape:connector-curvature="0" /> + </g> + <text + id="text2021" + y="40.060581" + x="-19.355824" + style="font-style:normal;font-weight:normal;font-size:7.76111126px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:7.76111126px;stroke-width:0.26458332px" + y="40.060581" + x="-19.355824" + id="tspan2019" + sodipodi:role="line">5s</tspan></text> + </g> + <g + id="g81" + transform="matrix(0.00844961,0,0,0.00844961,-44.677164,56.505598)"> + <g + id="g6-0"> + <g + id="g4"> + <path + inkscape:connector-curvature="0" + id="path2" + d="M 256,0 C 114.51,0 0,114.497 0,256 0,397.491 114.497,512 256,512 397.49,512 512,397.503 512,256 512,114.509 397.503,0 256,0 Z m 0,478.609 C 133.254,478.609 33.391,378.747 33.391,256 33.391,133.253 133.254,33.391 256,33.391 c 122.746,0 222.609,99.863 222.609,222.609 0,122.746 -99.863,222.609 -222.609,222.609 z" /> + </g> + </g> + <g + id="g12-23"> + <g + id="g10-75"> + <path + inkscape:connector-curvature="0" + id="path8" + d="M 256,66.783 C 151.29,66.783 66.783,151.738 66.783,256 c 0,48.619 18.872,97.248 55.421,133.797 6.52,6.52 17.091,6.52 23.611,0 l 23.611,-23.611 c 6.52,-6.519 6.52,-17.09 0,-23.611 -6.519,-6.52 -17.09,-6.52 -23.611,0 l -11.177,11.177 c -19.241,-23.851 -30.408,-52.1 -33.501,-81.056 h 15.734 c 9.22,0 16.696,-7.475 16.696,-16.696 0,-9.22 -7.475,-16.696 -16.696,-16.696 h -15.725 c 3.094,-28.955 14.261,-57.198 33.5,-81.05 l 11.17,11.169 c 6.52,6.52 17.091,6.52 23.611,0 6.519,-6.519 6.519,-17.091 0,-23.611 l -11.175,-11.175 c 23.276,-18.804 51.227,-30.356 81.054,-33.5 v 15.732 c 0,9.22 7.475,16.696 16.696,16.696 9.22,0 16.696,-7.475 16.696,-16.696 v -15.731 c 29.827,3.144 57.777,14.698 81.054,33.5 L 281.72,206.67 c -7.699,-4.03 -16.444,-6.323 -25.719,-6.323 -30.687,0 -55.652,24.966 -55.652,55.652 0,30.687 24.966,55.652 55.652,55.652 30.687,0 55.652,-24.966 55.652,-55.652 0,-9.275 -2.293,-18.02 -6.323,-25.718 l 72.026,-72.026 c 19.239,23.85 30.406,52.094 33.5,81.05 H 395.13 c -9.22,0 -16.696,7.475 -16.696,16.696 0,9.22 7.475,16.696 16.696,16.696 h 15.734 c -3.093,28.956 -14.26,57.206 -33.501,81.056 l -11.177,-11.177 c -6.519,-6.519 -17.091,-6.519 -23.611,0 -6.52,6.52 -6.52,17.091 0,23.611 l 23.611,23.611 c 6.52,6.52 17.091,6.52 23.611,0 C 426.279,353.315 445.218,304.714 445.218,256 445.217,151.681 360.676,66.783 256,66.783 Z m 0,211.478 c -12.275,0 -22.261,-9.986 -22.261,-22.261 0,-12.275 9.986,-22.261 22.261,-22.261 12.275,0 22.261,9.986 22.261,22.261 0,12.275 -9.986,22.261 -22.261,22.261 z" /> + </g> + </g> + <g + id="g18-9"> + <g + id="g16-2"> + <path + inkscape:connector-curvature="0" + id="path14" + d="m 272.696,345.043 h -33.391 c -27.618,0 -50.087,22.469 -50.087,50.087 0,27.618 22.469,50.087 50.087,50.087 h 33.391 c 27.618,0 50.087,-22.469 50.087,-50.087 0,-27.618 -22.469,-50.087 -50.087,-50.087 z m 0,66.783 h -33.391 c -9.206,0 -16.696,-7.49 -16.696,-16.696 0,-9.206 7.49,-16.696 16.696,-16.696 h 33.391 c 9.206,0 16.696,7.49 16.696,16.696 0,9.206 -7.49,16.696 -16.696,16.696 z" /> + </g> + </g> + <g + id="g20-2" /> + <g + id="g22-8" /> + <g + id="g24-97" /> + <g + id="g26-36" /> + <g + id="g28-1" /> + <g + id="g30-2" /> + <g + id="g32-9" /> + <g + id="g34-3" /> + <g + id="g36-1" /> + <g + id="g38-9" /> + <g + id="g40-4" /> + <g + id="g42" /> + <g + id="g44" /> + <g + id="g46" /> + <g + id="g48" /> + </g> + <g + id="g2510" + transform="rotate(-49.838941,-2.2851013,117.97267)"> + <text + id="text27-0" + y="150.02438" + x="-48.269562" + style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan29-3" + style="font-size:7.05555534px;stroke-width:0.26458332px" + y="150.02438" + x="-48.269562" + sodipodi:role="line">button.py</tspan></text> + <g + transform="translate(22.530938,-30.78856)" + id="g301"> + <text + id="text62-6" + y="156.87811" + x="-29.533283" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="156.87811" + x="-29.533283" + id="tspan60-1" + sodipodi:role="line">publish("gpio/491,:1")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-40.352325" + y="156.95613" + id="text70"><tspan + sodipodi:role="line" + id="tspan68" + x="-40.352325" + y="156.95613" + style="font-size:4.23333311px;stroke-width:0.26458332px">0</tspan></text> + <text + id="text74" + y="152.72278" + x="-34.002323" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;stroke-width:0.26458332px" + y="152.72278" + x="-34.002323" + id="tspan72" + sodipodi:role="line">1</tspan></text> + <g + id="g290-0"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -39.823158,157.48531 h 3.207234 l 2.386237,-4.13308 h 2.691884" + id="path64" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" + id="path279" + d="m -36.31478,155.34196 1.018492,-0.27291 0.368825,1.00632" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + </g> + <g + transform="translate(22.530938,-22.85106)" + id="g321"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-29.533283" + y="156.87811" + id="text305"><tspan + sodipodi:role="line" + id="tspan303" + x="-29.533283" + y="156.87811" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("gpio/491,:0")</tspan></text> + <text + id="text309" + y="156.95613" + x="-33.473156" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:4.23333311px;stroke-width:0.26458332px" + y="156.95613" + x="-33.473156" + id="tspan307" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-39.293991" + y="152.72278" + id="text313"><tspan + sodipodi:role="line" + id="tspan311" + x="-39.293991" + y="152.72278" + style="font-size:4.23333311px;stroke-width:0.26458332px">1</tspan></text> + <g + id="g319"> + <path + inkscape:connector-curvature="0" + id="path315" + d="m -39.823158,153.35224 h 3.207234 l 2.386237,4.13308 h 2.691884" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -36.21438,155.60031 1.018492,0.27291 0.368825,-1.00632" + id="path317" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + </g> + </g> + <path + inkscape:connector-curvature="0" + id="path1715-2-6" + d="M 52.267014,136.90218 H -30.456665" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000008, 0.50000003;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-5-4)" + sodipodi:nodetypes="cc" /> + <g + transform="translate(12.476768,-23.417004)" + id="g3765"> + <circle + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3333-3" + cx="-49.729439" + cy="160.3616" + r="5.8113842" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3335" + width="5.1499252" + height="5.1026788" + x="-52.280777" + y="157.90475" + ry="1.0394346" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -53.591883,158.83789 h 0.921317" + id="path3339" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3341" + d="m -53.591883,159.89623 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -53.591883,160.95454 h 0.921317" + id="path3343" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3345" + d="m -53.591883,162.01288 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3347" + d="m -46.712715,158.83789 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -46.712715,159.89623 h 0.921317" + id="path3349" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3351" + d="m -46.712715,160.95454 h 0.921317" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -46.712715,162.01288 h 0.921317" + id="path3353" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotS-7)" + d="m -51.961861,160.12537 h 2.173363 l 1.122117,-1.07487" + id="path3355" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3649)" + d="m -47.414335,160.69234 -2.22061,0.0118 -1.204799,0.94494" + id="path3357" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + id="g2656" + transform="rotate(-15.606199,-269.71919,-273.16496)"> + <text + transform="rotate(14.622393)" + id="text333-6" + y="155.19707" + x="-87.923203" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="155.19707" + x="-87.923203" + id="tspan331-9" + sodipodi:role="line">subscribe("gpio/#")</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727-5)" + d="M -63.873821,145.47155 -140.59088,124.19404" + id="path335-3" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path1715-7" + d="m -142.02562,130.01349 77.194273,21.6287" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000006, 0.50000002;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282-7)" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.8199513px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-95.331955" + y="160.10796" + id="text2189-4" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2187-5" + x="-95.331955" + y="160.10796" + style="font-size:3.8199513px;stroke-width:0.17906021px">publish("491,:1")</tspan></text> + <text + id="text2193" + y="160.16075" + x="-102.65388" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:2.86496329px;stroke-width:0.17906021px" + y="160.16075" + x="-102.65388" + id="tspan2191" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-97.747635" + y="159.88875" + id="text2197" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2195" + x="-97.747635" + y="159.88875" + style="font-size:2.86496329px;stroke-width:0.17906021px">1</tspan></text> + <path + inkscape:connector-curvature="0" + id="path2199" + d="m -138.47354,130.5979 2.10451,0.53128 2.25043,-2.31676 1.76636,0.4459" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -135.81638,129.77264 0.71352,-0.0104 0.0753,0.72142" + id="path2201" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + <text + id="text2209-2" + y="160.65109" + x="-59.86565" + style="font-style:normal;font-weight:normal;font-size:3.8199513px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:3.8199513px;stroke-width:0.17906021px" + y="160.65109" + x="-59.86565" + id="tspan2207-5" + sodipodi:role="line">publish("491,:0")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-61.857147" + y="159.91919" + id="text2213" + transform="rotate(14.16793)"><tspan + sodipodi:role="line" + id="tspan2211" + x="-61.857147" + y="159.91919" + style="font-size:2.86496329px;stroke-width:0.17906021px">0</tspan></text> + <text + id="text2217" + y="159.72408" + x="-65.854927" + style="font-style:normal;font-weight:normal;font-size:2.86496329px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + transform="rotate(14.16793)"><tspan + style="font-size:2.86496329px;stroke-width:0.17906021px" + y="159.72408" + x="-65.854927" + id="tspan2215" + sodipodi:role="line">1</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -102.68794,136.49774 2.10452,0.53127 0.881158,3.10731 1.766353,0.44591" + id="path2219" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" + id="path2221" + d="m -100.69233,138.57066 0.62311,0.34779 0.408707,-0.59923" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17906021px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + transform="rotate(-48.433733,156.11619,124.67133)" + id="g6406"> + <text + transform="rotate(15.583653)" + id="text6382" + y="59.623699" + x="91.356277" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="59.623699" + x="91.356277" + id="tspan6380" + sodipodi:role="line">subscribe("sensors/bme280/#")</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4727)" + d="M 67.051433,82.414609 143.69012,103.97268" + id="path6384" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path6386" + d="M 141.33358,109.53465 64.104759,88.029647" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.50000004, 0.50000001;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker2282)" + sodipodi:nodetypes="cc" /> + <g + id="g6404" + transform="matrix(0.65617761,0.16564772,-0.16564772,0.65617761,42.497112,7.3640485)"> + <g + transform="translate(90.740182,-50.780764)" + id="g6392"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-29.533283" + y="156.87811" + id="text6390"><tspan + sodipodi:role="line" + id="tspan6388" + x="-29.533283" + y="156.87811" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("temp,:22.9")</tspan></text> + </g> + <g + id="g6402" + transform="translate(106.37327,-39.134171)"> + <text + transform="rotate(1.7657766)" + id="text6396" + y="145.27306" + x="12.708021" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:5.64444447px;stroke-width:0.26458332px" + y="145.27306" + x="12.708021" + id="tspan6394" + sodipodi:role="line">publish("pres,:999.1")</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="11.985039" + y="153.66335" + id="text6400" + transform="rotate(1.7657766)"><tspan + sodipodi:role="line" + id="tspan6398" + x="11.985039" + y="153.66335" + style="font-size:5.64444447px;stroke-width:0.26458332px">publish("hum,:70")</tspan></text> + </g> + </g> + </g> + <g + transform="translate(-1.3363476,13.199608)" + id="g6418"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="57.658592" + y="158.35393" + id="text6414"><tspan + sodipodi:role="line" + id="tspan6408" + x="57.658592" + y="158.35393" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px">Mosquitto</tspan><tspan + sodipodi:role="line" + x="57.658592" + y="163.6456" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + id="tspan6410">MQTT</tspan><tspan + sodipodi:role="line" + x="57.658592" + y="168.93726" + style="font-size:4.23333311px;text-align:center;text-anchor:middle;stroke-width:0.26458332px" + id="tspan6412">Broker</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 51.808521,150.54217 h 11.225321 l 5.445617,9.35444 -5.512435,9.72193 H 51.541253 l -5.311982,-9.38785 z" + id="path6416" + inkscape:connector-curvature="0" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:11.28888893px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="47.899746" + y="94.59903" + id="text6422"><tspan + sodipodi:role="line" + id="tspan6420" + x="47.899746" + y="94.59903" + style="stroke-width:0.26458332px">NUC#1</tspan></text> + <text + id="text6426" + y="194.61159" + x="47.899746" + style="font-style:normal;font-weight:normal;font-size:11.28888893px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.26458332px" + y="194.61159" + x="47.899746" + id="tspan6424" + sodipodi:role="line">NUC#2</tspan></text> + </g> +</svg> diff --git a/lab02/telegraf.conf b/lab02/telegraf.conf new file mode 100644 index 0000000000000000000000000000000000000000..e9494328db55d45322183c46aaed140e35b0d9df --- /dev/null +++ b/lab02/telegraf.conf @@ -0,0 +1,231 @@ +# Telegraf Configuration +# +# Telegraf is entirely plugin driven. All metrics are gathered from the +# declared inputs, and sent to the declared outputs. +# +# Plugins must be declared in here to be active. +# To deactivate a plugin, comment out the name and any variables. +# +# Use 'telegraf -config telegraf.conf -test' to see what metrics a config +# file would generate. +# +# Environment variables can be used anywhere in this config file, simply surround +# them with ${}. For strings the variable must be within quotes (ie, "${STR_VAR}"), +# for numbers and booleans they should be plain (ie, ${INT_VAR}, ${BOOL_VAR}) + + +# Global tags can be specified here in key="value" format. +[global_tags] + # dc = "us-east-1" # will tag all metrics with dc=us-east-1 + # rack = "1a" + ## Environment variables can be used as tags, and throughout the config file + # user = "$USER" + + +# Configuration for telegraf agent +[agent] + ## Default data collection interval for all inputs + interval = "30s" + ## Rounds collection interval to 'interval' + ## ie, if interval="10s" then always collect on :00, :10, :20, etc. + round_interval = true + + ## Telegraf will send metrics to outputs in batches of at most + ## metric_batch_size metrics. + ## This controls the size of writes that Telegraf sends to output plugins. + metric_batch_size = 1000 + + ## Maximum number of unwritten metrics per output. Increasing this value + ## allows for longer periods of output downtime without dropping metrics at the + ## cost of higher maximum memory usage. + metric_buffer_limit = 10000 + + ## Collection jitter is used to jitter the collection by a random amount. + ## Each plugin will sleep for a random time within jitter before collecting. + ## This can be used to avoid many plugins querying things like sysfs at the + ## same time, which can have a measurable effect on the system. + collection_jitter = "0s" + + ## Default flushing interval for all outputs. Maximum flush_interval will be + ## flush_interval + flush_jitter + flush_interval = "30s" + ## Jitter the flush interval by a random amount. This is primarily to avoid + ## large write spikes for users running a large number of telegraf instances. + ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s + flush_jitter = "0s" + + ## By default or when set to "0s", precision will be set to the same + ## timestamp order as the collection interval, with the maximum being 1s. + ## ie, when interval = "10s", precision will be "1s" + ## when interval = "250ms", precision will be "1ms" + ## Precision will NOT be used for service inputs. It is up to each individual + ## service input to set the timestamp at the appropriate precision. + ## Valid time units are "ns", "us" (or "Âľs"), "ms", "s". + precision = "" + + ## Log at debug level. + #debug = true + ## Log only error level messages. + quiet = false + + ## Log target controls the destination for logs and can be one of "file", + ## "stderr" or, on Windows, "eventlog". When set to "file", the output file + ## is determined by the "logfile" setting. + logtarget = "stderr" + + ## Name of the file to be logged to when using the "file" logtarget. If set to + ## the empty string then logs are written to stderr. + # logfile = "" + + ## The logfile will be rotated after the time interval specified. When set + ## to 0 no time based rotation is performed. Logs are rotated only when + ## written to, if there is no log activity rotation may be delayed. + # logfile_rotation_interval = "0d" + + ## The logfile will be rotated when it becomes larger than the specified + ## size. When set to 0 no size based rotation is performed. + # logfile_rotation_max_size = "0MB" + + ## Maximum number of rotated archives to keep, any older logs are deleted. + ## If set to -1, no archives are removed. + # logfile_rotation_max_archives = 5 + + ## Override default hostname, if empty use os.Hostname() + hostname = "" + ## If set to true, do no set the "host" tag in the telegraf agent. + omit_hostname = true + + +############################################################################### +# OUTPUT PLUGINS # +############################################################################### + + +# Configuration for sending metrics to InfluxDB +[[outputs.influxdb]] + ## The full HTTP or UDP URL for your InfluxDB instance. + ## + ## Multiple URLs can be specified for a single cluster, only ONE of the + ## urls will be written to each interval. + # urls = ["unix:///var/run/influxdb.sock"] + # urls = ["udp://127.0.0.1:8089"] +urls = ["http://172.17.0.1:8086"] + + ## The target database for metrics; will be created as needed. + ## For UDP url endpoint database needs to be configured on server side. +database = "sensors" + + ## The value of this tag will be used to determine the database. If this + ## tag is not set the 'database' option is used as the default. + # database_tag = "" + + ## If true, the database tag will not be added to the metric. + # exclude_database_tag = false + + ## If true, no CREATE DATABASE queries will be sent. Set to true when using + ## Telegraf with a user without permissions to create databases or when the + ## database already exists. +skip_database_creation = true + + ## Name of existing retention policy to write to. Empty string writes to + ## the default retention policy. Only takes effect when using HTTP. + # retention_policy = "" + + ## Write consistency (clusters only), can be: "any", "one", "quorum", "all". + ## Only takes effect when using HTTP. + # write_consistency = "any" + + ## Timeout for HTTP messages. + # timeout = "5s" + + ## HTTP Basic Auth +username = "telegraf" +password = "telegraf" + + +############################################################################### +# INPUT PLUGINS # +############################################################################### + +# # Aggregates the contents of multiple files into a single point +[[inputs.multifile]] +# ## Base directory where telegraf will look for files. +# ## Omit this option to use absolute paths. + base_dir = "/sys/bus/iio/devices/iio:device0" +# +# ## If true, Telegraf discard all data when a single file can't be read. +# ## Else, Telegraf omits the field generated from this file. +# # fail_early = true +# +# ## Files to parse each interval. +[[inputs.multifile.file]] + file = "in_pressure_input" + dest = "pressure" + conversion = "float" +[[inputs.multifile.file]] + file = "in_temp_input" + dest = "temperature" + conversion = "float(3)" +[[inputs.multifile.file]] + file = "in_humidityrelative_input" + dest = "humidityrelative" + conversion = "float(3)" + +# # Read metrics from MQTT topic(s) +# [[inputs.mqtt_consumer]] +# # ## MQTT broker URLs to be used. The format should be scheme://host:port, +# # ## schema can be tcp, ssl, or ws. +# #servers = ["tcp://172.17.0.1:1883"] +# # +# # ## Topics that will be subscribed to. +# topics = [ +# "sensors/" +# ] +# # +# # ## The message topic will be stored in a tag specified by this value. If set +# # ## to the empty string no topic tag will be created. +# # # topic_tag = "topic" +# # +# # ## QoS policy for messages +# # ## 0 = at most once +# # ## 1 = at least once +# # ## 2 = exactly once +# # ## +# # ## When using a QoS of 1 or 2, you should enable persistent_session to allow +# # ## resuming unacknowledged messages. +# # # qos = 0 +# # +# # ## Connection timeout for initial connection in seconds +# connection_timeout = "30s" +# # +# # ## Maximum messages to read from the broker that have not been written by an +# # ## output. For best throughput set based on the number of metrics within +# # ## each message and the size of the output's metric_batch_size. +# # ## +# # ## For example, if each message from the queue contains 10 metrics and the +# # ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# # ## full batch is collected and the write is triggered immediately without +# # ## waiting until the next flush_interval. +# # # max_undelivered_messages = 1000 +# # +# # ## Persistent session disables clearing of the client session on connection. +# # ## In order for this option to work you must also set client_id to identify +# # ## the client. To receive messages that arrived while the client is offline, +# # ## also set the qos option to 1 or 2 and don't forget to also set the QoS when +# # ## publishing. +# # # persistent_session = false +# # +# # ## If unset, a random client ID will be generated. +# # # client_id = "" +# # + +# # ## Data format to consume. +# # ## Each data format has its own unique set of configuration options, read +# # ## more about them here: +# # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# #data_format = "influx" +# #temp,site=room1 value=25.6532912641 +# #name_override = "temp" + +# Print all metrics that pass through this filter. +[[processors.printer]] \ No newline at end of file diff --git a/lab03/README.md b/lab03/README.md new file mode 100644 index 0000000000000000000000000000000000000000..bd7747ff3f169abd2e933ccaca0d9204c52bf814 --- /dev/null +++ b/lab03/README.md @@ -0,0 +1,48 @@ +## Czytnik NFC + +Sprawdz switch + +TODO: PoprawiÄ schemat+ Rys z ustawieniem switch + +- Sprawdzenie poprawnej komunikacji z NF532 na magistrali I2C +```bash +modprobe i2c_dev +i2cdetect -y -r 8 +cat /etc/nfc/libnfc.conf +nfc-list +nfc-poll +``` +ZawartoĹÄ pliku /etc/nfc/libnfc.conf +````bash +device.name = "PN532 over I2C" +device.connstring = "pn532_i2c:/dev/i2c-1" +```` +Po uruchomieniu komendy 'nfc-pool' przyĹóş kartÄ NFC do czytnika, powinien wyĹwietliÄ siÄ UID karty. + + +### ObsĹuga czytnika w Pythonie: +- Instalacja biblioteki py532lib: +```bash +source virtenv/bin/activate +pip install py532lib +``` + +- PrzykĹadowy kod programu: +```python +from py532lib.i2c import * +from py532lib.frame import * +from py532lib.constants import * + +pn532 = Pn532_i2c(i2c_channel=8) +pn532.SAMconfigure() + +while(True): + card_data = pn532.read_mifare().get_data() + print(card_data) +``` + + +### Zadania (3pkt.): + - DodaÄ obsĹugÄ czytnika NFC do MQTT - aplikacja nfcReader.py (topic 'sensors/nfc') (1pkt.) + - ZmieÄ diodÄ LED na ON (na 5s) kiedy odczyta znanÄ kartÄ NFC, brak reakcji na inne karty- aplikacja recvNfc.py odbiera wiadomoĹci z topis 'sensors/nfc' i ustawia diode w topicu 'led/490' (1pkt.) + - j.w wĹÄ czyÄ/wyĹÄ czyÄ diodÄ na innym NUCDevKit (1pkt.) \ No newline at end of file diff --git a/lab03/img/PN532_python_test.gif b/lab03/img/PN532_python_test.gif new file mode 100644 index 0000000000000000000000000000000000000000..d5a4522fa6296422e40d27955aad9f69bba0c8a1 Binary files /dev/null and b/lab03/img/PN532_python_test.gif differ diff --git a/lab03/img/PN532_testS.gif b/lab03/img/PN532_testS.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bc27adbca3bb8ed32b4dcaa8c5b3aebefb726bd Binary files /dev/null and b/lab03/img/PN532_testS.gif differ diff --git a/lab03/img/lab2_nfc.png b/lab03/img/lab2_nfc.png new file mode 100644 index 0000000000000000000000000000000000000000..daf7fb97b741a134f7683d63e0cfd1e1eb9670d9 Binary files /dev/null and b/lab03/img/lab2_nfc.png differ diff --git a/lab03/img/lab2_nfc.svg b/lab03/img/lab2_nfc.svg new file mode 100644 index 0000000000000000000000000000000000000000..31f807b64b8d39496266caa8875ac74e6a481987 --- /dev/null +++ b/lab03/img/lab2_nfc.svg @@ -0,0 +1,1463 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg869" + width="544.32379" + height="226" + viewBox="0 0 544.32379 226" + sodipodi:docname="lab2_nfc.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + inkscape:export-filename="/home/robert/inbox/03_work/ztb/03_newLab/ztb_lab2020/lab2_nfc.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <metadata + id="metadata875"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs873"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath946"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect948" + width="222.18094" + height="139.40001" + x="160.87619" + y="-189.46666" /> + </clipPath> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview871" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.90544161" + inkscape:cx="-23.144499" + inkscape:cy="239.9811" + inkscape:current-layer="svg869" /> + <image + width="451" + height="226" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 +h0peNCco2wAAAABJRU5ErkJggg== +" + id="image877" + x="0" + y="0" /> + <image + y="-237.14761" + x="158.09999" + id="image941" + xlink:href="data:image/jpeg;base64,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 +" + preserveAspectRatio="none" + height="225" + width="225" + clip-path="url(#clipPath946)" + transform="matrix(-1.2073814,0,0,-1.2073814,738.5627,-13.287636)" /> +</svg> diff --git a/lab04/README.md b/lab04/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lab05/README.md b/lab05/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391