diff --git a/homeassistant/helpers/json.py b/homeassistant/helpers/json.py
index 8b91f5eb2b5aee9c17ae837dd8913370c6be558d..74a2f542910f4480a03a061128d5f7890cef1f5e 100644
--- a/homeassistant/helpers/json.py
+++ b/homeassistant/helpers/json.py
@@ -33,7 +33,7 @@ def json_encoder_default(obj: Any) -> Any:
 
     Hand other objects to the original method.
     """
-    if isinstance(obj, set):
+    if isinstance(obj, (set, tuple)):
         return list(obj)
     if isinstance(obj, float):
         return float(obj)
diff --git a/tests/helpers/test_json.py b/tests/helpers/test_json.py
index cfb403ca4a9a260c421240a085e681d20eb43fba..54c488690faef2c8bb6e7aeb90e79fac5d685e6f 100644
--- a/tests/helpers/test_json.py
+++ b/tests/helpers/test_json.py
@@ -1,6 +1,7 @@
 """Test Home Assistant remote methods and classes."""
 import datetime
 import json
+import time
 
 import pytest
 
@@ -87,3 +88,11 @@ def test_json_dumps_float_subclass():
         """A float subclass."""
 
     assert json_dumps({"c": FloatSubclass(1.2)}) == '{"c":1.2}'
+
+
+def test_json_dumps_tuple_subclass():
+    """Test the json dumps a tuple subclass."""
+
+    tt = time.struct_time((1999, 3, 17, 32, 44, 55, 2, 76, 0))
+
+    assert json_dumps(tt) == "[1999,3,17,32,44,55,2,76,0]"