async _sendPing() {
    debug(`Pinging ${this.device.ip}`);

    // Create byte buffer
    const buffer = this.device.parser.encode({
      data: Buffer.allocUnsafe(0),
      commandByte: CommandType.HEART_BEAT,
      sequenceN: ++this._currentSequenceN
    });

    // Check for response
    const now = new Date();

    if (this._pingPongTimeout === null) {
      // If we do not expect a pong from a former ping, we need to set a timeout
      this._pingPongTimeout = setTimeout(() => {
        if (this._lastPingAt < now) {
          this.disconnect();
        }
      }, this._responseTimeout * 1000);
    } else {
      debug('There was no response to the last ping.');
    }

    // Send ping
    this.client.write(buffer);
    if (this.globalOptions.issueRefreshOnPing) {
      this.refresh().then(() => this.get()).catch(error => {
        debug('Error refreshing/getting on ping: ' + error);
        this.emit('error', error);
      });
    }
  }
Sends a heartbeat ping to the device
@private