Good! Best is to have it work with some scripting language you can handle, at least for now.
But what makes Domoticz interesting vs other home management SW is the embedded scripting possibilities. I don't mention Blockly as a graphical stuff for beginners, if you can already write bash stuff... but Lua (a language designed for being embedded in other programs in the first place, that is also used in some games to handle some user made stuff/automations) and it's Domoticz specific derivative dzVent.
As Lua is not specific to Domoticz, many ressources can be found on the web, an interpreter may also be installed to test some code snippets out of domoticz as you would do in Python for instance... It's a table based language and useful domoticz internals are made accessible through table items reads/additions, see wiki:
https://wiki.domoticz.com/LUA_commands
+Lua is much easier to read than bash IMO, and easy to learn! You also avoid the complexity of accessing domoticz managed hardware though the HTTP/JSON API as external scripts in bash would need (using utilities like curl):
https://wiki.domoticz.com/Domoticz_API/JSON_URL%27s
There is also dzVent, a Domoticz specific Lua extension, but don't use it myself (when I started with Domoticz 10 years ago, dzVent was not to current level and Lua more widely used... another reason is my brain is a bit reluctant to it's syntax!):
https://wiki.domoticz.com/DzVents:_next ... _scripting
Anyway, whatever the language used, one constant: Mostly 2 types of scripts, defined by the file name (if not using webUI editor) for Lua:
-Time scripts, that are triggered every minute by domoticz event system.
-Device scripts, that are triggered on any device change (=> need to test/filter on device idx or name).
There is also variable type scripts, triggered on user variables change, but that's IMO for corner-case usage: User variables, created from domoticz webUI, can be used to keep data from one device or time script run to another so mostly useful from the script that use them and mostly for pure Lua as dzVent add a more generic way to setup some persistent data (file based).
See directory ~/domoticz/scripts/
From there, 1 subdir per supported script language with "demo/example" scripts inside.
You have also Python as a possibility, but for scripts Lua/dzVent is IMO much better option than python ; python is only mandatory for plugins but that's mostly designed to handle devices/protocols that are not supported in domoticz core, so usually much more complex code compared with user scripts to glue devices/actions together... so better forget it's existence.
I hereupper talked about in webUI script edition or setting up script files in the ~/domoticz/scripts/LANGUAGE directory: IMHO, prefer second possibility!
Reason: In webUI edition puts scripts in domoticz database, not files as separate edition. I myself never managed to hang Domoticz with some script programming errors (Lua interpreter and Domoticz event system/data handling looks quite robust), but others did... and then? Much easier (and less risky) to move/rename a faulty script file before restarting domoticz than getting around something in DB that is automatically loaded at startup!