1.0.2 • Published 2 years ago
kdeconnect v1.0.2
KDE Connect Bindings for NodeJS
Small script using DBus to allow a NodeJS application to communicate with connected devices via KDE Connect
Requirements
- DBus support
- NodeJS >= 10.8.0
- Linux Desktop with DBus Support
- KDE Connect installed and running
API
The API is written fully in Typescript, so check out the declaration file for additional infos
async getAvailableDevices()
Returns a list of KDEDevices currently known or available
class KDEDevice
Can be manually created or retrieved using getAvailableDevices
Constructor
KDEDevice(id, bus)
| Name | Type | Info |
|---|---|---|
| id | string | KDE ID, can be stored from old device or retrieved manually |
| bus | MessageBus | optional, DBus-Session to use |
Properties
| Name | Type | Info |
|---|---|---|
| id | string | KDE ID |
| name | string | Device Name |
| type | string | smartphone | desktop |
| isReachable | boolean | Is device currently reachable |
| isTrusted | boolean | Is device trusted |
| connectivity | {type: string, strength: number} | cellular data (not wifi) |
| battery | {charge: number, charging: boolean} | battery status |
| media | KDEMediaHandler | Returns a separate handler for media control. See below |
Functions
| Signature | Info |
|---|---|
async setup(): Promise<void> | if a device is manually created, using its KDE ID, this must be called befor use |
async shareFile(filePath: string): Promise<void> | Shares the file from file path with the device (copying it to the previously chosen folder on the device) |
async shareURL(urL: string): Promise<void> | Shares the url with the device, either as a notification or by directly opening the link |
async shareText(text: string): Promise<void> | Shares the text with the device, normally copying it into the devices clipboard |
async ring(): Promise<void> | Let`s the device ring |
async ping(msg?: string): Promise<void> | Sends a notification with an optional message to the device |
async getNotifications(): Promise<KDENotification[]> | Returns a list of notifications currently present on the device. See below |
async requestPair(): Promise<void> | Request pairing |
async unpair(): Promise<void> | Unpair device |
Events
Every device has an event handler linked to it, accessible by the events Property.
| Event | Values |
|---|---|
onTrustedChanged | (boolean) |
onNameChanged | (string) |
onTypeChanged | (string) |
onReachableChanged | (boolean) |
onBatteryChanged | ({charge: number, charging: boolean}) |
onConnectivityChanged | ({type: string, strength: number}) |
onConnectivityChanged | ({type: string, strength: number}) |
onPairingRequest | (KDEPairingRequest) |
class KDENotification
Constructor
Not externally accessible
Properties
| Name | Type | Info |
|---|---|---|
| appName | string | App origin name |
| dismissable | boolean | Is this message dismissable |
| silent | boolean | Is it a silent message |
| text | string | Message text |
| ticker | string | Message short version |
| title | string | Message title |
Functions
| Signature | Info |
|---|---|
async dismiss(): Promise<boolean> | Dismisses message on device. Returns true if message is dismissable, false otherwise |
Events
No events
class KDEMediaHandler
Constructor
Not externally accessible
Properties
| Name | Type | Info |
|---|---|---|
| length | number | length of currently playing track in ms |
| position | number | already passed time of currently playing track in ms |
| volume | number | device volume in % |
| isPlaying | boolean | is music playing or paused |
| player | string | name of currently playing app |
| nowPlaying | string | name & artist of track |
| title | string | track title |
| artist | string | track artist name |
| album | string | track album name |
Functions
| Signature | Info |
|---|---|
async Next(): Promise<void> | Play next track |
async Previous(): Promise<void> | Play previous track / Jump to start of current track |
async Play(): Promise<void> | Play track |
async Pause(): Promise<void> | Pause track |
async PlayPause(): Promise<void> | Switch Between Play/Pause |
async Stop(): Promise<void> | Stop track |
async update(): Promise<void> | Manually update data; Use to keep track of position |
Events
| Event | Values | Info |
|---|---|---|
onMediaPlayerUpdated | () | Called when any data changes. Can fire multiple times in succession; Does NOT fire when position changes |
class KDEPairingRequest
Constructor
Not externally accessible
Properties
None
Functions
| Signature | Info |
|---|---|
async Accept(): Promise<void> | Accept request |
async Reject(): Promise<void> | Reject request |
Events
None
Do To / Not supported yet
- Multiple Media Players
- SFTP Bindings
- Contacts / SMS / Telephone
- Photo Requesting / Recieving
- Remote Control / Keyboard
- Remote Commands