I decided to create this post for the reason that PiPup installation documentation not detailed, has no illustrative examples of how to put. The instructions are clear only to the author of the Popup, and others need to spend a lot of time reading the forum branches in order to understand how it works.
Why do I need a PiPup?
Watch video
How to install PiPup on android?
-
If you don’t have an addon SSH & Web Terminal, then you need to install it. Through this addon we will install on android PiPup
-
Download all possible apk PiPup, as not all of them work correctly
-
Create in the folder /config any folder with any name, for example distributive
-
We put the downloaded file app-debug.apk in the distributiv folder and rename it with a clear name for ourselves
-
Open the addon terminal SSH & Web Terminal and do the following:
To work with ADB, you need to install android-tools with the command
apk --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ add android-tools
After installing android-tools, we can connect to android. We connect with the command
adb connect xxx.xxx.xxx.xxx
Specify the IP address of your android device. If successful, you will receive a notification about the successful connection
Install the package that we put in the distributive folder. I renamed the package app-debug.apk to pipup_webpopup_03.09.2022.apk. I repeat, you can give any package name, the main thing is to specify the path to this package and specify this name
adb install /config/distributiv/pipup_webpopup_03.09.2022.apk
Package installation was successful
The installed PiPup application should appear on android
Output a list of installed packages with the command. This is necessary in order to find our package and give permission for notification
adb shell pm list packages
We find a pipup in the list, there may be different names before the word pipup, it is important to find a pipup. PiPup may look like de.banner.pipup or nl.rogro82.pipup. In the screenshot, the package name is nl.rogro82.pipup
After learning the package name nl.rogro82.pipup* we give permission to display over all windows with the command
adb shell appops set nl.rogro82.pipup SYSTEM_ALERT_WINDOW allow
You can enable the display permission on top of all windows visually
That’s it, the installation is finished. Now we need to launch PiPup
Creating automation, where we create two androidtv.adb_command in action.
Create the first service androidtv.adb_command and specify the command
ps -ef | grep -v grep | grep pipup || am start nl.rogro82.pipup/.MainActivity
Create a second service androidtv.adb_command and specify the command
input keyevent KEYCODE_WAKEUP
Create a button in the auxiliary element. I have created an auxiliary button input_button.pipup and which is a trigger for calling pipup to the TV screen from android
Full automation
alias: PipUP
description: ""
trigger:
- platform: state
entity_id:
- input_button.pipup
condition: []
action:
- service: androidtv.adb_command
data:
command: >-
ps -ef | grep -v grep | grep pipup || am start
nl.rogro82.pipup/.MainActivity
target:
entity_id: media_player.android_tv_192_168_1_129
- service: androidtv.adb_command
data:
command: input keyevent KEYCODE_WAKEUP
target:
entity_id: media_player.android_tv_192_168_1_129
- service: rest_command.pipup
data:
title: Video Eyes
message: Live broadcast of the doorbell
width: 480
height: 340
url: http://192.168.1.86:8081
mode: single
- Add it to configuration.yaml or create a file with any name and throw it into packages
rest_command:
pipup: # You can specify any name, for example, the name of your TV
url: http://192.168.1.129:7979/notify #Specify the android IP address
content_type: 'application/json'
verify_ssl: false
method: POST
timeout: 20
payload: >
{
"duration": {{ duration | default(20) }},
"position": {{ position | default(0) }},
"title": "{{ title | default('') }}",
"titleColor": "{{ titleColor | default('#50BFF2') }}",
"titleSize": {{ titleSize | default(10) }},
"message": "{{ message }}",
"messageColor": "{{ messageColor | default('#fbf5f5') }}",
"messageSize": {{ messageSize | default(14) }},
"backgroundColor": "{{ backgroundColor | default('#0f0e0e') }}",
"media": {
"web": {
"uri": "{{ url }}",
"width": {{ width | default(640) }},
"height": {{ height | default(480) }}
}
}
}
- To broadcast the video stream to PiPup without delay, we will use the motionEye addon . Add a camera to the motionEye addon and turn on the http stream, and then click on the Streaming URL, where a window with a link will open.
Copy it and paste it into rest_command.pipup
- service: rest_command.pipup
data:
title: Video Eyes
message: Live broadcast of the doorbell
width: 480
height: 340
url: http://192.168.1.86:8081
Текст на русском (Text in Russian)
Этот пост я решил создать по той причине, что документация по установке PiPup не подробная, не имеет наглядных примеров как надо ставить. Инструкция понятна только самому автору PiPup, а другим нужно потратить уйму времени, почитать ветки форумов для того, чтобы понять как это работает.
Зачем нужен PiPup?
Смотрим видео
Как установить PiPup на android?
-
Если у вас не стоит аддон SSH & Web Terminal, то нужно его установить. Через этот аддон мы будем устанавливать на android PiPup
-
Скачать все возможные apk PiPup, так как не все они корректно работают
-
Создаем в папке /config любую папку с любым именем, например distributiv
-
Скачанный файл app-debug.apk кладем в папку distributiv и переименовываем для себя понятным именем
-
Открываем терминал аддона SSH & Web Terminal и делаем следующее:
Для работы ADB нужно установить android-tools командой
apk --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ add android-tools
После установки android-tools можем подключиться к android. Подключаемся командой
adb connect xxx.xxx.xxx.xxx
Указываем IP адрес вашего android устройства. Если успех, то получите уведомление об успешном подключении
Устанавливаем пакет который мы положили в папку distributiv. Я переименовал пакет app-debug.apk в pipup_webpopup_03.09.2022.apk. Повторюсь, имя пакета можете дать любое, главное нужно указать путь к этому пакету и указать это имя
adb install /config/distributiv/pipup_webpopup_03.09.2022.apk
Установка пакета прошла успешно
На android должно появиться установленное приложение PiPup
Выводим список установленных пакетов командой. Это нужно для того, чтобы найти наш пакет и дать разрешение для уведомления
adb shell pm list packages
Находим в списке pipup, до слова pipup могут быть разные имена, важно найти pipup. pipup может выглядеть de.begner.pipup или nl.rogro82.pipup. На скриншоте имя пакета nl.rogro82.pipup
Узнав имя пакета nl.rogro82.pipup мы даем разрешение на показ поверх всех окон командой
adb shell appops set nl.rogro82.pipup SYSTEM_ALERT_WINDOW allow
Вы можете включить разрешение на показ поверх всех окон визуально
Все, на этом установка закончена. Теперь нам нужно запустить PiPup
Создаем автоматизацию, где в действии создаем две службы androidtv.adb_command.
Создаем первую службу androidtv.adb_command и указываем команду
ps -ef | grep -v grep | grep pipup || am start nl.rogro82.pipup/.MainActivity
Создаем вторую службу androidtv.adb_command и указываем команду
input keyevent KEYCODE_WAKEUP
Создайте кнопку во вспомогательном элементе. Я создал вспомогательную кнопку input_button.pipup и которая является триггером для вызова pipup на экран ТВ с android
Полная автоматизация
alias: PipUP
description: ""
trigger:
- platform: state
entity_id:
- input_button.pipup
condition: []
action:
- service: androidtv.adb_command
data:
command: >-
ps -ef | grep -v grep | grep pipup || am start
nl.rogro82.pipup/.MainActivity
target:
entity_id: media_player.android_tv_192_168_1_129
- service: androidtv.adb_command
data:
command: input keyevent KEYCODE_WAKEUP
target:
entity_id: media_player.android_tv_192_168_1_129
- service: rest_command.pipup
data:
title: Видеоглазок
message: Прямая трансляция дверного звонка
width: 480
height: 340
url: http://192.168.1.86:8081
mode: single
- Добавляем в configuration.yaml или создаем файлик с любым именем и закидываем в packages
rest_command:
pipup: # Имя можете указать любое, например название вашего ТВ
url: http://192.168.1.129:7979/notify #Указываем IP адрес android
content_type: 'application/json'
verify_ssl: false
method: POST
timeout: 20
payload: >
{
"duration": {{ duration | default(20) }},
"position": {{ position | default(0) }},
"title": "{{ title | default('') }}",
"titleColor": "{{ titleColor | default('#50BFF2') }}",
"titleSize": {{ titleSize | default(10) }},
"message": "{{ message }}",
"messageColor": "{{ messageColor | default('#fbf5f5') }}",
"messageSize": {{ messageSize | default(14) }},
"backgroundColor": "{{ backgroundColor | default('#0f0e0e') }}",
"media": {
"web": {
"uri": "{{ url }}",
"width": {{ width | default(640) }},
"height": {{ height | default(480) }}
}
}
}
- Для трансляции видеопотока на PiPup без задержки, будем использовать аддон motionEye. Добавьте в аддон motionEye камеру и включите http стрим, а после нажмите на Streaming URL, где у вас откроется окно со ссылкой.
Скопируйте ее и вставьте ее в rest_command.pipup
- service: rest_command.pipup
data:
title: Video Eyes
message: Live broadcast of the doorbell
width: 480
height: 340
url: http://192.168.1.86:8081