Jeżeli skrypt nie "odpina" się od konsoli, to po zakończeniu cyklu crona być może zostaje ubity przez SIGHUP. Dodatkowo masz błędną składnię crontaba - brakuje nazwy użytkownika przed treścią odpalanej komendy.
U siebie robię takie rzeczy za pomocą programu
daemon z pakietu o tej samej nazwie.
Tak na przykład startuję SyncThinga:
@reboot root daemon -u pawel -r -e HOME=/home/pawel -D /home/pawel -- /usr/bin/syncthing
Parametry:
-u - użytkownik na którym odpalić program
-r - program ma się respawnować po zakończeniu
-e - przekazanie zmiennych środowiskowych do procesu (tu ustawienie zmiennej HOME)
-D - przejście do katalogu przed wykonaniem programu
-- - początek wywołania właściwego programu, z jego ewentualnymi parametrami.
Zwróć uwagę na brak & na końcu,
daemon sam się tym zajmuje.
Czyli w Twoim przypadku będzie to coś takiego:
@reboot root daemon -r -e HOME=/root -D /root -- python /root/script/domoticz_idx.py
Możesz spróbować wersji uproszczonej, ale nie wiem, na ile ten skrypt przyjmie "puste" defaulty:
@reboot root daemon -r -- python /root/script/domoticz_idx.py