pydiagral 1.4.0__tar.gz → 1.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. pydiagral-1.5.0/.github/ISSUE_TEMPLATE/bug_report.yml +101 -0
  2. pydiagral-1.5.0/.github/ISSUE_TEMPLATE/feature_request.yml +64 -0
  3. pydiagral-1.5.0/.github/copilot-commit-message-instructions.md +25 -0
  4. pydiagral-1.5.0/.vscode/settings.json +12 -0
  5. pydiagral-1.5.0/CHANGELOG.md +63 -0
  6. {pydiagral-1.4.0 → pydiagral-1.5.0}/PKG-INFO +62 -20
  7. {pydiagral-1.4.0 → pydiagral-1.5.0}/README.md +60 -18
  8. {pydiagral-1.4.0 → pydiagral-1.5.0}/docs/index.md +6 -0
  9. pydiagral-1.5.0/example_code.py +255 -0
  10. {pydiagral-1.4.0 → pydiagral-1.5.0}/pyproject.toml +1 -1
  11. {pydiagral-1.4.0 → pydiagral-1.5.0}/src/pydiagral/api.py +145 -71
  12. {pydiagral-1.4.0 → pydiagral-1.5.0}/src/pydiagral/exceptions.py +10 -2
  13. {pydiagral-1.4.0 → pydiagral-1.5.0}/src/pydiagral/models.py +25 -1
  14. {pydiagral-1.4.0 → pydiagral-1.5.0}/src/pydiagral/utils.py +1 -1
  15. {pydiagral-1.4.0 → pydiagral-1.5.0}/tests/test_pydiagral_api.py +21 -16
  16. pydiagral-1.4.0/.vscode/settings.json +0 -7
  17. pydiagral-1.4.0/CHANGELOG.md +0 -43
  18. pydiagral-1.4.0/example_code.py +0 -174
  19. {pydiagral-1.4.0 → pydiagral-1.5.0}/.devcontainer/Dockerfile.dev +0 -0
  20. {pydiagral-1.4.0 → pydiagral-1.5.0}/.devcontainer/devcontainer.json +0 -0
  21. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/FUNDING.yml +0 -0
  22. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/dependabot.yml +0 -0
  23. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/labels.yml +0 -0
  24. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/workflows/labeler.yml +0 -0
  25. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/workflows/lint.yaml +0 -0
  26. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/workflows/lock.yml +0 -0
  27. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/workflows/pytest.yaml +0 -0
  28. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/workflows/release_and_doc.yaml +0 -0
  29. {pydiagral-1.4.0 → pydiagral-1.5.0}/.github/workflows/semantic-prs.yml +0 -0
  30. {pydiagral-1.4.0 → pydiagral-1.5.0}/.gitignore +0 -0
  31. {pydiagral-1.4.0 → pydiagral-1.5.0}/.releaserc +0 -0
  32. {pydiagral-1.4.0 → pydiagral-1.5.0}/.vscode/extensions.json +0 -0
  33. {pydiagral-1.4.0 → pydiagral-1.5.0}/LICENSE +0 -0
  34. {pydiagral-1.4.0 → pydiagral-1.5.0}/docs/api.md +0 -0
  35. {pydiagral-1.4.0 → pydiagral-1.5.0}/docs/exceptions.md +0 -0
  36. {pydiagral-1.4.0 → pydiagral-1.5.0}/docs/how-to-find-diagral-serial.png +0 -0
  37. {pydiagral-1.4.0 → pydiagral-1.5.0}/docs/models.md +0 -0
  38. {pydiagral-1.4.0 → pydiagral-1.5.0}/docs/pydiagral-Logo.png +0 -0
  39. {pydiagral-1.4.0 → pydiagral-1.5.0}/mkdocs.yml +0 -0
  40. {pydiagral-1.4.0 → pydiagral-1.5.0}/src/pydiagral/__init__.py +0 -0
  41. {pydiagral-1.4.0 → pydiagral-1.5.0}/src/pydiagral/constants.py +0 -0
  42. {pydiagral-1.4.0 → pydiagral-1.5.0}/tests/__init__.py +0 -0
  43. {pydiagral-1.4.0 → pydiagral-1.5.0}/tests/data/configuration_sample.json +0 -0
  44. {pydiagral-1.4.0 → pydiagral-1.5.0}/tests/data/system_details_sample.json +0 -0
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: "Bug report"
3
+ description: "Report a bug with the pydiagral package"
4
+ title: "[Bug]: "
5
+ labels: [bug]
6
+ assignees: mguyard
7
+ body:
8
+ - type: markdown
9
+ attributes:
10
+ value: |
11
+ > [!NOTE]
12
+ >
13
+ > This issue form is for reporting bugs only!
14
+ >
15
+ > Before you open a new issue, search through the [existing issues][ei] to see if others have had the same problem.
16
+ >
17
+ > [ei]: https://github.com/mguyard/pydiagral/issues?q=label%3Abug
18
+
19
+ - type: textarea
20
+ attributes:
21
+ label: Reproduction steps
22
+ description: "Without steps to reproduce, it will be hard to fix, it is very important that you fill out this part, issues without it will be closed"
23
+ value: |
24
+ 1.
25
+ 2.
26
+ 3.
27
+ ...
28
+ validations:
29
+ required: true
30
+
31
+ - type: textarea
32
+ validations:
33
+ required: true
34
+ attributes:
35
+ label: The problem
36
+ description: >-
37
+ Describe the issue you are experiencing here, to communicate to the
38
+ maintainers. Tell us what you were trying to do and what happened.
39
+
40
+ Provide a clear and concise description of what the problem is.
41
+
42
+ - type: markdown
43
+ attributes:
44
+ value: |
45
+ ## Environment
46
+
47
+ - type: input
48
+ id: version
49
+ validations:
50
+ required: true
51
+ attributes:
52
+ label: What version of pydiagral has the issue?
53
+
54
+ - type: input
55
+ attributes:
56
+ label: What was the last working version of pydiagral?
57
+ description: >
58
+ If known, otherwise leave blank.
59
+
60
+ - type: input
61
+ id: python-version
62
+ validations:
63
+ required: true
64
+ attributes:
65
+ label: What version of python are you running?
66
+
67
+ - type: markdown
68
+ attributes:
69
+ value: |
70
+ ## Details
71
+
72
+ - type: textarea
73
+ id: script-log
74
+ validations:
75
+ required: true
76
+ attributes:
77
+ label: Script Log
78
+ description: >
79
+ Copy and paste the relevant parts of the script log here.
80
+
81
+ - type: textarea
82
+ attributes:
83
+ label: Additional information
84
+ description: >
85
+ If you have any additional information for us, use the field below.
86
+
87
+ - type: markdown
88
+ attributes:
89
+ value: |
90
+ ## Confirmation
91
+
92
+ - type: checkboxes
93
+ attributes:
94
+ label: Checklist
95
+ options:
96
+ - label: I have filled out the issue template to the best of my ability.
97
+ required: true
98
+ - label: This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
99
+ required: true
100
+ - label: This issue is not a duplicate issue of currently [previous issues](https://github.com/mguyard/pydiagral/issues?q=label%3Abug)..
101
+ required: true
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: "Feature request"
3
+ description: "Suggest an idea for this project"
4
+ title: "[Feature Request]: "
5
+ labels: [feature]
6
+ assignees: mguyard
7
+ body:
8
+ - type: markdown
9
+ attributes:
10
+ value: |
11
+ > [!NOTE]
12
+ >
13
+ > This issue form is for reporting Feature Request only!
14
+ >
15
+ > Before you open a new feature request, search through the existing [feature requests][fr] to see if others have had the same idea.
16
+ >
17
+ > [fr]: https://github.com/mguyard/pydiagral/issues?q=label%3Afeature
18
+
19
+ - type: textarea
20
+ attributes:
21
+ label: "Is your feature request related to a problem? Please describe."
22
+ description: "A clear and concise description of what the problem is."
23
+ placeholder: "I'm always frustrated when [...]"
24
+ validations:
25
+ required: true
26
+
27
+ - type: textarea
28
+ attributes:
29
+ label: "Describe the solution you'd like"
30
+ description: "A clear and concise description of what you want to happen."
31
+ validations:
32
+ required: true
33
+
34
+ - type: textarea
35
+ attributes:
36
+ label: "Describe alternatives you've considered"
37
+ description: "A clear and concise description of any alternative solutions or features you've considered."
38
+ validations:
39
+ required: true
40
+
41
+ - type: textarea
42
+ attributes:
43
+ label: "Additional context"
44
+ description: "Add any other context or screenshots about the feature request here."
45
+ validations:
46
+ required: true
47
+
48
+ - type: markdown
49
+ attributes:
50
+ value: |
51
+ > [!TIP]
52
+ >
53
+ > Keep in mind you can also help the project by contributing to it, if you have the skills to do so, you can open a pull request with the changes you want to see in the project.
54
+
55
+ - type: checkboxes
56
+ attributes:
57
+ label: Checklist
58
+ options:
59
+ - label: I have filled out the template to the best of my ability.
60
+ required: true
61
+ - label: This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
62
+ required: true
63
+ - label: This issue is not a duplicate feature request of [previous feature requests](https://github.com/mguyard/pydiagral/issues?q=label%3Afeature).
64
+ required: true
@@ -0,0 +1,25 @@
1
+ Follow the Conventional Commits format strictly for commit messages. Use the structure below:
2
+
3
+ ```
4
+ <type>[optional scope]: <gitmoji> <description>
5
+
6
+ [optional body]
7
+ ```
8
+
9
+ Guidelines:
10
+
11
+ 1. **Type and Scope**: Choose an appropriate type (e.g., `feat`, `fix`) and optional scope to describe the affected module or feature.
12
+
13
+ 2. **Gitmoji**: Include a relevant `gitmoji` that best represents the nature of the change.
14
+
15
+ 3. **Description**: Write a concise, informative description in the header; use backticks if referencing code or specific terms.
16
+
17
+ 4. **Body**: For additional details, use a well-structured body section:
18
+ - Use bullet points (`*`) for clarity.
19
+ - Clearly describe the motivation, context, or technical details behind the change, if applicable.
20
+
21
+ Commit messages should be clear, informative, and professional, aiding readability and project tracking.
22
+
23
+ Limit the first line to 72 characters or less.
24
+
25
+ Always write in English to maintain consistency and clarity across the project.
@@ -0,0 +1,12 @@
1
+ {
2
+ "python.testing.pytestArgs": [
3
+ "tests"
4
+ ],
5
+ "python.testing.unittestEnabled": false,
6
+ "python.testing.pytestEnabled": true,
7
+ "github.copilot.chat.commitMessageGeneration.instructions": [
8
+ {
9
+ "file": ".github/copilot-commit-message-instructions.md"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,63 @@
1
+ # [1.5.0](https://github.com/mguyard/pydiagral/compare/v1.4.0...v1.5.0) (2025-03-02)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **api:** 🔧 Clean up API keys on connection failure ([c8f87c6](https://github.com/mguyard/pydiagral/commit/c8f87c6b4e0091775bf948d6471bc8966c9d25ad))
7
+ * **api:** 🔧 Refactor API key handling and introduce new exceptions ([b1f6d06](https://github.com/mguyard/pydiagral/commit/b1f6d060e52c0c660e760c1dc86c5fa75613e4b2))
8
+ * **api:** 🔧 Update log message for alarm name retrieval ([fca40e4](https://github.com/mguyard/pydiagral/commit/fca40e44bccd59f6399ae2b89a29c2b4fcc80172))
9
+
10
+
11
+ ### Features
12
+
13
+ * **api:** 🚀 Add `get_alarm_name` method and log alarm name in tests ([96e727f](https://github.com/mguyard/pydiagral/commit/96e727fe851a1086d8689c6fb7204efdb702938d))
14
+ * **api:** 🚀 Add connection testing functionality with result handling ([a07bbfc](https://github.com/mguyard/pydiagral/commit/a07bbfc22a1f41418dad0347394cadcab31685e8))
15
+ * **api:** 🚀 Add testing connection feature ([53981f6](https://github.com/mguyard/pydiagral/commit/53981f6bdb8b797b7f4408fbaf2264b66a58ab38))
16
+
17
+ # [1.5.0-beta.6](https://github.com/mguyard/pydiagral/compare/v1.5.0-beta.5...v1.5.0-beta.6) (2025-03-01)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **api:** 🔧 Clean up API keys on connection failure ([c8f87c6](https://github.com/mguyard/pydiagral/commit/c8f87c6b4e0091775bf948d6471bc8966c9d25ad))
23
+
24
+ # [1.5.0-beta.5](https://github.com/mguyard/pydiagral/compare/v1.5.0-beta.4...v1.5.0-beta.5) (2025-03-01)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **api:** 🔧 Refactor API key handling and introduce new exceptions ([b1f6d06](https://github.com/mguyard/pydiagral/commit/b1f6d060e52c0c660e760c1dc86c5fa75613e4b2))
30
+
31
+ # [1.5.0-beta.4](https://github.com/mguyard/pydiagral/compare/v1.5.0-beta.3...v1.5.0-beta.4) (2025-02-28)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * **api:** 🔧 Update log message for alarm name retrieval ([fca40e4](https://github.com/mguyard/pydiagral/commit/fca40e44bccd59f6399ae2b89a29c2b4fcc80172))
37
+
38
+ # [1.5.0-beta.3](https://github.com/mguyard/pydiagral/compare/v1.5.0-beta.2...v1.5.0-beta.3) (2025-02-28)
39
+
40
+
41
+ ### Features
42
+
43
+ * **api:** 🚀 Add `get_alarm_name` method and log alarm name in tests ([96e727f](https://github.com/mguyard/pydiagral/commit/96e727fe851a1086d8689c6fb7204efdb702938d))
44
+
45
+ # [1.5.0-beta.2](https://github.com/mguyard/pydiagral/compare/v1.5.0-beta.1...v1.5.0-beta.2) (2025-02-28)
46
+
47
+
48
+ ### Features
49
+
50
+ * **api:** 🚀 Add connection testing functionality with result handling ([a07bbfc](https://github.com/mguyard/pydiagral/commit/a07bbfc22a1f41418dad0347394cadcab31685e8))
51
+
52
+ # [1.5.0-beta.1](https://github.com/mguyard/pydiagral/compare/v1.4.0...v1.5.0-beta.1) (2025-02-28)
53
+
54
+
55
+ ### Features
56
+
57
+ * **api:** 🚀 Add testing connection feature ([53981f6](https://github.com/mguyard/pydiagral/commit/53981f6bdb8b797b7f4408fbaf2264b66a58ab38))
58
+
59
+ # 1.4.0 (2025-02-23)
60
+
61
+ ### Features
62
+
63
+ - Initial Public release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydiagral
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: A Python library for interacting with Diagral systems
5
5
  Project-URL: Homepage, https://github.com/mguyard/pydiagral
6
6
  Project-URL: Documentation, https://github.com/mguyard/pydiagral
@@ -685,7 +685,7 @@ License: GNU GENERAL PUBLIC LICENSE
685
685
  <https://www.gnu.org/licenses/why-not-lgpl.html>.
686
686
  License-File: LICENSE
687
687
  Keywords: diagral,home automation,python
688
- Classifier: Development Status :: 3 - Alpha
688
+ Classifier: Development Status :: 5 - Production/Stable
689
689
  Classifier: Intended Audience :: Developers
690
690
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
691
691
  Classifier: Operating System :: OS Independent
@@ -702,9 +702,6 @@ Description-Content-Type: text/markdown
702
702
  <p align="center">
703
703
  <img src="https://raw.githubusercontent.com/mguyard/pydiagral/main/docs/pydiagral-Logo.png" width="400" />
704
704
  </p>
705
- <p align="center">
706
- <h1 align="center">PyDiagral</h1>
707
- </p>
708
705
  <p align="center">
709
706
  A powerful and easy-to-use Python library for seamless integration with the Diagral alarm system.
710
707
  </p>
@@ -729,19 +726,25 @@ Description-Content-Type: text/markdown
729
726
  </p>
730
727
  <br /><br />
731
728
 
732
- # Documentation pydiagral
729
+ # pydiagral
733
730
 
734
731
  Welcome to the documentation for pydiagral, a Python library for interacting with the Diagral API.
735
732
 
736
- ## About pydiagral
733
+ ## 📍 About pydiagral
737
734
 
738
- pydiagral is an asynchronous Python interface for the Diagral alarm system. This library allows users to control and monitor their Diagral alarm system through the official API.
735
+ `pydiagral` is an asynchronous Python interface for the Diagral alarm system. This library allows users to control and monitor their Diagral alarm system through the official API.
739
736
 
740
- ## Requirement
737
+ > [!CAUTION]
738
+ >
739
+ > Please note that the Diagral alarm system is a security system, and it may be preferable not to connect it to any automation platform for security reasons.
740
+ > In no event shall the developer of [`pydiagral`](https://github.com/mguyard/pydiagral) library be held liable for any issues arising from the use of this [`pydiagral`](https://github.com/mguyard/pydiagral) library.
741
+ > The user installs and uses this integration at their own risk and with full knowledge of the potential implications.
742
+
743
+ ## ✅ Requirement
741
744
 
742
745
  To use this library, which leverages the Diagral APIs, you must have a Diagral box (DIAG56AAX). This box connects your Diagral alarm system to the internet, enabling interaction with the alarm system via the API. You can find more information about the Diagral box [here](https://www.diagral.fr/commande/box-alerte-et-pilotage).
743
746
 
744
- ## Key Features
747
+ ## 📦 Key Features
745
748
 
746
749
  The `DiagralAPI` class offers the following functionalities:
747
750
 
@@ -766,7 +769,7 @@ The `DiagralAPI` class offers the following functionalities:
766
769
  - Activate or Desactivate system (partially or globally)
767
770
  - Automatism actions
768
771
 
769
- ## Quick Start
772
+ ## 🚀 Quick Start
770
773
 
771
774
  To get started with pydiagral, follow these steps:
772
775
 
@@ -796,33 +799,72 @@ And run the [example_code.py](https://github.com/mguyard/pydiagral/blob/main/exa
796
799
  >
797
800
  > You can customize the actions performed by [example_code.py](https://github.com/mguyard/pydiagral/blob/main/example_code.py) by modifying the parameters in the code, as indicated by the `CUSTOMIZE THE TESTS` section title.
798
801
 
802
+ # 📖 Documentations
803
+
804
+ ## Package Documentation
805
+
806
+ Library documentation is available [here](https://mguyard.github.io/pydiagral/).
807
+
808
+ ### Package Structure
809
+
810
+ For detailed library documentation, please refer to the following sections:
811
+
812
+ - [API Reference](https://mguyard.github.io/pydiagral/api/): Comprehensive documentation of the DiagralAPI class and its methods
813
+ - [Data Models](https://mguyard.github.io/pydiagral/models/): Description of the data structures used
814
+ - [Exceptions](https://mguyard.github.io/pydiagral/exceptions/): List of package exceptions
815
+
799
816
  ## Diagral API Official documentation
800
817
 
801
818
  Official Diagral API is available [here](https://appv3.tt-monitor.com/emerald/redoc).
802
819
 
820
+ # 🙋 FAQ
821
+
803
822
  ## How to find Serial on DIAG56AAX
804
823
 
805
824
  The serial number can only be found with physical access to the box. You need to open it, and you will find a label with a QR Code.
825
+
806
826
  On this label, there is a 15-character code that represents the serial number of the box.
807
827
 
808
- ![How to find your Diagral Serial](docs/how-to-find-diagral-serial.png)
828
+ ![How to find your Diagral Serial](https://raw.githubusercontent.com/mguyard/pydiagral/main/docs/how-to-find-diagral-serial.png)
809
829
 
810
830
  > [!IMPORTANT]
811
831
  >
812
832
  > This code is necessary to use this library and Diagral API.
813
833
 
814
- ## API Structure
834
+ # 🤝 Contribution
835
+
836
+ Contributions are welcome! Here are several ways you can contribute:
837
+
838
+ - **Submit Pull Requests**: Review open PRs, and submit your own PRs.
839
+ - **Report Issues**: Submit bugs found or log feature requests.
815
840
 
816
- For detailed API documentation, please refer to the following sections:
841
+ <details closed>
842
+ <summary>Contributing Guidelines</summary>
817
843
 
818
- - [API Reference](https://XXXXXXXXXXXXXXXX): Comprehensive documentation of the DiagralAPI class and its methods
819
- - [Data Models](https://XXXXXXXXXXXXXXXX): Description of the data structures used
820
- - [Exceptions](https://XXXXXXXXXXXXXXXX): List of package exceptions
844
+ 1. **Fork the Repository**: Start by forking the project repository to your GitHub account.
845
+ 2. **Clone Locally**: Clone the forked repository to your local machine using a Git client.
846
+ ```sh
847
+ git clone https://github.com/mguyard/pydiagral
848
+ ```
849
+ 3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.
850
+ ```sh
851
+ git checkout -b new-feature-x
852
+ ```
853
+ 4. **Make Your Changes**: Develop and test your changes locally.
854
+ 5. **Commit Your Changes**: Commit your changes with a clear and concise message that follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) guidelines.
855
+ ```sh
856
+ git commit -m 'feat: Implemented new feature x.'
857
+ ```
858
+ 6. **Push to GitHub**: Push the changes to your forked repository.
859
+ ```sh
860
+ git push origin new-feature-x
861
+ ```
862
+ 7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations.
821
863
 
822
- ## Contribution
864
+ Once your PR is reviewed and approved, it will be merged into the `beta` branch. After final testing, it will be merged into the `main` branch.
823
865
 
824
- Contributions to pydiagral are welcome! Please check our contribution guidelines for more information on how to participate in the development of this library.
866
+ </details>
825
867
 
826
- ## License
868
+ # 📄 License
827
869
 
828
870
  pydiagral is distributed under the GPL-v3 License. See the [LICENSE](https://github.com/mguyard/pydiagral/blob/main/LICENSE) file for more details.
@@ -1,9 +1,6 @@
1
1
  <p align="center">
2
2
  <img src="https://raw.githubusercontent.com/mguyard/pydiagral/main/docs/pydiagral-Logo.png" width="400" />
3
3
  </p>
4
- <p align="center">
5
- <h1 align="center">PyDiagral</h1>
6
- </p>
7
4
  <p align="center">
8
5
  A powerful and easy-to-use Python library for seamless integration with the Diagral alarm system.
9
6
  </p>
@@ -28,19 +25,25 @@
28
25
  </p>
29
26
  <br /><br />
30
27
 
31
- # Documentation pydiagral
28
+ # pydiagral
32
29
 
33
30
  Welcome to the documentation for pydiagral, a Python library for interacting with the Diagral API.
34
31
 
35
- ## About pydiagral
32
+ ## 📍 About pydiagral
36
33
 
37
- pydiagral is an asynchronous Python interface for the Diagral alarm system. This library allows users to control and monitor their Diagral alarm system through the official API.
34
+ `pydiagral` is an asynchronous Python interface for the Diagral alarm system. This library allows users to control and monitor their Diagral alarm system through the official API.
38
35
 
39
- ## Requirement
36
+ > [!CAUTION]
37
+ >
38
+ > Please note that the Diagral alarm system is a security system, and it may be preferable not to connect it to any automation platform for security reasons.
39
+ > In no event shall the developer of [`pydiagral`](https://github.com/mguyard/pydiagral) library be held liable for any issues arising from the use of this [`pydiagral`](https://github.com/mguyard/pydiagral) library.
40
+ > The user installs and uses this integration at their own risk and with full knowledge of the potential implications.
41
+
42
+ ## ✅ Requirement
40
43
 
41
44
  To use this library, which leverages the Diagral APIs, you must have a Diagral box (DIAG56AAX). This box connects your Diagral alarm system to the internet, enabling interaction with the alarm system via the API. You can find more information about the Diagral box [here](https://www.diagral.fr/commande/box-alerte-et-pilotage).
42
45
 
43
- ## Key Features
46
+ ## 📦 Key Features
44
47
 
45
48
  The `DiagralAPI` class offers the following functionalities:
46
49
 
@@ -65,7 +68,7 @@ The `DiagralAPI` class offers the following functionalities:
65
68
  - Activate or Desactivate system (partially or globally)
66
69
  - Automatism actions
67
70
 
68
- ## Quick Start
71
+ ## 🚀 Quick Start
69
72
 
70
73
  To get started with pydiagral, follow these steps:
71
74
 
@@ -95,33 +98,72 @@ And run the [example_code.py](https://github.com/mguyard/pydiagral/blob/main/exa
95
98
  >
96
99
  > You can customize the actions performed by [example_code.py](https://github.com/mguyard/pydiagral/blob/main/example_code.py) by modifying the parameters in the code, as indicated by the `CUSTOMIZE THE TESTS` section title.
97
100
 
101
+ # 📖 Documentations
102
+
103
+ ## Package Documentation
104
+
105
+ Library documentation is available [here](https://mguyard.github.io/pydiagral/).
106
+
107
+ ### Package Structure
108
+
109
+ For detailed library documentation, please refer to the following sections:
110
+
111
+ - [API Reference](https://mguyard.github.io/pydiagral/api/): Comprehensive documentation of the DiagralAPI class and its methods
112
+ - [Data Models](https://mguyard.github.io/pydiagral/models/): Description of the data structures used
113
+ - [Exceptions](https://mguyard.github.io/pydiagral/exceptions/): List of package exceptions
114
+
98
115
  ## Diagral API Official documentation
99
116
 
100
117
  Official Diagral API is available [here](https://appv3.tt-monitor.com/emerald/redoc).
101
118
 
119
+ # 🙋 FAQ
120
+
102
121
  ## How to find Serial on DIAG56AAX
103
122
 
104
123
  The serial number can only be found with physical access to the box. You need to open it, and you will find a label with a QR Code.
124
+
105
125
  On this label, there is a 15-character code that represents the serial number of the box.
106
126
 
107
- ![How to find your Diagral Serial](docs/how-to-find-diagral-serial.png)
127
+ ![How to find your Diagral Serial](https://raw.githubusercontent.com/mguyard/pydiagral/main/docs/how-to-find-diagral-serial.png)
108
128
 
109
129
  > [!IMPORTANT]
110
130
  >
111
131
  > This code is necessary to use this library and Diagral API.
112
132
 
113
- ## API Structure
133
+ # 🤝 Contribution
134
+
135
+ Contributions are welcome! Here are several ways you can contribute:
136
+
137
+ - **Submit Pull Requests**: Review open PRs, and submit your own PRs.
138
+ - **Report Issues**: Submit bugs found or log feature requests.
114
139
 
115
- For detailed API documentation, please refer to the following sections:
140
+ <details closed>
141
+ <summary>Contributing Guidelines</summary>
116
142
 
117
- - [API Reference](https://XXXXXXXXXXXXXXXX): Comprehensive documentation of the DiagralAPI class and its methods
118
- - [Data Models](https://XXXXXXXXXXXXXXXX): Description of the data structures used
119
- - [Exceptions](https://XXXXXXXXXXXXXXXX): List of package exceptions
143
+ 1. **Fork the Repository**: Start by forking the project repository to your GitHub account.
144
+ 2. **Clone Locally**: Clone the forked repository to your local machine using a Git client.
145
+ ```sh
146
+ git clone https://github.com/mguyard/pydiagral
147
+ ```
148
+ 3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.
149
+ ```sh
150
+ git checkout -b new-feature-x
151
+ ```
152
+ 4. **Make Your Changes**: Develop and test your changes locally.
153
+ 5. **Commit Your Changes**: Commit your changes with a clear and concise message that follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) guidelines.
154
+ ```sh
155
+ git commit -m 'feat: Implemented new feature x.'
156
+ ```
157
+ 6. **Push to GitHub**: Push the changes to your forked repository.
158
+ ```sh
159
+ git push origin new-feature-x
160
+ ```
161
+ 7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations.
120
162
 
121
- ## Contribution
163
+ Once your PR is reviewed and approved, it will be merged into the `beta` branch. After final testing, it will be merged into the `main` branch.
122
164
 
123
- Contributions to pydiagral are welcome! Please check our contribution guidelines for more information on how to participate in the development of this library.
165
+ </details>
124
166
 
125
- ## License
167
+ # 📄 License
126
168
 
127
169
  pydiagral is distributed under the GPL-v3 License. See the [LICENSE](https://github.com/mguyard/pydiagral/blob/main/LICENSE) file for more details.
@@ -8,6 +8,12 @@ Welcome to the documentation for pydiagral, a Python library for interacting wit
8
8
 
9
9
  pydiagral is an asynchronous Python interface for the Diagral alarm system. This library allows users to control and monitor their Diagral alarm system through the official API.
10
10
 
11
+ > [!CAUTION]
12
+ >
13
+ > Please note that the Diagral alarm system is a security system, and it may be preferable not to connect it to any automation platform for security reasons.
14
+ > In no event shall the developer of [`pydiagral`](https://github.com/mguyard/pydiagral) library be held liable for any issues arising from the use of this [`pydiagral`](https://github.com/mguyard/pydiagral) library.
15
+ > The user installs and uses this integration at their own risk and with full knowledge of the potential implications.
16
+
11
17
  ## Requirement
12
18
 
13
19
  To use this library, which leverages the Diagral APIs, you must have a Diagral box (DIAG56AAX). This box connects your Diagral alarm system to the internet, enabling interaction with the alarm system via the API. You can find more information about the Diagral box [here](https://www.diagral.fr/commande/box-alerte-et-pilotage).