diff --git a/src/lib/device.ts b/src/lib/device.ts
index dcb128389b51fb14ef29d0ff33fe2c6fe1b4ccd4..578441910360248dce0bd4f0b1f791d7cb71880b 100644
--- a/src/lib/device.ts
+++ b/src/lib/device.ts
@@ -78,7 +78,9 @@ export default abstract class Device extends js.global.EventEmitter {
 	}
 
 	protected log(level: number, msg: string, time?: number, source?: string) {
-		const _msg = `${this.deviceTag} device ${this.configId}: ${msg}`;
+		let _msg = '';
+		if (js.global.server === undefined) msg += js.global.strftime('%Y-%m-%d %H:%M:%S ');
+		_msg += `${this.deviceTag} device ${this.configId}: ${msg}`;
 		this.emit('log', level, _msg, time, source);
 	}
 
@@ -184,8 +186,10 @@ export default abstract class Device extends js.global.EventEmitter {
 					this.ready = true;
 					if (this.readyEvent > -1) js.clearTimeout(this.readyEvent);
 					this.emit('ready');
-					// @ts-expect-error shut up
-					this.heartbeatEvent = js.setInterval(function () { this.sendHeartbeat(); }, this.heartbeatInterval, this)
+					if (this.heartbeatEvent < 0) {
+						// @ts-expect-error shut up
+						this.heartbeatEvent = js.setInterval(function () { this.sendHeartbeat(); }, this.heartbeatInterval, this);
+					}
 				}
 				break;
 			case 'metadata':
diff --git a/src/lib/socket-device.ts b/src/lib/socket-device.ts
index 21970f02140af3f23c127b5b6d86753e4cceae2a..bd4cdb7f61c3900282f00324527716faf2f69cdd 100644
--- a/src/lib/socket-device.ts
+++ b/src/lib/socket-device.ts
@@ -53,6 +53,7 @@ export default class SocketDevice extends Device {
 
 	protected readFromDevice(timeout: number = 0): Uint8Array | undefined {
 		if (timeout > 0) {
+			this.log(sbbsdefs.LOG_DEBUG, `waiting ${timeout} seconds for data`);
 			const stime = js.global.time();
 			while (!this.socket.data_waiting && js.global.time() - stime < timeout) {
 				js.global.mswait(5);