diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 6f1d1f6b33f..00000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-name: Bug report
-about: Please only open a bug report when you're sure that it is in fact a bug
-title: ''
-labels: bug
-assignees: ''
-
----
-
-
-## Describe the bug
-
-
-## To Reproduce
-
-
-### Screenshots
-
-
-### Vacuum Model
-
-
-### Valetudo Version
-
-
-## Expected behavior
-
-
-## Additional context
-
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 00000000000..272ad0cf94b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,115 @@
+name: Bug Report
+description: Please only open a bug report when you're sure that it is in fact a bug in Valetudo
+labels: ["bug"]
+body:
+ - type: textarea
+ id: what-is-happening
+ attributes:
+ label: What is happening?
+ description: What behavior do you observe?
+ validations:
+ required: true
+
+ - type: dropdown
+ id: broken-or-not-as-expected
+ attributes:
+ label: Broken or not as expected?
+ description: |
+ Do you believe that that is actually broken as in
+ > "Not behaving as it was obviously intended to behave"
+ or is it just not as expected as in
+ > "I've expected it to do X but it did do Y instead"
+ ?
+ options:
+ - Broken
+ - Not as expected
+ default: 2
+ validations:
+ required: true
+
+ - type: textarea
+ id: what-should-be-happening
+ attributes:
+ label: What should be happening?
+ description: |
+ What would be the correct behavior?
+ If you've previously selected "Not as expected", why did you expect that? Is it reasonable to expect that?
+ validations:
+ required: true
+
+ - type: textarea
+ id: how-to-reproduce
+ attributes:
+ label: How to reproduce
+ description: Steps to reproduce the bug
+ placeholder: |
+ 1. Go to '...'
+ 2. Click on '....'
+ 3. Scroll down to '....'
+ 4. See error
+ validations:
+ required: true
+
+ - type: dropdown
+ id: valetudo-relation
+ attributes:
+ label: Is this Valetudo-related?
+ description: |
+ Since Valetudo is not a custom firmware but just a cloud replacement running on the robot,
+ are you sure that the issue you're seeing relates to **the code of Valetudo** and not the vendor firmware?
+ options:
+ - Certainly Valetudo-related
+ - Probably Valetudo-related
+ - Might be Valetudo-related
+ - Could be Valetudo-related
+ - Probably not Valetudo-related
+ - Certainly not Valetudo-related
+ default: 1
+ validations:
+ required: true
+
+ - type: input
+ id: valetudo-version
+ attributes:
+ label: Please enter the Valetudo version you're using
+ validations:
+ required: true
+
+ - type: input
+ id: robot
+ attributes:
+ label: Please enter the vendor and model of robot you're using
+ validations:
+ required: true
+
+ - type: input
+ id: robot-firmware
+ attributes:
+ label: Please enter the robot's firmware version you're using
+ validations:
+ required: true
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Additional context
+ description: |
+ Anything else relevant to the situation.
+ Think: Browser, Phone, Home Assistant version, Wi-Fi access points, Etc.
+ validations:
+ required: true
+
+ - type: textarea
+ id: context-reflection
+ attributes:
+ label: Context reflection
+ description: Thinking about what you said above about your setup, do you see anything non-standard about it that might be troublesome and cause this?
+ validations:
+ required: true
+
+ - type: textarea
+ id: screenshots
+ attributes:
+ label: Screenshots
+ description: If applicable, please add screenshots here
+
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 83ff20747bd..19519bb1823 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -6,6 +6,3 @@ contact_links:
- name: I'm having issues using the software
url: https://github.com/Hypfer/Valetudo/discussions/category_choices
about: Ask for help in the support section
- - name: I've made a thing utilizing Valetudo
- url: https://github.com/Hypfer/Valetudo/discussions/category_choices
- about: Talk about your thing in the Show and tell section
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 00000000000..c781a0f1d91
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,48 @@
+name: Feature request
+description: A request for a software feature or functionality
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Valetudo is a mature and polished software project that has been going for 5+ years and is being used by the dev himself (me) on a daily basis.
+ Furthermore, as you might've noticed, I'm _very_ active in the support groups and am solely responsible for writing the documentation.
+
+ I do that not only because I enjoy helping respectful people and want to ensure that everything stays on the right path,
+ but also because I believe that it is vital to hear about the issues, annoyances and roadblocks people struggle with.
+
+ I think many projects subjected to growth tend to become worse _because_ the distance between the user and the developer/management/etc increases over time.
+ I do not want that to happen which is why I'm there, helping out, listening in and keeping track of problems and ideas to further improve the project.
+
+
+
+ GitHub issues don't work very well for this approach, because they're tickets and tickets need a clear resolution in a predefined timeframe.
+ That's not how ideas and feedback work though. It's how contract work works, but I ain't no contractor.
+
+ Because of that, feature requests are handled by regular human dialog and me taking (mental) notes of things that come up.
+ So, if you have an idea, feel free to talk with me about it in the support groups.
+
+ I won't lie, I'm not super excited to hear them, because, since this is a mature and polished project,
+ most of the time, feature requests fall in one of these three categories:
+ - "hey I see you made decision A, I'd've preferred if you'd've picked B instead"
+ or
+ - "I have this super niche need and I demand you to cater for it"
+ or
+ - "I believe that things should be this way and I'm going to scream until they are"
+
+
+ That said, I do greatly enjoy interesting respectful productive exchange with other people as equals that respects boundaries.
+ This is one of the gifts of doing open-source software and I'm super glad about every instance where that happens.
+
+ You don't have to be a developer to take part in such an exchange, but you do have to step out of the mindset of a customer that wants something to happen.
+
+ - type: checkboxes
+ id: checkboxes
+ attributes:
+ label: Conclusion
+ options:
+ - label: I have read the text above
+ required: true
+ - label: Having read the text above, I understand that there is no point in opening an issue for this
+ required: true
+ - label: I will not click the submit button
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/pls_support_robot.yml b/.github/ISSUE_TEMPLATE/pls_support_robot.yml
new file mode 100644
index 00000000000..41a6f5a94f4
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/pls_support_robot.yml
@@ -0,0 +1,63 @@
+name: Robot support request
+description: An inquiry to ask if a robot is supported or a request to support a robot
+body:
+ - type: markdown
+ attributes:
+ value: |
+ The exhaustive list of supported robots can be found in the docs:
+ https://valetudo.cloud/pages/general/supported-robots.html
+
+ The following text can be found there and also in the FAQ.
+ It is mirrored here purely for your convenience.
+
+
+ ## Robots that aren't supported
+
+ While Valetudo tries its best to be generic and reuse code wherever possible, since it is not a custom firmware,
+ the backend is basically a few huge chunks of code that are very specific to the respective vendor firmware and cloud architecture they try to emulate.
+
+ Supporting any new vendors is thus quite a large task because not only requires it to write large parts of the backend
+ again from scratch but also do the reverse engineering of data formats, authentication, communication and various functionality
+ with no documentation from the vendor available.
+
+ It's a time-consuming process that mostly involves random chance and that can only start once security vulnerabilities
+ leading to system administrator level access on the hardware in question has been found. A similar reverse-engineering process
+ without any documentation that is also quite time-consuming and mostly involves random chance.
+
+
+
+ Valetudo only runs on the supported robots because security researcher [Dennis Giese](https://dontvacuum.me) found ways
+ to root them.
+
+ Rooting in this context means taking these locked-down IoT devices, finding and exploiting security flaws in their design
+ and gaining permanent system administrator level access to them to allow for running additional custom software such as Valetudo
+ and modifying the system to make the unclouding possible.
+
+ These security flaws are all 0days of which we sometimes need multiple to achieve the rooting.
+ They're also specific to one specific vendor's implementation of something on one specific piece of hardware.
+
+ With a public root release, these get burned and usually quickly fixed by the vendors, making finding a working exploit chain
+ for newer models after the release harder or sometimes even impossible.
+
+
+
+ Therefore, please refrain from asking if something that isn't on this list is supported.
+ Please do not ask if someone "tried" it. Please do not state that you would like it if something would be supported.
+
+ Without explicitly mentioning this, readers often expect that something not being supported just means that
+ no one has tried it yet, which is more akin to how e.g. running GNU+Linux on some random laptop works.
+
+ Thank you for your understanding
+
+
+ - type: checkboxes
+ id: checkboxes
+ attributes:
+ label: Conclusion
+ options:
+ - label: I have read the text above
+ required: true
+ - label: Having read the text above, I understand that there is no point in opening an issue for this
+ required: true
+ - label: I will not click the submit button
+ required: true