From d15d77abd314041155810a99f5898d90265bfc9b Mon Sep 17 00:00:00 2001
From: Matt Votava <mvnetbiz@gmail.com>
Date: Thu, 9 Jul 2020 05:18:52 -0700
Subject: [PATCH 1/8] python3Packages.zigpy: 0.11.0 -> 0.22.0

---
 pkgs/development/python-modules/zigpy/default.nix | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index dfe1a5c547d..8c9a41cdb34 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -1,25 +1,24 @@
 { stdenv, buildPythonPackage, fetchPypi
-, aiohttp, crccheck, pycryptodome, pycrypto
+, aiohttp, crccheck, pycryptodome, pycrypto, voluptuous
 , pytest, pytest-asyncio, asynctest }:
 
 buildPythonPackage rec {
-  pname = "zigpy-homeassistant";
-  version = "0.19.0";
+  pname = "zigpy";
+  version = "0.22.0";
 
-  nativeBuildInputs = [ pytest pytest-asyncio asynctest ];
-  buildInputs = [ aiohttp pycryptodome ];
-  propagatedBuildInputs = [ crccheck pycrypto ];
+  propagatedBuildInputs = [ aiohttp crccheck pycrypto pycryptodome voluptuous ];
+  checkInputs = [ pytest pytest-asyncio asynctest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "779cff7affb86b7141aa641c188342b22be0ec766adee0d180c93e74e2b10adc";
+    sha256 = "1y8n96g5g6qsx8s2z028f1cyp2w8y7kksi8k2yyzpqvmanbxyjhc";
   };
 
   meta = with stdenv.lib; {
     description = "Library implementing a ZigBee stack";
     homepage = "https://github.com/zigpy/zigpy";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ etu ];
+    maintainers = with maintainers; [ etu mvnetbiz ];
     platforms = platforms.linux;
   };
 }

From 63e59c6d1001852356e9b6652442028419bfd98b Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Tue, 24 Mar 2020 21:43:25 +0100
Subject: [PATCH 2/8] python3Packages.pure-pcapy3: init at 1.0.1

---
 .../python-modules/pure-pcapy3/default.nix     | 18 ++++++++++++++++++
 pkgs/top-level/python-packages.nix             |  2 ++
 2 files changed, 20 insertions(+)
 create mode 100644 pkgs/development/python-modules/pure-pcapy3/default.nix

diff --git a/pkgs/development/python-modules/pure-pcapy3/default.nix b/pkgs/development/python-modules/pure-pcapy3/default.nix
new file mode 100644
index 00000000000..71673da7abe
--- /dev/null
+++ b/pkgs/development/python-modules/pure-pcapy3/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pure-pcapy3";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14panfklap6wwi9avw46gvd7wg9mkv9xbixvbvmi1m2adpqlb7mr";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python reimplementation of pcapy. This package is API compatible and a drop-in replacement.";
+    homepage = "http://bitbucket.org/viraptor/pure-pcapy";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ etu ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 4340f6a30ee..e9eaacfcf09 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7446,6 +7446,8 @@ in {
 
   pulp  = callPackage ../development/python-modules/pulp { };
 
+  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
+
   behave = callPackage ../development/python-modules/behave { };
 
   pyhamcrest = if isPy3k then

From 2c004e0c536b0119244fd915a0fb5c7ed4bd20c4 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Tue, 24 Mar 2020 22:13:54 +0100
Subject: [PATCH 3/8] python3Packages.bellows: init at 0.17.0

---
 .../python-modules/bellows/default.nix        | 37 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 +
 2 files changed, 39 insertions(+)
 create mode 100644 pkgs/development/python-modules/bellows/default.nix

diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
new file mode 100644
index 00000000000..32ac3e8bd19
--- /dev/null
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, click, click-log, pure-pcapy3
+, pyserial, pyserial-asyncio, voluptuous, zigpy
+, asynctest, pytest, pytest-asyncio }:
+
+let
+  pname = "bellows";
+  version = "0.17.0";
+
+in buildPythonPackage rec {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03gckhrxji8lgjsi6xr8yql405kfanii5hjrmakk1328bmq9g5f6";
+  };
+
+  propagatedBuildInputs = [
+    click click-log pure-pcapy3 pyserial pyserial-asyncio voluptuous zigpy
+  ];
+
+  checkInputs = [
+    asynctest pytest pytest-asyncio
+  ];
+
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "click-log==0.2.0" "click-log>=0.2.0"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python 3 project to implement EZSP for EmberZNet devices";
+    homepage = "https://github.com/zigpy/bellows";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e9eaacfcf09..c9059be64c6 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7450,6 +7450,8 @@ in {
 
   behave = callPackage ../development/python-modules/behave { };
 
+  bellows = callPackage ../development/python-modules/bellows { };
+
   pyhamcrest = if isPy3k then
     callPackage ../development/python-modules/pyhamcrest { }
   else

From 29b377db2714e138621cbcd69e82d166ce9e9438 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Sat, 23 May 2020 21:53:09 +0200
Subject: [PATCH 4/8] python3Packages.zigpy-cc: init at 0.4.4

---
 .../python-modules/zigpy-cc/default.nix       | 24 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 26 insertions(+)
 create mode 100644 pkgs/development/python-modules/zigpy-cc/default.nix

diff --git a/pkgs/development/python-modules/zigpy-cc/default.nix b/pkgs/development/python-modules/zigpy-cc/default.nix
new file mode 100644
index 00000000000..7223800caa9
--- /dev/null
+++ b/pkgs/development/python-modules/zigpy-cc/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, asynctest, pytest, pytest-asyncio }:
+
+buildPythonPackage rec {
+  pname = "zigpy-cc";
+  version = "0.4.4";
+
+  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ asynctest pytest pytest-asyncio ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "117a9xak4y5nksfk9rgvzd6l7hscvzspl1wf3gydyq2lc7b3ggnl";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with Texas Instruments CC2531 radios for zigpy";
+    homepage = "http://github.com/sanyatuning/zigpy-cc";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index c9059be64c6..acfcf3ef36a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2689,6 +2689,8 @@ in {
 
   zigpy = callPackage ../development/python-modules/zigpy { };
 
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
+
   zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
   digital-ocean = callPackage ../development/python-modules/digitalocean { };

From f10f300f01c62b7a7fd8146d9a0a94b43a5f6074 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Sat, 23 May 2020 22:13:54 +0200
Subject: [PATCH 5/8] python3Packages.zigpy-xbee: init at 0.12.1

---
 .../python-modules/zigpy-xbee/default.nix     | 24 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 26 insertions(+)
 create mode 100644 pkgs/development/python-modules/zigpy-xbee/default.nix

diff --git a/pkgs/development/python-modules/zigpy-xbee/default.nix b/pkgs/development/python-modules/zigpy-xbee/default.nix
new file mode 100644
index 00000000000..70266644801
--- /dev/null
+++ b/pkgs/development/python-modules/zigpy-xbee/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "zigpy-xbee";
+  version = "0.12.1";
+
+  buildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09488hl27qjv8shw38iiyzvzwcjkc0k4n00l2bfn1ac443xzw0vh";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with XBee radios for zigpy";
+    homepage = "http://github.com/zigpy/zigpy-xbee";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index acfcf3ef36a..66b5c09173e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2693,6 +2693,8 @@ in {
 
   zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
+
   digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
   digi-xbee = callPackage ../development/python-modules/digi-xbee { };

From 2b04280575124322b0e7262e21670e8ca8ce155c Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Sat, 23 May 2020 22:24:21 +0200
Subject: [PATCH 6/8] python3Packages.zigpy-zigate: init at 0.6.1

---
 .../python-modules/zigpy-zigate/default.nix   | 24 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 26 insertions(+)
 create mode 100644 pkgs/development/python-modules/zigpy-zigate/default.nix

diff --git a/pkgs/development/python-modules/zigpy-zigate/default.nix b/pkgs/development/python-modules/zigpy-zigate/default.nix
new file mode 100644
index 00000000000..43f291841ff
--- /dev/null
+++ b/pkgs/development/python-modules/zigpy-zigate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "zigpy-zigate";
+  version = "0.6.1";
+
+  buildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xxqv65drrr96b9ncwsx9ayd369lpwimj1jjb0d7j6l9lil0wmf5";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with ZiGate radios for zigpy";
+    homepage = "http://github.com/doudz/zigpy-zigate";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 66b5c09173e..3115c41e162 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2695,6 +2695,8 @@ in {
 
   zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
 
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
+
   digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
   digi-xbee = callPackage ../development/python-modules/digi-xbee { };

From 97805ff98999d876632a4fc37cee8db1d6bec02a Mon Sep 17 00:00:00 2001
From: Matt Votava <mvnetbiz@gmail.com>
Date: Thu, 9 Jul 2020 08:05:37 -0700
Subject: [PATCH 7/8] python3Packages.zigpy-deconz: fix dependencies

---
 pkgs/development/python-modules/zigpy-deconz/default.nix | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/python-modules/zigpy-deconz/default.nix b/pkgs/development/python-modules/zigpy-deconz/default.nix
index 80667cf6ec5..af52e942530 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,14 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi
-, aiohttp, crccheck, pyserial, pyserial-asyncio, pycryptodome, zigpy
-, pytest }:
+, pyserial, pyserial-asyncio, zigpy
+, pytest, pytest-asyncio, asynctest }:
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
   version = "0.9.2";
 
-  nativeBuildInputs = [ pytest ];
-  buildInputs = [ aiohttp crccheck pycryptodome ];
   propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest pytest-asyncio asynctest ];
 
   src = fetchPypi {
     inherit pname version;
@@ -19,7 +18,7 @@ buildPythonPackage rec {
     description = "Library which communicates with Deconz radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-deconz";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ etu ];
+    maintainers = with maintainers; [ etu mvnetbiz ];
     platforms = platforms.linux;
   };
 }

From 9fb7c8e5d90d5b0e0462710f93ef547685b4d929 Mon Sep 17 00:00:00 2001
From: Matt Votava <mvnetbiz@gmail.com>
Date: Thu, 9 Jul 2020 07:42:46 -0700
Subject: [PATCH 8/8] home-assistant: Update component packages

---
 pkgs/servers/home-assistant/component-packages.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 02bada50023..44aba8299a5 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -934,7 +934,7 @@
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf];
     "zerproc" = ps: with ps; [ ]; # missing inputs: pyzerproc
     "zestimate" = ps: with ps; [ xmltodict];
-    "zha" = ps: with ps; [ pyserial zha-quirks zigpy-deconz]; # missing inputs: bellows zigpy-cc zigpy-xbee zigpy-zigate zigpy
+    "zha" = ps: with ps; [ bellows pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy];
     "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zone" = ps: with ps; [ ];