https://github.com/twocolors/node-red-contrib-apple-tv-x
Nodes for controlling Apple TVs in Node-RED (wrapper pyatv)
https://github.com/twocolors/node-red-contrib-apple-tv-x
Last synced: 4 months ago
JSON representation
Nodes for controlling Apple TVs in Node-RED (wrapper pyatv)
- Host: GitHub
- URL: https://github.com/twocolors/node-red-contrib-apple-tv-x
- Owner: twocolors
- License: gpl-3.0
- Created: 2021-04-29T08:00:34.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-25T15:12:12.000Z (over 1 year ago)
- Last Synced: 2025-02-13T02:38:21.405Z (4 months ago)
- Language: HTML
- Homepage:
- Size: 61.5 KB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-red-contrib-apple-tv-x
#### From version 1.0.0 remove support native control Apple TVs [(more)](https://github.com/lukasroegner/homebridge-apple-tv-remote/issues/105)
[](https://nodered.org)
[](https://nodejs.org/en/)
[](https://www.npmjs.com/package/node-red-contrib-apple-tv-x)
[](https://github.com/twocolors/node-red-contrib-apple-tv-x/stargazers)
[](https://packagequality.com/#?package=node-red-contrib-apple-tv-x)[](https://github.com/twocolors/node-red-contrib-apple-tv-x/issues)



## About
Nodes for controlling Apple TVs in Node-RED (wrapper pyatv).
Thanks Pierre Ståhl for project [pyatv](https://github.com/postlund/pyatv)
Tested models are:
* Apple TV HD (Apple TV 4)
* Apple TV 4K## Backend
### pyatv (cli)
#### How to install pyatv [Official Documentation](https://pyatv.dev/documentation/#installing-pyatv)
#### How to install pyatv on Raspberry Pi [(Raspbian)](https://www.raspberrypi.com/software/)
```bash
$ sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip python3-cryptography python3-wheel
$ sudo pip3 install --upgrade pyatv
```
#### How to install pyatv [(Official Node-RED Docker)](https://hub.docker.com/r/nodered/node-red) based on Alpine Linux 3.12.9#### Exec to Docker use user !!! ROOT !!!
```bash
$ docker exec -it --user root mynodered bash
```in docker
```bash
docker$ apk add openssl-dev libffi-dev python3-dev py3-pip
docker$ pip3 install --upgrade wheel
docker$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rust.sh && sh rust.sh -y && rm rust.sh && source $HOME/.cargo/env
docker$ pip3 install --upgrade pyatv
```#### How to use pyatv in venv
[Creation of virtual environments](https://docs.python.org/3/library/venv.html) then in node **OUT** set Path where atvremote/atvscript
#### How to get Credentials AirPlay and Companion
```bash
$ atvremote --id 00:11:22:33:44:54 --protocol companion pair
$ atvremote --id 00:11:22:33:44:54 --protocol airplay pair
```### Output
A very simple node that takes the following commands as a string on msg.payload- down
- home
- homeHold
- left
- menu
- next
- pause
- play
- playPause
- previous
- right
- select
- skipBackward
- skipForward
- stop
- suspend
- topMenu
- up
- volumeDown
- volumeUp
- wakeup
- turnOff
- turnOn#### Experimental
- play_url
- stream_file
- launch_app
- set_volume##### play_url
Usage `play_url=https://www.example.com/mymovie.mp4`
##### stream_file
Usage `stream_file=/tmp/myfile.mp4`
##### launch_app
Usage `launch_app=com.netflix.Netflix`
##### set_volume
Usage `set_volume=100`
### Input
Events from Apple TV on msg.payload
```
{
dateTime: null,
hash: null,
mediaType: null,
deviceState: null,
title: null,
artist: null,
album: null,
genre: null,
totalTime: null,
position: null,
shuffle: null,
repeat: null,
app: null,
appId: null,
powerState: null
}
```