Images

A Device can have one or more references to a registered Image.

Album Art

A device can have one album art image attached. Register the images once, and then keep updating it.

/drivers/<driver_id>/device.js

class MyDevice extends Homey.Device {

  onInit() {
    this.image = new Homey.Image();
    this.image.setUrl(null);
    this.image.register()
    	.then(() => {
    		return this.setAlbumArtImage( this.image );
    	})
    	.catch(this.error);

    this.myDeviceApi.on('track', track => {
      const albumArtUrl = track.albumArtUrl; // e.g. https://www.example.com/track/abcd/image.png
      this.image.setUrl(albumArtUrl);
      this.image.update();
    });
  }

Camera

A device can have one or more camera images.

class MyCameraDevice extends Homey.Device {

  onInit() {
    this.image = new Homey.Image();
    this.image.setStream(async (stream) => {
      const res = await fetch(this.myDeviceApi.localImageUrl);
      if(!res.ok) throw new Error(res.statusText);
      res.pipe(stream);
    });
    this.image.register()
    	.then(() => {
    		return this.setCameraImage('front',  Homey.__("camera.front.title"), this.image );
    	})
    	.catch(this.error);

    this.myDeviceApi.on('motion', track => {
      this.image.update()
        .catch(this.error);
    });
  }