1.0.2 • Published 6 months 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