Logs as now are useful. But as I said in the logs it was clear that the script was launched, so it's probably something that the script does that doesn't work. If that happens again try running the script manually and see if it does anything: First run it through ProfileMatic's UI with Test button in custom action. If that doesn't work, run it from terminal. See if there's any output.
That's safe, but I'm surprised that you can use it. It takes as parameter a serialized C++ object. I don't even know how it looks like building that from python or using dbus-send. Out of curiosity do you have some working sample? The only caveat is that the object usually changes between each ProfileMatic release. But of course if you take an existing rule and only modify the parts you want, then that's pretty future proof also.