Skip to content

Commit

Permalink
Merge pull request #153 from v00g100skr/develop
Browse files Browse the repository at this point in the history
3.7
  • Loading branch information
v00g100skr authored Mar 3, 2024
2 parents 5e3d54a + ebbf13b commit 584cb7f
Show file tree
Hide file tree
Showing 14 changed files with 716 additions and 323 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/beta_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
uses: actions/checkout@v4
- name: Replace version in firmware source
run: |
sed -i "s/String VERSION = \".*\";/String VERSION = \"${{ env.BETA_VERSION }}\";/" ${{ github.workspace }}/src/firmware/firmware.ino
sed -i 's/VERSION = ".*";/VERSION = "${{ env.BETA_VERSION }}";/' ${{ github.workspace }}/src/firmware/firmware.ino
- name: Compile firmware
uses: ./.github/workflows/firmware-compile
- name: Copy release files to bin folder
Expand Down Expand Up @@ -61,5 +61,6 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_update_server.sh -s '/root/ukraine_alarm_map/bin' -sb '/root/ukraine_alarm_map/bin_beta' -m ${{ secrets.MEMCACHED_HOST }}
11 changes: 10 additions & 1 deletion .github/workflows/deploy_server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_tcp_server.sh -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy WebSockets
if: ${{ inputs.redeploy_web_sockets || inputs.redeploy_all }}
Expand All @@ -71,6 +72,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_websocket_server.sh -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Update Server (bin list)
if: ${{ inputs.redeploy_update_server || inputs.redeploy_all }}
Expand All @@ -83,6 +85,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_update_server.sh -s '/root/ukraine_alarm_map/bin' -sb '/root/ukraine_alarm_map/bin_beta' -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Web Server
if: ${{ inputs.redeploy_web_server || inputs.redeploy_all }}
Expand All @@ -95,6 +98,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_web_server.sh -d ${{ secrets.WEB_TOKEN }} -p 80 -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Weather
if: ${{ inputs.redeploy_weather || inputs.redeploy_all }}
Expand All @@ -107,6 +111,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_weather.sh -w ${{ secrets.WEATHER_TOKEN }} -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Updater
if: ${{ inputs.redeploy_updater || inputs.redeploy_all }}
Expand All @@ -119,6 +124,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_updater.sh -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Svg Generator
if: ${{ inputs.redeploy_svg_generator || inputs.redeploy_all }}
Expand All @@ -131,6 +137,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_svg_generator.sh -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Explosions
if: ${{ inputs.redeploy_explosions || inputs.redeploy_all }}
Expand All @@ -143,6 +150,7 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
git pull
bash redeploy_explosions.sh -e ${{ secrets.ETRYVOGA_HOST }} -m ${{ secrets.MEMCACHED_HOST }}
- name: Redeploy Alerts
if: ${{ inputs.redeploy_alerts || inputs.redeploy_all }}
Expand All @@ -155,4 +163,5 @@ jobs:
cd /root/ukraine_alarm_map/deploy/
git fetch --all
git checkout ${{ github.ref_name }}
bash redeploy_alerts.sh -a ${{ secrets.AIR_ALARM_API_KEY }} -p 2 -m ${{ secrets.MEMCACHED_HOST }}
git pull
bash redeploy_alerts.sh -a ${{ secrets.AIR_ALARM_API_KEY }} -p 2 -m ${{ secrets.MEMCACHED_HOST }}
8 changes: 8 additions & 0 deletions .github/workflows/firmware-compile/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ runs:
version: 7.0.3
- name: ArduinoWebsockets
version: 0.5.3
- name: BME280
version: 3.0.0
- name: SHT2x
version: 0.5.0
- name: SHT31
version: 0.5.0
- name: BH1750
version: 1.3.0
enable-warnings-report: ${{ inputs.enable-warnings-report }}
enable-deltas-report: ${{ inputs.enable-deltas-report }}
sketches-report-path: ${{ inputs.sketches-report-path }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v4
- name: Replace version in firmware source
run: |
sed -i "s/String VERSION = \".*\";/String VERSION = \"${{ inputs.release-version }}\";/" ${{ github.workspace }}/src/firmware/firmware.ino
sed -i 's/VERSION = ".*";/VERSION = "${{ inputs.release-version }}";/' ${{ github.workspace }}/src/firmware/firmware.ino
- name: Compile firmware
uses: ./.github/workflows/firmware-compile
- name: Copy release files to bin folder
Expand Down
28 changes: 23 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,20 @@

-->> [ПОРТАЛ ДАНИХ](http://alerts.net.ua) <<--

Прошивка використовує бібліотеку **_NeoPixelBus_** (треба додатково встановити в Arduinо IDE по аналогії з іншими попередніми, останню версію брати [тут](https://github.com/Makuna/NeoPixelBus))
Прошивка використовує бібліотеку **_NeoPixelBus_** (останню версію брати [тут](https://github.com/Makuna/NeoPixelBus))

Прошивка використовує _**async**_ в роботі, що дозволяє запускати декілька процесів одночасно і більш швидко реагувати на зміни

Прошивка використовує _**власний сервер даних**_ [alerts.net.ua](http://alerts.net.ua/) для отримування даних про тривоги і погоду

Прошивка використовує _**TCP-сокет**_ для коннекта з сервером даних, що дозволяє майже миттєво отримувати оновлення даних
Прошивка використовує _**Websockets**_ для коннекта з сервером даних, що дозволяє майже миттєво отримувати оновлення даних

### Прошивка має такі можливості:
- режим відображення повітряних тривог, оснований на офіційному api https://www.ukrainealarm.com/
- режим відображення погоди, оснований на даних сайту https://openweathermap.org/
- режим прапора
- режим випадкових кольорів
- режим лампи
- режим offline - мапа не відображає нічого

### Для отримання даних не треба мати ключі для апи тривог або openweathermap - все вже є в нашому api
Expand All @@ -45,7 +47,9 @@
### Режим дисплея вмикається окремо через налаштування:
- поточний час
- погода
- також є сервісні сповіщення при старті мапи та при проблемних ситуаціях з мапою
- технічна інформація мапи
- дані з датчика температури і вологості
- також є сервісні сповіщення при старті мапи, при проблемних ситуаціях з мапою та процессі перемикання режимів

### Мапа має _**вбудований web-сервер**_
для керування всіми налаштуваннями. Сторінка керування знаходиться по адресі [alarmmap.local](http://alarmmap.local) (або по ip). Також доступна сервісна сторінка [alarmmap.local:8080](http://alarmmap.local:8080), де можна змініти wifi, перевантажити мапу або перепрошити, якшо у вас e готовий зібраний файл прошивки і ви не хочете використовувати arduino ide
Expand All @@ -57,14 +61,26 @@
HA бачить мапу як окремий прилад розумного будинку і має можливість керувати мапою

### Мапа може бути обладнана _**сенсорною кнопкою**_ ttp223 (на платі jaam кнопка вже є)
Кнопка дозволяє перемикати всі наявні режими в мапі
- саму мапу (тривога,погода, прапор, вимикання)
Є підтримка довгого натиснення на кнопку - модна встановити долдатковий режим
Кнопка дозволяє перемикати всі наявні режими в мапі:
- саму мапу (тривога, погода, прапор, вимикання)
- дисплей (вимикання, годинник, погода)

Список можливих дій на кнопці:
- "Вимкнено"
- "Перемикання режимів мапи"
- "Перемикання режимів дисплея"
- "Увімк./Вимк. мапу"
- "Увімк./Вимк. дисплей"
- "Увімк./Вимк. мапу та дисплей"
- "Увімк./Вимк. нічний режим"
- "Перезавантаження пристрою" (доступно тількі для довгого натискання)


### Мапа підтримуе певний рівень кастомізацій:
- загальна яскравість
- яскравість, основана на часі (нічний режим з зниженою яскравістю)
- яскравість, основана на даних датчика освітлення (якщо встановлений)
- можливість окремого світодіода для Кієва, або замість Київської області, або обидна одночасно (дана кастомізація потребує окремого світодіода в позиції 8 перед Киівською областю, загальна довжина стрічкі збільшиться с 25 до 26 світодіодів). Також є комбінований режим "Кіїв-Киівська область" для одного діода, який показує тривогу, якщо вона є в Києві або області
- можливість підсвічування нових тривог та відбоїв тривог певний час іншим кольором
- можливість окремо і незалежно виставити яскравість різних зон тривог відносно одна одної
Expand All @@ -77,6 +93,8 @@ HA бачить мапу як окремий прилад розумного б
- підключення до сервера даних
- підключення до home assistant

### Мапа може оновлювати прошивку через веб інтерфейс


[![CodeQL](https://github.com/v00g100skr/ukraine_alarm_map/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/v00g100skr/ukraine_alarm_map/actions/workflows/github-code-scanning/codeql)

Expand Down
Binary file removed bin_beta/3.6-b1.bin
Binary file not shown.
Binary file removed bin_beta/3.6-b4.bin
Binary file not shown.
Binary file removed bin_beta/3.6.bin
Binary file not shown.
Binary file added bin_beta/3.7-b15.bin
Binary file not shown.
Binary file added bin_beta/3.7-b17.bin
Binary file not shown.
Binary file added bin_beta/3.7-b18.bin
Binary file not shown.
Binary file modified bin_beta/latest_beta.bin
Binary file not shown.
12 changes: 10 additions & 2 deletions deploy/update_server/update_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@

async def not_found(request: Request, exc: HTTPException):
logger.debug(f'Request time: {exc.args}')
return HTMLResponse(content=HTML_404_PAGE)
return HTMLResponse(content=HTML_404_PAGE, status_code=404)


async def server_error(request: Request, exc: HTTPException):
logger.debug(f'Request time: {exc.args}')
return HTMLResponse(content=HTML_500_PAGE)
return HTMLResponse(content=HTML_500_PAGE, status_code=500)


exception_handlers = {
Expand Down Expand Up @@ -67,6 +67,12 @@ async def update(request):
async def update_beta(request):
return FileResponse(f'{shared_beta_path}/{request.path_params["filename"]}.bin')

async def spiffs_update(request):
return FileResponse(f'{shared_path}/spiffs/{request.path_params["filename"]}.bin')

async def spiffs_update_beta(request):
return FileResponse(f'{shared_beta_path}/spiffs/{request.path_params["filename"]}.bin')


async def update_cache():
mc = Client(memcached_host, 11211)
Expand All @@ -81,7 +87,9 @@ async def update_cache():
Route('/list', list),
Route('/betalist', list_beta),
Route('/{filename}.bin', update),
Route('/spiffs/{filename}.bin', spiffs_update),
Route('/beta/{filename}.bin', update_beta),
Route('/beta/spiffs/{filename}.bin', spiffs_update_beta),
])


Expand Down
Loading

0 comments on commit 584cb7f

Please sign in to comment.