diff --git a/pkgs/development/python-modules/sense-energy/default.nix b/pkgs/development/python-modules/sense-energy/default.nix
new file mode 100644
index 000000000000..a3cd63d485ea
--- /dev/null
+++ b/pkgs/development/python-modules/sense-energy/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, requests
+, websocket-client
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "sense-energy";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "scottbonline";
+    repo = "sense";
+    rev = version;
+    sha256 = "1lbarsa9wpm7hnhgf2g253w0gs80cn989dnj4aqmic57x5isikhz";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    requests
+    websocket-client
+    websockets
+  ];
+
+  # no tests implemented
+  doCheck = false;
+
+  pythonImportsCheck = [ "sense_energy" ];
+
+  meta = with lib; {
+    description = "API for the Sense Energy Monitor";
+    homepage = "https://github.com/scottbonline/sense";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 4a60fcf0c9d3..12b9b81a8bb9 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -222,7 +222,7 @@
     "emoncms_history" = ps: with ps; [ ];
     "emonitor" = ps: with ps; [ aioemonitor ];
     "emulated_hue" = ps: with ps; [ aiohttp-cors ];
-    "emulated_kasa" = ps: with ps; [ ]; # missing inputs: sense_energy
+    "emulated_kasa" = ps: with ps; [ sense-energy ];
     "emulated_roku" = ps: with ps; [ ]; # missing inputs: emulated_roku
     "enigma2" = ps: with ps; [ openwebifpy ];
     "enocean" = ps: with ps; [ ]; # missing inputs: enocean
@@ -733,7 +733,7 @@
     "search" = ps: with ps; [ aiohttp-cors ];
     "season" = ps: with ps; [ ephem ];
     "sendgrid" = ps: with ps; [ sendgrid ];
-    "sense" = ps: with ps; [ ]; # missing inputs: sense_energy
+    "sense" = ps: with ps; [ sense-energy ];
     "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat
     "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo
     "sensor" = ps: with ps; [ sqlalchemy ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 04a2aed97de5..113a812f803c 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -371,6 +371,7 @@ in with py.pkgs; buildPythonApplication rec {
     "elgato"
     "emonitor"
     "emulated_hue"
+    "emulated_kasa"
     "enphase_envoy"
     "esphome"
     "everlights"
@@ -596,6 +597,7 @@ in with py.pkgs; buildPythonApplication rec {
     "script"
     "search"
     "season"
+    "sense"
     "sensor"
     "sentry"
     "sharkiq"
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9d5f97f6def8..11534d3970ec 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7722,6 +7722,8 @@ in {
 
   sendgrid = callPackage ../development/python-modules/sendgrid { };
 
+  sense-energy = callPackage ../development/python-modules/sense-energy { };
+
   sentencepiece = callPackage ../development/python-modules/sentencepiece {
     inherit (pkgs) sentencepiece;
   };