diff --git a/tasmota/tasmota_xdrv_driver/xdrv_70_1_hdmi_cec.ino b/tasmota/tasmota_xdrv_driver/xdrv_70_1_hdmi_cec.ino index db144cd7f..072e7ca24 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_70_1_hdmi_cec.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_70_1_hdmi_cec.ino @@ -116,7 +116,14 @@ void CmndHDMISendRaw(void) { if (buf.len() > 0 && buf.len() < 16) { bool success = HDMI_CEC_device->transmitRaw(buf.buf(), buf.len()); if (success) { - HDMI_CEC_device->run(); + bool transmitting = true; + while (transmitting) { + HDMI_CEC_device->run(); + transmitting = HDMI_CEC_device->isTransmitting(); + if (transmitting) { + delay(1); // wait until next ms + } + } ResponseCmndDone(); } else { ResponseCmndChar_P(PSTR("Sending failed")); @@ -166,7 +173,14 @@ void CmndHDMISend(void) { if (buf.len() > 0 && buf.len() < 15) { bool success = HDMI_CEC_device->transmitFrame(to, buf.buf(), buf.len()); if (success) { - HDMI_CEC_device->run(); + bool transmitting = true; + while (transmitting) { + HDMI_CEC_device->run(); + transmitting = HDMI_CEC_device->isTransmitting(); + if (transmitting) { + delay(1); // wait until next ms + } + } ResponseCmndDone(); } else { ResponseCmndChar_P(PSTR("Sending failed"));